Files
uopi/TODO.md
T
2026-06-21 12:50:04 +02:00

4.4 KiB

TODO

  • MAJOR Implement configuration manager:
    • configuration is a set of signals (that can be organized in group and subgroup) that are used to configure a system or a sub system
    • with configuration manager user should be able to:
      • Define and manage configuration sets: delete (keep server side copy of deleted config), create (specifying default to parameters, mandatory, optional etc), edit (with versioning git style) and compare set
        • user can fork an existing config instance to create a new one
        • user can compare two instances: show unified diff or side by side diff
        • etc...
      • Create, delete (keep server cache), edit (git style versioning) and compare configuration instances: meaning set actual value to a configuration set
        • user can fork an existing config instance to create a new one
        • user can compare two instances: show unified diff or side by side diff
        • etc...
    • user can apply and save configuration instances from manager
    • in logic editor and control loop add nodes to read/write/create/apply config instances
    • support for all supported types (number, bools, enums, arrays, string etc)
    • ux elements for config set
      • the configuration editor should automatically get type and info from signal when possible
      • a slick tree drag and drop editor to order elements and organize in group and sub-groups
      • possibility to customise unit, max, min etc
    • ux elements for config instances:
      • automatically use the correct setting widget depending on the type (e.g. combo for enum, nubmer input for number):
        • for arrays: import csv option, display points as mini plot (+ open dialog plot with more info), manual enter points via table like interface
      • automatically fill with default or existing values (when forking an existing instance)
      • explicity show errors/missing info and give additional info on hover
    • add advanced validation / transformation framework to configurations using custom CUE rules:
      • backend should run validation / transformation rules
      • user can create/edit/delete/compare rules from webui:
        • integrate syntax highlight
        • integrate autocomplete for signals names and cue grammars
        • integrate cue lsp
      • when validation fail error should be propagated to user in the webui
      • all action should be tracked via history management and audit
  • Improve UX:
    • Synthetic editor:
      • color code the node link by type
      • hover on a block in error should show the reason
      • add proper array functionality
      • add shortcut to add Signals (S) and nodes (N) with HUD
    • Panels:
      • in view mode the widgets should have no border/bg but blend with background
      • add widgets such as toggle switch, table and other industrial hmi widgets
      • add container widgets: labelled/title pane, tab panes, collapsable panes etc
    • plot pane:
      • add toolbar
    • clean ui:
      • create small statusbar where connection widget and other status related info will be placed
      • group advanced items (audit/control loops/config manager etc) in a tool menu or something similar to not fill the toolbar
      • make the toolbar as clean as possible
  • Logic editor:
    • add full support to local array values: dynamic, dynamic but capped max, fixed size etc:
      • array functions should work with new local array
  • Control loop:
    • add full support to server side array values
  • Implement git style versioning for: synthetic variable, panels, control logic:
    • possibility to fork any version
    • click to view the version
    • possibility to view graphical diff between versions (side by side or unified diff)
    • simple slick versioning pane:
      • vertical tree like
      • each version represented by a circle
      • active (the one currently view/edited) version has circle bigger then rest
      • selected (the one that will be executed/showed by user) version has circle full, not active only border
      • unsaved / new version appear with connection line dashed
  • Implement admin pane: create / manage groups, set users permits, manage auditors etc
  • Implement new datasources:
    • Finalize alarm service
    • modbus tcp
    • scpi tcp
    • udp? other?
  • MAJOR Implement proper distributed server side nodes to balance load and have redundancy (if a node is not available anymore all its clients migrate seamelessly to another)