Skip to content

Generalize the Diablo names: star_server, DaqEnums/COMMS_VERSION, the engine state machine - #223

Open
cytocracy wants to merge 6 commits into
mainfrom
chore/rename-diablo
Open

cytocracy wants to merge 6 commits into
mainfrom
chore/rename-diablo

Conversation

@cytocracy

Copy link
Copy Markdown
Contributor

LE3 was called Diablo, and its name ended up on code that every stand uses. This PR generalizes it. Wherever the name refers to the old engine itself (the website, examples) it stays.

What changes (one commit each)

  1. Stop tracking generated files in daq-server/: build-clang-ci/, .cache/clangd, a node_modules/ with no package.json beside it, and a stale backend dist/ (the backend runs src/ through tsx). Nothing reads any of these at runtime.
  2. daq-server/diablo_server/ → daq-server/star_server/, along with every path into it: CMake, CI, deploy/setup scripts, systemd, aliases, docs.
  3. Stop tracking daq-server/build-ci/ binaries and three __pycache__ files.
  4. Protocol (lib/daq-protocol):
    • DiabloEnums.h / DiabloPackets.h / DiabloPacketUtils.{h,cpp} → DaqEnums.h / DaqPackets.h / DaqPacketUtils.{h,cpp}.
    • DIABLO_COMMS_VERSION / DIABLO_VERSION → COMMS_VERSION. In daq-protocol.h it's now a typed constexpr instead of a #define, because ControllerService.cpp declares its own COMMS_VERSION and the macro would silently rewrite it.
    • The wire format is unchanged; the version byte is still 0.
  5. feed-twin's state machine "diablo" → "engine", and its tables diablo_* → engine_*. Saved stands, exported bundles and run records that say "diablo" still load: feedtwin.session.statemachine.canonical maps the old name to the new one. There are three tests for this, and each one fails with the alias removed.
  6. Remaining names:
    • "Diablo DAQ" → "STAR DAQ"; DiabloAvionics → StarAvionics where it means the boards or protocol; "Diablo FSW" → "Star FSW"
    • SensorSystemConfig, __STAR_WS_CLIENT__, the star-ota- temp prefix
    • The livestream pane still reads its old browser-storage keys, so consoles keep their selection.
    • The firewall scripts delete the old-named rules before adding the new ones.

Deliberately unchanged

  • Links to the real calstar/DiabloAvionics repo and external/DiabloAvionics/... paths (real locations)
  • /home/aidan/Diablo-FSW in two debug scripts
  • Archives, plus dated records (changelogs, the Layer X audit, dry-run and overnight notes)
  • CONTROL_PASSWORD || 'diablo' in test/session_flow_test.ts and test/ws_data_flow_test.ts, a password left for a separate decision

After merging, on the stand

sensor-backend.service's WorkingDirectory now ends in star_server/backend. Re-run deploy/systemd/install_services.sh after pulling, between runs.

Verified

  • daq-server C++ builds; ctest passes 27/27. Five tests (script_runtime, sequencer_elodin, sequencer_concurrency, abort_ordering, t7_integration) need a live Elodin and fail identically on main on this machine.
  • DAQ frontend: tsc passes, 488/488 tests. Backend: tsc passes; vitest's only failure is the macOS Bonjour test, which also fails on main. The config-profile test, which leaks into config/ (fixed in DAQ backend tests: stop writing profiles into the checkout's config/ #222), was left out of the run.
  • Firmware: Hotfire_Tests native passes. PT, TC, RTD, LC, Actuator, BallValve, ProtoEncoder and ActuatorCon all build. Stacklight Driver and Environmental Tracker don't build on this machine on main either (they need PlatformIO 6.2 / Adafruit_BME280), and neither uses a renamed symbol.
  • scripts/check.sh fast tier passes (frontend e2e skipped: no Chromium). Not run: the Layer X parity test (check.sh full), because there's no EngineDesign environment on this machine. Layer X loads the default machine from the same folder.

build-clang-ci/, .cache/clangd, a root node_modules/ with no package.json
beside it, and a stale backend dist/ (the backend runs src/ through tsx).
None is read at runtime; all were carrying old names.
The folder was named for LE3; it is the DAQ for every stand now. Every path
into it follows (CMake, CI, deploy and setup scripts, systemd, aliases, docs).

The stand's installed sensor-backend unit points at the old path: rerun
deploy/systemd/install_services.sh after pulling.
daq-server/build-ci/ held prebuilt service binaries nothing reads (the Doxyfile
already excludes it); three __pycache__ files were committed despite the ignore.
The protocol's headers drop the LE3 name for the library's own: DiabloEnums.h,
DiabloPackets.h and DiabloPacketUtils.{h,cpp} become Daq*. The version byte is
COMMS_VERSION everywhere (DIABLO_COMMS_VERSION in the library and GUIs,
DIABLO_VERSION in the heartbeat service and sim), and in daq-protocol.h it is a
typed constexpr rather than a macro: ControllerService.cpp declares its own
COMMS_VERSION, and a file that ever sees both now fails to compile instead of
being rewritten by the preprocessor. Wire format unchanged; the value is 0.

The library README's old DAQv2-Comms names and namespace are corrected.

Verified: daq-server C++ build and ctest (the five tests that need a live
Elodin fail identically on main); Hotfire_Tests native; PT, TC, RTD, LC,
Actuator, BallValve, ProtoEncoder and ActuatorCon builds. Stacklight Driver and
Environmental Tracker do not build on this machine on main either (PlatformIO
6.2 / missing Adafruit_BME280).
The shipped DAQ table and its panel, channel and transition files are
engine_*. Saved stands, exported bundles and run records still say "diablo":
feedtwin.session.statemachine.canonical maps the old name to the new one, so
they load the same table, import without a 'ships no table' note, and a run
diff does not report a machine change that is a rename. Tests for all three,
each red with the alias removed.

Living docs follow; dated records (changelogs, the Layer X audit, dry-run and
overnight notes) keep the name they were written under.

scripts/check.sh fast tier green (frontend e2e skipped: no Chromium here).
Branding (the console header, page titles, the run viewer, READMEs), the board
protocol's name in comments and logs (DiabloAvionics -> StarAvionics), and the
small identifiers: SensorSystemConfig, __STAR_WS_CLIENT__, the star-ota- temp
prefix, BoardPacketParser in the docs, STARAVIONICS_NETWORK_CONFIG.md.

Where a name is stored outside the repo the old one is still honoured:
- the livestream pane reads its old localStorage keys when the new are empty;
- the firewall scripts delete the old-named rules before adding new ones.
daq_bridge's 'Listening for StarAvionics packets' and the integration test
that waits on it change together.

Kept: links to the calstar/DiabloAvionics repo and external/DiabloAvionics
paths (real locations), /home/aidan/Diablo-FSW, archives, and the default
CONTROL_PASSWORD in two tests.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant