Skip to content

nucleo-cyphal: publish uavcan.diagnostic.Record (8184) for yactui visibility (issue #48) - #49

Open
emrainey wants to merge 1 commit into
developfrom
issue-48
Open

nucleo-cyphal: publish uavcan.diagnostic.Record (8184) for yactui visibility (issue #48)#49
emrainey wants to merge 1 commit into
developfrom
issue-48

Conversation

@emrainey

@emrainey emrainey commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Closes #48.

Publishes uavcan.diagnostic.Record.1.0 so the messages show up in yactui
(yactui subscribes on the standard DSDL port, which is fixed subject 8184
for Record.1.0).

Changes

  • CyphalApp::PublishRecord(): builds a Record (memset-style init to dodge the
    generated initialize_() -Warray-bounds gotcha), alternates INFO/WARNING
    severity, formats nucleo-cyphal diagnostic #N uptime=Ns text, and publishes on
    the shared udpardTxPublish pipeline at UdpardPriorityLow.
  • Gated on a 1 s tick in Execute() alongside the Heartbeat publisher.
  • New host Catch2 suite cyphal-record: LE wire layout (56-bit timestamp,
    3-bit severity, text length byte), serialize/deserialize round trip,
    112-byte text capacity, and fixed port-ID registry check.

Tests

  • LLVM 19/19, AppleClang 19/19; M4 and M7 cross workflows build.

Note: on-host-native-gcc is not buildable on macOS (pre-existing, see AGENTS.md).

AI-authored (deepseek-v4-flash-free, default params):
- Add PublishRecord() publishing uavcan.diagnostic.Record.1.0 on fixed subject
  8184 via the shared udpardTxPublish pipeline, alternating INFO/WARNING severity
  with a formatted text payload (# + uptime)
- memset-style init to avoid the generated initialize_() -Warray-bounds gotcha
- Gate on a 1 s tick alongside the Heartbeat publisher
- Host Catch2 tests: wire layout (LE timestamp, severity, text len), round trip,
  112-byte text cap, fixed port-ID registry check

Human: requested the publishes for yactui visibility; subject 8184 chosen per DSDL.

Verified: LLVM 19/19, AppleClang 19/19, M4 + M7 cross workflows build.
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