Skip to content

S2: record an actuator status that arrived before any system description - #287

Merged
Flix6x merged 2 commits into
dev/s2-frbc-completefrom
fix/s2-keep-early-actuator-status
Nov 9, 2026
Merged

Flix6x merged 2 commits into
dev/s2-frbc-completefrom
fix/s2-keep-early-actuator-status

Conversation

@Flix6x

@Flix6x Flix6x commented Nov 9, 2026

Copy link
Copy Markdown
Member

Follows up on a review comment on #283: keep an actuator status that arrives before any system description, and process it once one arrives, instead of dropping it.

Why

After a reconnection, a resource manager can send its FRBC.ActuatorStatus before its FRBC.SystemDescription. Only the description says what power an operation mode stands for, so #274 logged such a status and skipped it, rather than raising in a background task. The power sensor then showed nothing until the resource manager sent its next status, which for a device that does not switch can take a long time.

What

  • FRBC keeps, per actuator, the latest status that arrived before any description (_statuses_awaiting_a_description). Only the latest matters, since a status describes the actuator's present state.
  • When a description arrives, the kept statuses are handled as if they had just arrived, in a background task like any other status.
  • FRBCSimple.send_actuator_status keeps the status instead of only logging it, at info level rather than as a warning, since nothing is lost any more.

The TUNES handler overrides handle_system_description and records no actuator power, so it keeps nothing and is unaffected.

Evidence

  • Tests: 761 pass. The test for an early status now sends two statuses before the description and checks that only the latest is recorded once the description arrives. It fails when the kept statuses are not handled.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CcpawsJs74cSwFLXkz7ZwW

…escription

After a reconnection, a resource manager can send its actuator status
before its system description. Only a description says what power an
operation mode stands for, so such a status was logged and skipped, and
the power sensor showed nothing until the next status. It is now kept,
the latest per actuator, and recorded once a description arrives.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CcpawsJs74cSwFLXkz7ZwW
Signed-off-by: F.N. Claessen <claessen@seita.nl>
@Flix6x Flix6x added the S2 label Nov 9, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CcpawsJs74cSwFLXkz7ZwW
Signed-off-by: F.N. Claessen <claessen@seita.nl>
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 42648463298

Warning

No base build found for commit 2e62cf2 on dev/s2-frbc-complete.
Coverage changes can't be calculated without a base build.
If a base build is processing, this comment will update automatically when it completes.

Coverage: 95.943%

Details

  • Patch coverage: 10 of 10 lines across 2 files are fully covered (100%).

Uncovered Changes

No uncovered changes found.

Coverage Regressions

Requires a base build to compare against. How to fix this →


Coverage Stats

Coverage Status
Relevant Lines: 3180
Covered Lines: 3051
Line Coverage: 95.94%
Coverage Strength: 4.57 hits per line

💛 - Coveralls

@Flix6x Flix6x added this to the 0.10.0 milestone Nov 9, 2026
@Flix6x
Flix6x merged commit d7d9f6c into dev/s2-frbc-complete Nov 9, 2026
18 of 19 checks passed
@Flix6x
Flix6x deleted the fix/s2-keep-early-actuator-status branch November 9, 2026 18:29
Flix6x added a commit that referenced this pull request Nov 9, 2026
…ensor

Signed-off-by: F.N. Claessen <claessen@seita.nl>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant