Commit Graph

37 Commits

Author SHA1 Message Date
Martino Ferrari e4e67ee0c2 Add design spec for local array values in flow engines
Approved design for first-class array-valued local variables across the
panel-logic (TS) and control-logic (Go) engines: array StateVar declarations
(dynamic/capped/fixed sizing), an array-aware expression language shared by
both engines, sizing-policy-aware mutation nodes (unifying the existing
accumulate/export/clear arrays), persistence, and widget binding.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-24 10:32:11 +02:00
Martino Ferrari cf9da3df0a Implemented new datasources (modbus,scpi) 2026-06-24 06:12:52 +02:00
Martino Ferrari 999a1510d4 Ignore build/test output and workspace runtime state
Add .gitignore rules for SQLite WAL/SHM sidecars, coverage output, and
the dev workspace/data storage dir (keeping the demo.xml/epics_test.xml
fixtures), completing the runtime-artifact cleanup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-24 01:48:07 +02:00
Martino Ferrari 6f7c90cc98 Stop tracking dev workspace runtime artifacts
Untrack generated runtime state under workspace/data (SQLite audit db +
WAL/SHM, config/control-logic/synthetic versions, trash, acl) plus dev
logs and iocsh history; these are regenerated on each run. Curated
fixtures (demo.xml, epics_test.xml, the EPICS test IOC db, run.sh,
st.cmd) stay tracked. Extend .gitignore so they don't return.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-24 01:47:43 +02:00
Martino Ferrari c0f7e662be Testing 2026-06-24 01:39:15 +02:00
Martino Ferrari 11120bedca Added ldap and pam authentication 2026-06-23 17:59:40 +02:00
Martino Ferrari ac24011487 Implemented admin pane + user permission 2026-06-22 17:49:14 +02:00
Martino Ferrari 73fcbe7b28 Improved plot view 2026-06-22 00:30:15 +02:00
Martino Ferrari 113e5a0fe8 Implemented confi snapshots 2026-06-21 23:50:03 +02:00
Martino Ferrari 04d31a15c4 Done config 2026-06-21 17:40:04 +02:00
Martino Ferrari b0ac044035 Working on better ux and comnfig editro 2026-06-21 12:50:04 +02:00
Martino Ferrari 3fc7c1b546 initial config manager 2026-06-20 17:40:03 +02:00
Martino Ferrari 206d5b541d Expand TODO widgets item with concrete HMI widget examples
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-20 17:10:52 +02:00
Martino Ferrari f7f297c3df Add synthetic array (waveform) DSP support + UX improvements
Adds full array/waveform support through the synthetic DSP engine: a
dsp.Sample value model (scalar or []float64), array ops (index, slice,
sum, mean, min, max, length, fft) with an in-tree radix-2 FFT, and static
type propagation (OpOutputType) that the editor mirrors to colour wires by
data type and flag invalid wirings. Stateful filters and lua stay
scalar-only. Adds a waveform plot mode (x-vs-index trace).

Also: errored-node hover reasons, S/N add-signal/add-node HUD shortcuts in
the synthetic editor, and view-mode widgets that blend with the canvas
background (chrome kept in edit mode).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-20 17:06:55 +02:00
Martino Ferrari 446de7f1ee Improving all side of app 2026-06-20 14:28:28 +02:00
Martino Ferrari 901b87d407 Implementing more advanced feature: audit and more 2026-06-19 14:17:46 +02:00
Martino Ferrari 8f6dbcba49 Working on audit 2026-06-19 09:44:57 +02:00
Martino Ferrari 914108e575 Plot fix 2026-06-19 07:57:42 +02:00
Martino Ferrari ba836f00e6 Add widget-control logic action and multi-column CSV / multi-field dialogs
Extend the panel logic editor with two capabilities:

- action.widget: drive a panel widget by id from a flow — enable/disable,
  show/hide, and (for plot widgets) clear, pause, or resume the live plot.
  Wired via a per-widget command store consumed by a Canvas WidgetView wrapper
  (disable overlay / hide) and PlotWidget (pause/clear), reset on panel unmount.
- action.export now emits multiple named arrays as CSV columns with per-column
  labels and an alignment mode (common/any/interpolate); dialogs support asking
  for and displaying multiple values per dialog.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-19 07:51:18 +02:00
Martino Ferrari afefba3184 Add control logic engine, panel logic dialogs, logic-edit restriction
Introduce server-side control-logic flow graphs (cron/alarm triggers,
Lua blocks) with CRUD endpoints, panel-logic lifecycle triggers and
user-interaction dialog nodes, and a synthetic node-graph editor.

Add an optional logic-editor allowlist (server.logic_editors) gating who
may add/edit panel logic and control logic, surfaced via /api/v1/me and
enforced in the API; hide logic affordances in the UI accordingly.

Update README, example config, and functional/technical specs to cover
all current features (plot panels, panel/control logic, local variables,
access control) and refresh the in-app manual and contextual help.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-19 07:27:35 +02:00
Martino Ferrari aba394b84d Major changes: logic add to panel, local variables, panel histor, users management... 2026-06-18 17:37:04 +02:00
Martino Ferrari 71430bc3b0 Wworking on improving the tool 2026-05-21 07:41:56 +02:00
Martino Ferrari 6ff8fb5c25 Improved perfs 2026-05-12 10:16:48 +02:00
Martino Ferrari 912ecdd9ed Improved UI 2026-05-06 15:55:45 +02:00
Martino Ferrari 0a5a85e4c4 working epics ioc and tested 2026-05-04 21:13:36 +02:00
Martino Ferrari 90669c5fd6 Initial working fully go release 2026-04-30 23:01:01 +02:00
Martino Ferrari 6e51ffc5e1 Initial go port of epics 2026-04-28 00:09:22 +02:00
Martino Ferrari 47e481a461 final use of c libepics 2026-04-27 12:56:00 +02:00
Martino Ferrari 1bda25454b Implemented epics read/write 2026-04-27 12:42:10 +02:00
Martino Ferrari b76b7f0ba8 complete first iteration 2026-04-26 14:28:48 +02:00
Martino Ferrari e5e67afafd complete first iteration 2026-04-26 14:28:42 +02:00
Martino Ferrari 824b6ff833 phase 10 2026-04-26 11:01:58 +02:00
Martino Ferrari e83e183673 phase 10 2026-04-26 11:01:55 +02:00
Martino Ferrari 91b42027c9 phase 7 2026-04-25 23:10:51 +02:00
Martino Ferrari 986f6cd6d8 Phase 6 2026-04-25 22:56:09 +02:00
Martino Ferrari 8b548ba1c2 Phase 2/4 done, working on phase 3/5 2026-04-24 15:46:04 +02:00
Martino Ferrari 9aa89cc0cf Initial commit 2026-04-24 15:09:14 +02:00