Skip to content

fix(waveform): allow async signals to be used in waveform#1186

Closed
wakonig wants to merge 1 commit into
mainfrom
fix/waveform_async_signal
Closed

fix(waveform): allow async signals to be used in waveform#1186
wakonig wants to merge 1 commit into
mainfrom
fix/waveform_async_signal

Conversation

@wakonig

@wakonig wakonig commented Jun 10, 2026

Copy link
Copy Markdown
Member

Description

[Provide a brief description of the changes introduced by this pull request.]

Related Issues

[Cite any related issues or feature requests that are addressed or resolved by this pull request. Link the associated issue, for example, with fixes #123 or closes #123.]

Type of Change

  • Change 1
  • Change 2

How to test

  • Run unit tests
  • Open [widget] in designer and play around with the properties

Potential side effects

[Describe any potential side effects or risks of merging this PR.]

Screenshots / GIFs (if applicable)

[Include any relevant screenshots or GIFs to showcase the changes made.]

Additional Comments

[Add any additional comments or information that may be helpful for reviewers.]

Definition of Done

  • Documentation is up-to-date.

Copilot AI review requested due to automatic review settings June 10, 2026 14:42

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 updates the Waveform plot’s device-curve categorization logic so curves associated with async-capable signals (from the BEC device manager) are treated as async even if they aren’t listed in the scan’s readout_priority.

Changes:

  • Query BEC device manager for async-related signal classes and use that to classify curves as async.
  • Extend async classification condition to include devices discovered via the device manager.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +2311 to +2316
async_signals = self.client.device_manager.get_bec_signals(
["AsyncSignal", "AsyncMultiSignal", "DynamicSignal"]
)
async_signal_objs = defaultdict(list)
for device, _, entry_data in async_signals:
async_signal_objs[device].append(entry_data.get("obj_name"))
Comment on lines 3 to 5
import json
from collections import defaultdict
from typing import TYPE_CHECKING, Literal
@github-actions

Copy link
Copy Markdown
Contributor

Benchmark comparison

Threshold: 20% (lower is better).
Result: 0 regression(s), 0 improvement(s) beyond threshold.

No benchmark regression exceeded the configured threshold.

No benchmark improvement exceeded the configured threshold.

All benchmark results
Benchmark Baseline Current Change Status
BEC IPython client with companion app 5.82713 s 6.0461 s +3.76% ok
BEC IPython client without companion app 1.91878 s 1.91498 s -0.20% ok
Import bec_widgets 0.0130001 s 0.0130304 s +0.23% ok
tests/unit_tests/benchmarks/test_dock_area_benchmark.py::test_add_waveform_to_dock_area 0.147591 s 0.15398 s +4.33% ok

@codecov

codecov Bot commented Jun 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 66.66667% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
bec_widgets/widgets/plots/waveform/waveform.py 66.66% 1 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

@wakonig wakonig marked this pull request as draft June 11, 2026 07:07
@wyzula-jan

Copy link
Copy Markdown
Contributor

closed in favor of #1195

@wyzula-jan wyzula-jan closed this Jul 1, 2026
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.

3 participants