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
|
## Features to implement
### some of the features that i want to implement next
- time speed adjustment
- pause and resume time
- label of current real time
- label of current plot time
- hover tooltip for data points
- data input system
- multiple panels that can be toggled on and off
- use extension scaffolding src as example https://github.com/MoebiusSolutions/extension-scaffold/tree/main
- possibly use ES directly, but ideally make own system if it can be better and simpler
- config panel
## Systems - dividing up concerns in a sensible, performant, and easy-to-maintain-and-work-with way
### my initial thinking on the concerns of different architectural components. this very well may change, and each thing does not necessarily map to its own file or even its own class.
- local configuration: read a config file
- state management:
- user preferences
- service config (websocket url, remote api endpoints)
- UI config (what panels acive, )
- database stuff
- plots (which attributes of which input data-type are which graph axes, current time range viewable, )
- data input stuff (structure of input datapoints, source, metadata)
- health (service connections, framerate, db access)
-
- application event system (to notify of state updates)
- rendering
- input data processing
- plot handling
- DB handling
- disk handling
- service handling (websockets, mqtt, HTTP REST)
### Notes
- we will need a good system for state management, as the state will grow fairly large, including things like user preferences, UI config (what panels are displayed),
|