Skip to content

feat: add bec signal info - #1035

Open
wakonig wants to merge 1 commit into
mainfrom
feature/bec_signal_info
Open

wakonig wants to merge 1 commit into
mainfrom
feature/bec_signal_info

Conversation

@wakonig

@wakonig wakonig commented Sep 1, 2026

Copy link
Copy Markdown
Member

Description

This PR moves the SignalInfo class from ophyd devices to BEC core and inspects the devices upon request to broadcast a runtime snapshot of the signal info per scan. This is the first step towards a more general support of acquisition groups and aliases in BEC signals.

Copilot AI lite review requested due to automatic review settings September 1, 2026 11:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a core, versioned representation of BEC signal metadata (SignalInfo) and adds a scan-time mechanism to broadcast a runtime snapshot of signal info for all devices locked by a scan, published by the device server to a dedicated Redis stream endpoint.

Changes:

  • Add SignalInfo and BECSignalInfoMessage to bec_lib.messages and register a new bec_signal_info stream endpoint.
  • Trigger a new device-server instruction (broadcast_bec_signal_info) after the scan stage step (direct-scan lifecycle) to request a signal-info snapshot.
  • Implement device-server handling for broadcast_bec_signal_info and publish BECSignalInfoMessage updates to MessageEndpoints.bec_signal_info().

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
bec_server/bec_server/scan_server/scans/scan_actions.py Adds an internal helper to send a broadcast_bec_signal_info device instruction for currently owned device locks.
bec_server/bec_server/scan_server/direct_scan_worker.py Calls the new broadcast hook after the stage lifecycle step in direct scans.
bec_server/bec_server/device_server/device_server.py Adds instruction routing + implementation to collect BECMessageSignal.signal_info and publish a BECSignalInfoMessage to a Redis stream.
bec_lib/bec_lib/messages.py Adds SignalInfo and BECSignalInfoMessage to the shared cross-service message contract and registers the new device instruction action.
bec_lib/bec_lib/endpoints.py Adds MessageEndpoints.bec_signal_info() for publishing signal-info snapshots.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread bec_lib/bec_lib/messages.py Outdated
Comment thread bec_lib/bec_lib/messages.py
Comment thread bec_lib/bec_lib/endpoints.py
Comment thread bec_lib/bec_lib/messages.py Outdated
Comment thread bec_server/bec_server/device_server/device_server.py
@wakonig
wakonig force-pushed the feature/bec_signal_info branch 2 times, most recently from 3fe1583 to 5cdeeff Compare September 1, 2026 11:42
@wakonig wakonig self-assigned this Sep 1, 2026
@codecov

codecov Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 89.74359% with 8 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...c_server/bec_server/device_server/device_server.py 82.60% 3 Missing and 5 partials ⚠️

📢 Thoughts on this report? Let us know!

@wakonig
wakonig requested a review from a team September 2, 2026 12:00
@wakonig
wakonig force-pushed the feature/bec_signal_info branch 2 times, most recently from 2636028 to b3cc123 Compare September 7, 2026 11:50
@wakonig
wakonig force-pushed the feature/bec_signal_info branch from b3cc123 to b8b68cc Compare September 7, 2026 13:12
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.

2 participants