diff options
| author | grothedev <grothedev@gmail.com> | 2026-05-29 21:49:20 -0400 |
|---|---|---|
| committer | grothedev <grothedev@gmail.com> | 2026-05-29 21:49:20 -0400 |
| commit | 6196004b51a6850909c154f5402ff4858eab479a (patch) | |
| tree | 126b8bb1600d0a656e0df016e25d08c390f3540e /AGENTS.md | |
| parent | 27dc5849c3eaf4824d79938e7077abdbe2c82e24 (diff) | |
mv web stuff to root project dirHEADprototypeframeworkmain
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..4926365 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,46 @@ +## 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 +- HID input handling + - input controller maps +- plot handling +- DB handling +- disk handling +- service handling (websockets, mqtt, HTTP REST) + +## Some important data structures used in the program + +- input actions: a set of "single action that the user can perform" +- user input: a single event of user input via hardware like key press or click or move joystick +- input action map: a map of "set of "user input"" => "input action" +- ui element definition: + +### 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),
\ No newline at end of file |
