| 1 |
BUGS |
|---|
| 2 |
==== |
|---|
| 3 |
- Y-value precision of big numbers under high zooms (500.000000000001) should |
|---|
| 4 |
be implemented using string arithmetics. Negative numbers should be considered, |
|---|
| 5 |
see implementation at php code. |
|---|
| 6 |
a) window.js/SetCustomAxis/*.toPrecision - increase from 7 to something.... |
|---|
| 7 |
b) implement computations using string arithmetics |
|---|
| 8 |
|
|---|
| 9 |
- AXIS described in database tables are not correctly visible in Tree-view. |
|---|
| 10 |
This is becuase it only defined for a single reader, while tree view combines |
|---|
| 11 |
multiple readers. As a solution, we can have special reader which will access |
|---|
| 12 |
the AXIS information and provide it globaly for setup. |
|---|
| 13 |
|
|---|
| 14 |
- Support for Database names |
|---|
| 15 |
|
|---|
| 16 |
Version 0.0.8 (DATA Handling) |
|---|
| 17 |
============= |
|---|
| 18 |
1. Control infastracture |
|---|
| 19 |
a) Finalyze checking of values prior to setting setpoints |
|---|
| 20 |
b) Implement VirtualControlGroup joining specified control groups, to |
|---|
| 21 |
refer from ExpressVI |
|---|
| 22 |
d) VirtualController. COMPLEXID is just merge of groups (we don't have |
|---|
| 23 |
time to synchronize here) |
|---|
| 24 |
e) LabVIEW ExpressVI |
|---|
| 25 |
2. Multi-windows mode, allow to disconnect div's and open in standalone window |
|---|
| 26 |
3. Support for secondary graph, selection+click, draw |
|---|
| 27 |
4. Run-indicators in navigation bar |
|---|
| 28 |
5. Import descriptions from excel, axis, masks, item names |
|---|
| 29 |
6. SEARCH |
|---|
| 30 |
a) Search for interval where conditions (<>=) are met (only aggregated |
|---|
| 31 |
caching tables are used) |
|---|
| 32 |
b) "Jan" find all Januaries containing data and auto-select the current |
|---|
| 33 |
one |
|---|
| 34 |
|
|---|
| 35 |
Version 0.0.9 (Group merging and basic arithmetic) |
|---|
| 36 |
============= |
|---|
| 37 |
4. Merging groups using CACHESet / Virtual Group Joiner |
|---|
| 38 |
a) Provide CACHESet::GetData |
|---|
| 39 |
b) Provide CACHESetReader |
|---|
| 40 |
5. Basic arithmetic operations on channels |
|---|
| 41 |
a) Organized as a separate virtual group |
|---|
| 42 |
b) set base group |
|---|
| 43 |
c) cached |
|---|
| 44 |
|
|---|
| 45 |
Version 0.0.10 (Weather Tower) |
|---|
| 46 |
============= |
|---|
| 47 |
1. 24 hour cache to hide day changes |
|---|
| 48 |
|
|---|
| 49 |
2. Additional axis. Configuration of masks... |
|---|
| 50 |
|
|---|
| 51 |
|
|---|
| 52 |
Version 0.0.11 (DRAW, LEGEND, AXES) |
|---|
| 53 |
============== |
|---|
| 54 |
A. Better Navigation |
|---|
| 55 |
0. Colors |
|---|
| 56 |
1. MultiAxis, prevent complete filling: |
|---|
| 57 |
a) axis stacked vertically |
|---|
| 58 |
b) line length calculation |
|---|
| 59 |
c) better single combined approach |
|---|
| 60 |
2. Activate / deactivate Axis in single-axis mode, then zooming only on them. |
|---|
| 61 |
3. Move left-rigth/up-down then dragging on the axis. |
|---|
| 62 |
B. LEGEND |
|---|
| 63 |
a) Information about clicked location |
|---|
| 64 |
b) Add "Show Only", "Remove" buttons. |
|---|
| 65 |
C) Secondary graphs (like altitude profiles) in the LEGEND, or clickable |
|---|
| 66 |
C. GRAPH improvements requested by Andreas |
|---|
| 67 |
1. Show Legend on graph, optionally (another parameter) |
|---|
| 68 |
2. In single channel mode, draw MIN-MAX-MEAN-? |
|---|
| 69 |
|
|---|
| 70 |
Version 0.0.12 (Navigation Bar) |
|---|
| 71 |
============== |
|---|
| 72 |
1. Again use cropper but with fixed width and always visible |
|---|
| 73 |
prefix: source, selector_config |
|---|
| 74 |
2. As a main "navigator" provide point density (red - green?), with special |
|---|
| 75 |
color highlight the places where are distance between points exceeding |
|---|
| 76 |
specified threshold. |
|---|
| 77 |
|
|---|
| 78 |
VERSION 0.0.13 (Download/Export) |
|---|
| 79 |
============== |
|---|
| 80 |
1. Download Page |
|---|
| 81 |
Instead of direct download, - download files in special folder and |
|---|
| 82 |
afterwards, allow users to download them, delete, etc. Report status |
|---|
| 83 |
"still donwloading". |
|---|
| 84 |
2. Progress function in Export class |
|---|
| 85 |
a) Divides first by groups/sources. Each is allocated similiar slice of |
|---|
| 86 |
percents. Then within READER::ExportGroup just track position in interval. |
|---|
| 87 |
|
|---|
| 88 |
VERSION 0.0.14 (Marks, Secondary Graph) |
|---|
| 89 |
============== |
|---|
| 90 |
1. Marking engine |
|---|
| 91 |
a) In selection add mark (with default value 1) |
|---|
| 92 |
b) Ad Marks module to left pane displaying all registered marks for current |
|---|
| 93 |
window and mask. Allow to set specific value or cancel mark. |
|---|
| 94 |
c) Support filtering of values marked with certain mark. |
|---|
| 95 |
|
|---|
| 96 |
2. Secondary graph for weather tower |
|---|
| 97 |
a) Using selection, getting area and then clicking needed profile |
|---|
| 98 |
(temperature, wind, .?). The available profiles are independent of |
|---|
| 99 |
group/db_mask selection |
|---|
| 100 |
b) In appropriate box of left pane, we will have picture (starting on |
|---|
| 101 |
left edge) and slider allowing navigation. About 10-50 positions |
|---|
| 102 |
distributed uniformely over time. On each position the first item |
|---|
| 103 |
after time is displayed. The time stamp is shown on as well. |
|---|
| 104 |
|
|---|
| 105 |
---------------------------------------------------------------------------- |
|---|
| 106 |
|
|---|
| 107 |
VERSION 0.0.15 (Aggregation) |
|---|
| 108 |
============== |
|---|
| 109 |
1. Weather tower: there is differnt types of channels: analog, count rate, |
|---|
| 110 |
digital (flags), direction. This data should be aggregated and displayed |
|---|
| 111 |
in different ways. |
|---|
| 112 |
For example, |
|---|
| 113 |
a) 355grad and 5grad should not be averaged to 180, but to 0 |
|---|
| 114 |
b) digital flags could not be averaged at all. |
|---|
| 115 |
... |
|---|
| 116 |
2. MED aggregation: |
|---|
| 117 |
MEDIAN style approach. On each smalles caching interval it is MEDIAN. Then |
|---|
| 118 |
the middle of this intervals select to represent value of next caching |
|---|
| 119 |
level. And so on. |
|---|
| 120 |
|
|---|
| 121 |
|
|---|
| 122 |
Version 0.0.50 (Misc) |
|---|
| 123 |
============== |
|---|
| 124 |
A Handling graph ends |
|---|
| 125 |
1. With "optimize_time_axes=false", ADEI ��������� �� � ���� ���� ����'|'. ������� ��� ����� ����� ��� |
|---|
| 126 |
��� �������� �� ��, ��� ���������������� ����� ������ [ ��� ��� ������������� ����� ���]. |
|---|
| 127 |
������� ��� �� ����, �� �� ��������� |
|---|
| 128 |
����������� ??? |
|---|
| 129 |
2. Remove LIMIT from SQL requests in DATAInterval |
|---|
| 130 |
3. Enable Flexible mode for intervals in DRAW (this could damage edges, so it |
|---|
| 131 |
should be done together with 1) |
|---|
| 132 |
|
|---|
| 133 |
C. SEARCH |
|---|
| 134 |
- Buttons to Open/Close result descriptions and module results |
|---|
| 135 |
- Tagging current configuration (Title, Description, Props) in CacheDB |
|---|
| 136 |
D. Support for auxilliary graph ( Temperature profiles, for example) |
|---|
| 137 |
E. Support for marking data points ( ignoring/using, weather) |
|---|
| 138 |
F. Specify the current element (number) in graph, not group? Or in other way |
|---|
| 139 |
indicate what we are showing without openning sidebar. |
|---|
| 140 |
G. Clean screen after error |
|---|
| 141 |
H. Synchronize menu with sidebar functionality (+Aggregation,?) |
|---|
| 142 |
I. Horizontal scrolling in Source Tree should be always visible (standard |
|---|
| 143 |
procedure will corrupt window) |
|---|
| 144 |
|
|---|
| 145 |
|
|---|
| 146 |
Version 0.0.51 (Code beutification) |
|---|
| 147 |
============== |
|---|
| 148 |
1. require, include_once => $ADEI->RequireClass(array(), overridable) |
|---|
| 149 |
2. globals => $ADEI->GetGlobalOption |
|---|
| 150 |
3. Remove references(&) from all class variables |
|---|
| 151 |
4. Use static ADEI calls where possible |
|---|
| 152 |
|
|---|
| 153 |
|
|---|
| 154 |
Version 0.1 (MASK/Experiment Editor) |
|---|
| 155 |
============= |
|---|
| 156 |
1. Edit Masks / Experiments (XForms) |
|---|
| 157 |
Gr1 ------------- ------------- |
|---|
| 158 |
Gr2 | v v v v v v | name from to |
|---|
| 159 |
... | |
|---|
| 160 |
|
|---|
| 161 |
2. Each mask should allow item specific options: |
|---|
| 162 |
+ Display on the second (right) scale |
|---|
| 163 |
+ Logarithmic |
|---|
| 164 |
+ ... |
|---|
| 165 |
|
|---|
| 166 |
3. Include Save Mask, Save Time Window buttons |
|---|
| 167 |
|
|---|
| 168 |
4. We need to update SOURCE and MENU if new mask/experiment is added? |
|---|
| 169 |
|
|---|
| 170 |
5. SELECT chooses the last from the list (Custom in the MASK/Experiment menus) |
|---|
| 171 |
if there are no specified value. |
|---|
| 172 |
|
|---|
| 173 |
|
|---|
| 174 |
Version 0.2 (Subcaches) |
|---|
| 175 |
=========== |
|---|
| 176 |
1. Support for Subcaches (if density is above threshold use apporpiate |
|---|
| 177 |
subcache). Join current table and subcache to automatically sort. |
|---|
| 178 |
|
|---|
| 179 |
2. Show somethere information about used CACHE and its configuration |
|---|
| 180 |
|
|---|
| 181 |
3. CACHE updating daemon and check renewals |
|---|
| 182 |
|
|---|
| 183 |
Version 0.3 (Local Time) |
|---|
| 184 |
=========== |
|---|
| 185 |
1. Support for Local Time. Major obstacle is synchronization between php (jpgraph) |
|---|
| 186 |
and browsers. Just using timezone offset doesn't allow us to find out |
|---|
| 187 |
DST changes and etc. |
|---|
| 188 |
In Mozilla and Safari, however, there is tricky way of obtaining time-zone. |
|---|
| 189 |
var now = new Date(); |
|---|
| 190 |
now.toString(); |
|---|
| 191 |
will return the lexcial name of time-zone (however, the names could differ |
|---|
| 192 |
between php and JS?). It is possible to extract this time zone info and |
|---|
| 193 |
pass to php. From, other side Opera and IE7 returns just numerical |
|---|
| 194 |
representation of offset GMT+, without real name. And there is no any |
|---|
| 195 |
warranty on toString() format change... |
|---|
| 196 |
|
|---|
| 197 |
May be it is should be solved with horizontal labeling. We just pass from |
|---|
| 198 |
JS few time values and fixing places to set them? |
|---|
| 199 |
|
|---|
| 200 |
VERSION 0.5 (Real-time Display) |
|---|
| 201 |
=========== |
|---|
| 202 |
1. Real-time display of the last 100-200 records [separate window] |
|---|
| 203 |
|
|---|
| 204 |
|
|---|
| 205 |
VERSION 0.6 (Side-menu, Users) |
|---|
| 206 |
=========== |
|---|
| 207 |
1. Redesign side menu (popups) |
|---|
| 208 |
a) Optionaly open over graph (skip, just b?) |
|---|
| 209 |
b) Single popup. And just select current mode (see google maps?) |
|---|
| 210 |
2. Users loggons / Multiple options / ... |
|---|
| 211 |
|
|---|
| 212 |
Version 0.7 (Fixups) |
|---|
| 213 |
=========== |
|---|
| 214 |
1. What will hapen when clicking during long redraw (many items). |
|---|
| 215 |
|
|---|
| 216 |
2. Check Firefox / IE memory consumption. Memory leaks? |
|---|
| 217 |
|
|---|
| 218 |
3. Save opened page in history |
|---|
| 219 |
|
|---|
| 220 |
4. READER and CACHE data intervals mistmatch. What to do (use CACHE intevals |
|---|
| 221 |
if notification turned off)? Month/Day/Hour intervals within READER data |
|---|
| 222 |
but out of the CACHE data? The accuracy is droped, since we calculating |
|---|
| 223 |
amount of points for bigger window. |
|---|
| 224 |
|
|---|
| 225 |
5. Limit dhtmlHistory size (optionally disable: All/Gecko/None) |
|---|
| 226 |
|
|---|
| 227 |
6. Reimplement CACHEInterval using CACHE0 'id' instead of 'time'+'ns' |
|---|
| 228 |
|
|---|
| 229 |
7. After an error we should go back in history. Otherwise it'll be corrupted. |
|---|
| 230 |
|
|---|
| 231 |
8. Depsite width is 100% the Item Selector is not resized to fill all available |
|---|
| 232 |
space (mozilla, safari). |
|---|
| 233 |
|
|---|
| 234 |
|
|---|
| 235 |
VERSION 0.8 |
|---|
| 236 |
=========== |
|---|
| 237 |
- Autogenerate experiments by thresholding some of the channels (set with |
|---|
| 238 |
sql statements?) |
|---|
| 239 |
|
|---|
| 240 |
VERSION 0.9 |
|---|
| 241 |
=========== |
|---|
| 242 |
- Image caching? Separate scales? |
|---|
| 243 |
- Cache few default zoom levels and several screens in all directions? |
|---|
| 244 |
- On end-crop start pereparing image? |
|---|
| 245 |
- Permanent server performing requets? |
|---|
| 246 |
- Table |
|---|
| 247 |
adei draw json version (to prevent new/missing json options), from-to, |
|---|
| 248 |
json options to return, image_file |
|---|
| 249 |
|
|---|
| 250 |
ZEUS Related |
|---|
| 251 |
============ |
|---|
| 252 |
1. Start Experiment / Stop Experiment to ZEUS web control |
|---|
| 253 |
3. ZEUS MSSQL Backup |
|---|
| 254 |
|
|---|
| 255 |
|
|---|
| 256 |
Future Versions - Architectural Questions |
|---|
| 257 |
=============== |
|---|
| 258 |
1. Use "nanoseconds since" instead current quite strange system with |
|---|
| 259 |
number-string timing. Or? |
|---|
| 260 |
|
|---|
| 261 |
2. Graph precision calulating. \/\/______\/\. Using longest interval? But it |
|---|
| 262 |
will damage other cases (points). |
|---|
| 263 |
|
|---|
| 264 |
3. Joint visualization of multiple LOGGROUPs. How? |
|---|
| 265 |
a) Virtual Groups joining several physical ones? |
|---|
| 266 |
b) ...? |
|---|
| 267 |
|
|---|
| 268 |
|
|---|
| 269 |
Future Versions - Beter Usability |
|---|
| 270 |
============== |
|---|
| 271 |
1. Currenly double-click zoom is only working within selection. However, if we |
|---|
| 272 |
are doing horizontal or vertical zooms, there are more areas selected. |
|---|
| 273 |
Should we make them double-clickable as well? Or not? |
|---|
| 274 |
|
|---|
| 275 |
2. At the moment on the browser window resize the graphic is not autoupdated, |
|---|
| 276 |
we probably should force update. |
|---|
| 277 |
|
|---|
| 278 |
3. The following case: We made a selection and opened one of the popups. The |
|---|
| 279 |
forced graph update have canceled selection. However, the selected values |
|---|
| 280 |
are still present window configuration dialog. |
|---|
| 281 |
Should we cancel them? Or could user to use them? Or should we draw |
|---|
| 282 |
selection after update? |
|---|
| 283 |
|
|---|
| 284 |
4. Position Apply Button within 'Source' popup always in the bottom of the |
|---|
| 285 |
popup (if initial size (defined by open-button size) is bigger than |
|---|
| 286 |
actual content size, than the Apply Button will be positioned just after |
|---|
| 287 |
content). |
|---|
| 288 |
|
|---|
| 289 |
5. Do more on graph navigation. |
|---|
| 290 |
a) Speed of zooming / mooving (with plus/minus keys?) |
|---|
| 291 |
b) Arrows for mooving, Backspace go back in history |
|---|
| 292 |
c) Some mouse action for going back in history |
|---|
| 293 |
d) Drag window for moving. |
|---|
| 294 |
|
|---|
| 295 |
6. Open sidebar with single click. All popups at once |
|---|
| 296 |
|
|---|
| 297 |
Future Versions - Interface |
|---|
| 298 |
=============== |
|---|
| 299 |
1. Rewrite JS calendar |
|---|
| 300 |
a) Straight forward way of selecting time (not update date every time |
|---|
| 301 |
afterwards) |
|---|
| 302 |
b) Allow multiple windows (title) |
|---|
| 303 |
c) Selection GMT/Local time (?) |
|---|
| 304 |
d) Open correct month/year page, not current one |
|---|
| 305 |
e) Date(toString/Parse) functions are behaving differently on different |
|---|
| 306 |
browsers (mozilla for example not adding timezone information, but works |
|---|
| 307 |
in the user time zone). It is completely Okey until only that functions |
|---|
| 308 |
are used. Therefore, the timepicker should be changed to use this |
|---|
| 309 |
functions for the date printout. |
|---|
| 310 |
|
|---|
| 311 |
2. Near borders of graph remove the control from the croper, change pictogram |
|---|
| 312 |
to 'hands' and allow moving source_window currently on display. |
|---|
| 313 |
|
|---|
| 314 |
3. Move window with keyboard keys |
|---|
| 315 |
|
|---|
| 316 |
4. Introduce graph options (Logarithmic). Move login to somethere. |
|---|
| 317 |
|
|---|
| 318 |
5. If we had selcted an area of graph and afterwards in controls have altered |
|---|
| 319 |
the window properties. At the moment the selection is canceled. It would |
|---|
| 320 |
be nice to check if new values are within the currently displayed window |
|---|
| 321 |
and, if so, adjust selection instead. |
|---|
| 322 |
|
|---|
| 323 |
8.At the moment we are reseting the mask/experiment/window properties after |
|---|
| 324 |
LogGroup have been changed. We should try to use current |
|---|
| 325 |
a) window/interval if they are inside the range. |
|---|
| 326 |
b) Preserve "all" mask (and named masks as well if they exists for both |
|---|
| 327 |
groups) |
|---|
| 328 |
|
|---|
| 329 |
9. Do not execute update while we are changing configuration. |
|---|
| 330 |
|
|---|
| 331 |
10. Optimize cssSetProperty by caching found classes. |
|---|
| 332 |
|
|---|
| 333 |
11. Statusbar improvements |
|---|
| 334 |
a) Provide more information on statusbar |
|---|
| 335 |
b) Possibility to remove statusbar from the screen (small closer?) |
|---|
| 336 |
|
|---|
| 337 |
12. Extra options in aggregator |
|---|
| 338 |
+ logarithmic scale (?) |
|---|
| 339 |
+ force better/worse precision (?) |
|---|
| 340 |
|
|---|
| 341 |
13. Use "Katrin", "TOSKA" pictures as menu opener instead of nasty button |
|---|
| 342 |
arround. |
|---|
| 343 |
|
|---|
| 344 |
|
|---|
| 345 |
Future Versions - Backend |
|---|
| 346 |
=============== |
|---|
| 347 |
1. Filter data, ignore zeroes? Etc. |
|---|
| 348 |
|
|---|
| 349 |
2. READER. Exchange remote data source with local backup. |
|---|
| 350 |
|
|---|
| 351 |
3. LOGGROUP joiner. |
|---|
| 352 |
|
|---|
| 353 |
4. GRAPH: Reusing existing files (at the moment we don't store enough |
|---|
| 354 |
information to do that (xmin,xmax,ymin,ymax,etc.) |
|---|
| 355 |
|
|---|
| 356 |
5. APPFilter. |
|---|
| 357 |
a) Add support for global and per-block header/footer (with options parsing) |
|---|
| 358 |
b) Block separators (messages sent between two blocks) [ if 'groupmode=false'] |
|---|
| 359 |
|
|---|
| 360 |
6. Support for 'omit_raw_cache' option (using READER instead of raw cache table) |
|---|
| 361 |
Intended to reduce caching table size if connection to data source is reliable |
|---|
| 362 |
and it is not overloaded |
|---|
| 363 |
|
|---|
| 364 |
Future Version - Support Tools |
|---|
| 365 |
============== |
|---|
| 366 |
1. ROOT |
|---|
| 367 |
a) Provide subsecond precision. |
|---|
| 368 |
|
|---|
| 369 |
|
|---|
| 370 |
|
|---|
| 371 |
Very Future Versions |
|---|
| 372 |
==================== |
|---|
| 373 |
1. SELECTION. |
|---|
| 374 |
a) Show statistics (if single-item-graph) |
|---|
| 375 |
b) Show correlation (if two-items-graph) |
|---|
| 376 |
2. CONFIGURATION (Data sources/groups/experiments/etc.) |
|---|
| 377 |
a) Load big XML configuration on startup and use it to generate all menus. |
|---|
| 378 |
Expected benfits: |
|---|
| 379 |
1. Stability: Prevents errors during SOURCE updates |
|---|
| 380 |
2. Easy programming: The asynchronousity is eleminated |
|---|
| 381 |
b) At least load all SOURCE menus (single update, I mean) in one chunk |
|---|
| 382 |
3. ERROR Handling. Standartize error handling in JS scripts |
|---|
| 383 |
a) Throw from async parts???? And call adeiError in all others??? |
|---|
| 384 |
b) Use "translate" calls everythere. |
|---|
| 385 |
4. GRAPH. Multiple data aggregation modes. Currently we are using MIN-MAX, |
|---|
| 386 |
but we could provide at least MEAN mode easily. |
|---|
| 387 |
a) Think about providing MEDIAN? |
|---|
| 388 |
b) MEAN could be over items, or over length (considering that the old |
|---|
| 389 |
value is valid until next one). |
|---|
| 390 |
5. Develop streamable TAR archives, for in-place streaming multiple groups. In |
|---|
| 391 |
this case the user will receive the data will we preparing next portion. |
|---|
| 392 |
a) TAR. In the block begining [0,size] data_block, used_size |
|---|
| 393 |
b) DIME? |
|---|
| 394 |
6. At the moment while calculating the data gaps for grouped (aggregated) data |
|---|
| 395 |
we are assuming what the data is uniformely distributed over interval. |
|---|
| 396 |
This is not precise enough (if something is really going wrong, it likely |
|---|
| 397 |
what all missing data is concentrated in one place and, threfore, the real |
|---|
| 398 |
gap is considerably bigger then estimated one). |
|---|
| 399 |
Unfortunately, the SQL syntax of MySQL server is not allowing us to |
|---|
| 400 |
calculate distance between two sequent rows. Therefore, we need to |
|---|
| 401 |
implement stored function for that purpose and, then, implement |
|---|
| 402 |
CACHE_PRECISE_GAPS support in the DATAInterval. |
|---|
| 403 |
|
|---|
| 404 |
To correct the 'missing' values stored in the database (which are also not |
|---|
| 405 |
precise enough, value <= real_value < 3*value) we could make another |
|---|
| 406 |
iteration over the data and correct approximated values. |
|---|
| 407 |
|
|---|
| 408 |
|
|---|
| 409 |
|
|---|
| 410 |
|
|---|
| 411 |
10. Add Item to the graph. |
|---|
| 412 |
11. Y-axes precise arithmetic if needed (and other rescalling options) |
|---|