-
Notifications
You must be signed in to change notification settings - Fork 0
/
ToDo
226 lines (175 loc) · 10.5 KB
/
ToDo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
*************************************
0.1 Bug!
- No Variable names (anything in psql) should be allowed to have a dash in them
- Nor should variables be allowed to start with a number (netCDF issue).
0.2 Calibration files need to be handled better - Search known locations for matching names and if found
give options for cal file name choices or <none> (with indication that will default to {0,1} cal
NOTE: 0,1 is no longer the default - NaN is - so config edit needs to generate a 0,1 calfile or give the option
of no cal file
0.5 Make DMMAT and NCAR cal files show up only for respective cards, not both: or prevent choosing wrong type.
-S/N for DMMAT should actually show up in the gui, rather than just in the debug variables.
-_sensor should be set for DMMAT, which would allow for calls to cal files. Where?
0.7 Add/remove columns to include variable long name.
1.0 Project setup
- Step through A2D serial numbers in default config and validate with user.
2.0 Cal Files
- Step through all Variables and check on existence of defined calfile adding to list to show user
- Create dialog to show user these files
- Text Widget to view calfile contents.
3.0 - bugs:
- A2DTEMPS: should not be able to delete. Should only be able to edit suffix.
- when changing sample rate on a series of A2D variables, last switch failed (cjw) and the variable in question disappeared
- I believe I'm using "generic" pmsSpecs file for all projects - need a setPMSSpecs method for AddSensorCombo dialog.
- Adding a2d on same board number seems to be affecting existing a2d
-Not just a2d', saw this happening with hgm232 and butanol_CN_counters where adding another would just overwrite the previous.
-Could not reproduce bug reliably, but now, after additions, can't reproduce at all - fixed?
- appears that when we edit a dsm id we can make it the same as another dsm id, not so when adding.
- dsm id number cannot exceed 99 - need to have better algorithm for auto populating this
4.0 Ability to Edit NidasItems -
- Also, currently change of dsm, sensor ids is not validated against existing
ids. fromDOMElement for these doesn't make that check - need to do a check
at a higher level. To my surprise, site->validate() didn't catch it either.
5.0 When adding a Serial Sensor to a DSM, create a dropdown that allows only availble serial channels to be selected.
6.0 A2DVariableItem should be a subclass of VariableItem
7.0 Need to be able to add items when parent selected, not just when siblings are.
- When a user makes an edit to a variable, but doesn't actually change anything catch that
and let them know that since there were no changes, there will be no changes and don't add another
sample to the xml.
- EditA2DVariable does not show correct calibration coefs from file
8.0 - from presentation
- Paro scientific is ill-defined in catalog
- would like a viewer capability in general - view on plane, edit in lab
- right click capability vs. the dropdown menus
- serial variables need editing capability - cal coefs and names
- serial numbers for devices and for analog cards.
- color coordination variable from catalog in one color, from project xml in another
9.0 2DC/2DP- should be able to use Type information in pmsSpec file to
correlate catalog entries with specific serial numbers and reduce the list of serial numbers shown to only those applicable
10.0 Pavel request - selection on treeview should show children on tableview (industry standard?)
11.0 Document class is overblown mess. Work on design so that it can be minimized if not eliminated. Can NidasItems have an addChild method
that given information from the GUI can do the work that Document class is currently doing?
12.0 Implement DSM catalog for Specialty DSMs
- CVI dsm would have all CVI elements and then add instruments to follow.
- Gust Pod DSM
13.0 - inventory - available serial numbers - available device names -
- in the SensorCatalog? or inventory files
* Serial Number
* device template
PMSSpecs
14.0 MVC?
Formally separating the view and controller (model is xml, so already separated) may help readability. May also make qt upgrades easier.
When adding an A2D variable, if it doesn't start with an X check to see if exists in the variable database and if not
warn that it doesn't and are they ok with it (might consider adding an X for experimental).
xerces include capability - would facilitate separate catalog - latest xerces offer this?
- getting catalog separate xml file and #including it into
- copied from master direcotry to the project into the project directory and used from there (so we keep project catalog over long haul).
* So config edit would look first in proj dir, if not there then pull copy from master dir and then use it.
chris has been working on merging - pmsspecs, depends, etc into a netCDF header
- look there for keys for the configuration editor.
VARDB is binary - units and titles - binary don't edit
Nimbus:
- VarDB - units and Title and catagory and standard name = vared ./VarDB room for valid_range cF convention
- DependTable - give dependancies of variables
- Cals - handed to nimbus from nidas
- Defaults - all kinds of weird calibration information - specific to folks/instruments.
*- PMSspecs - inventory file - key value START/END based on serial number ***** Use this as inventory!! ******
*- nimbus has a library api for getting at the list of serial numbers for PMSSpec
) libraf and libraf++ - pmsspec class
) /opt/local/lib link
- note: cell size information etc found in cdp.default
Aircraft specs funtion in libraf++ - double check it dives into vardb file correctly.
- consider functionality that we want to keep gets migrated into nidas - put into dynld/raf ?
Only thing left out is probe locations for canisters - could put it into lib aircraft inventory
Suffix is can location
for maclean:
Multiple sites can have same attributes. When parsing if we have same site name, class, number and suffix then
abandon all hope ye who enter.
- Consider change of nidas to require some sort of uniqueness check on name? name and class?
- xml requires name,class and optional number,suffix ; nidas code does no checks
1.0.5 consider using an actionHelper class to mediate between Qt/ConfigWindow and NidasItem
//parentItem->setupyouractions(ahelper);
//ActionHelper {
// disableAllActions()
// addSensor(bool)
// addDSM(bool)
// ...
//ahelper->addSensor(true);
1.1 full code review for efficiency, memory leaks, separation of concerns
get business model and logic out of configWindow as much as possible;
configWindow should just know about Qt windows & apps
is configwindow the controller? Or should it be Document?
add throw clause to all method declarations;
generally review exception handling
doxygenate everything
2. What about Fast2DC device? /dev/usbtwod_64_ or /dev/usbtwod
- or more generally, a sensor that doesn't have a simple mapping?
3. What about sensors that don't appear in our current map? Default? or warn user and tell them to
get help? Or give a chance to type free text and provide range?
- increase <sensorCatalog> to all-known sensors?
- get a sensorCatalog from elsewhere (another config file?)?
- templates for c130,gv,...
4. Investigate efficiencies of DSMDisplayWidget::getDSMNode - better way to find site and dsm?
- Can nidas fromDOMs insert pointers to itself into the DOM tree using setUserData?
5. demo bits:
add sensor dialog : sensor-based labels/constraints
sample rate: drop down 10/100/500
6 (from Pavel)
.1 Listing tree contents on the right (e.g. when DSM is selected then sensors are on the right) is better form.
.2 Would be great to borrow configurations from previous projects - i.e. open up old project and copy/past a sensor from it to current project.
.3 edit sensor catalog? e.g. move variable from NOAA UCATS to NOAA PANTHER.
99. notes
for editing, consider:
find the DOMNode/DOMElement to be edited
DOMNode::cloneNode(true) to get a full recursive copy
edit the copy
validate xml somehow
if bad, quit/error
find nidas object
remove it from parent (so it doesn't interfere with fromDOM/validation)
to get a new nidas object
use nidas parent CHILDTYPEfromDOMElement()
(or maybe the CHILDTYPE's own fromDOM)
perform any extra nidas validation logic
if new nidas is good (no exceptions) then
add it to parent
delete old nidas obj
add new DOMNode into DOM (if not already there from validation)
(recursively) delete old DOMNode
else
delete new nidas obj
delete new DOMNode
quit/error
999. feb02
attempt a basic QHeaderView to play with / try to resolve tree/table header funniness
FAIL QHeaderView are just QAbstractItemView's tied to the same model,
using model's headerDataChanged signal and reading the header data
from model's same headerData()
-tried changing header views during setRootIndex() but with the same
model, this was fruitless; introducing a new model was futile chasing
of rabbits down holes through the Qt-glass
idea: change model to have all possible nidas attributes as columns
and hide/show headerView (and TableView) columns based on place in model
- makes for a less "realistic" model
- hide/show columns perhaps should be done with a QSortFilterProxyModel
and it's filterAcceptsColumn()
wire add/delete sensor into new model/views
9999. Nidas ToDo:
const/non-const iterators
DSMSensor base class should define a method/api for parameters
how many params, their names, required/optional,...
subclasses (actual sensor implementations) override for their particular params
-all nidas things that have xml <parameters> should do this
means they should also inherit something like ParameterDefinition class with this api
-also maybe more exception subclasses needed e.g. MissingParameterException ?
999999. Reimplement tabbed view?
TabbedTablesQView
ttqv->setSelection(tree->getSelection())
for maclean:
do something about this bit from configwindow.cc
// XXX *** XXX
// very bad casting of const to non-const to get a mutable pointer to our dsm
// *** NEEDS TO BE FIXED either here or in nidas::core
//
DSMConfig * dsm = (DSMConfig*)(di.next());
=> Site::getDSMConfigIterator() returns a const iterator and is only way to get an individual DSMConfig,
which we need non-const to later add/delete/edit sensors etc