Skip to content

fix: Improved Time domain rendering - #29

Merged
hunterhubble merged 2 commits into
HubbleNetwork:mainfrom
hunterhubble:error-reporting
Jul 16, 2026
Merged

fix: Improved Time domain rendering#29
hunterhubble merged 2 commits into
HubbleNetwork:mainfrom
hunterhubble:error-reporting

Conversation

@hunterhubble

@hunterhubble hunterhubble commented Jul 11, 2026

Copy link
Copy Markdown
Contributor
  • Fixed an issue that would cause the spectrogram view to lag when requesting time-domain plots. When looking for errors, or searching for a plot by device ID, satellite packets that transmit at a set interval visibly looked staggered. Time-domain rendering is now done in a separate OS process (td_renderer.py) instead of inline in processor.py.

  • Fixed a bug that caused false-positive error reporting for packets cut off by the decode window.

  • Fixed a bug where a strong, valid packet's own payload could trip a phantom detection that was falsely reported as a failure.

  • Fixed a bug where packets decoded across two decode windows didn't appear in the time-domain viewer when searching by device ID.
    These were fixed with a cross-cycle state machine in the processor:

  • For cutoff/incomplete packets, it now waits for the next decode window before declaring a failure — if the packet decodes on the second window, it's not reported as an error.

  • For device-ID and near-edge matches, it now sources candidates from raw decode attempts (not the de-duplicated display list) and retries a match across windows instead of dropping it, then hands processor.py the start/end sample to plot.

  • Also added a test suite test_td_capture.py covering the state machine without needing a Pluto.

- Fixed an issue that would cause the spectrogram
view to lag when requesting time domain plots.
Time domain rendering is now done with a seperate
OS process for much smoother viewing
- Fixed a bug that caused false-negative error
reporting for packets that were cutoff by the
decode window.

Signed-off-by: hunterhubble <hunter@hubble.com>
- Before it wouldn't repeat numbers, even
if that packet was transmitted twice. Now it does

Signed-off-by: hunterhubble <hunter@hubble.com>
@hunterhubble
hunterhubble merged commit 3ce3a96 into HubbleNetwork:main Jul 16, 2026
5 checks passed
@hunterhubble
hunterhubble deleted the error-reporting branch July 16, 2026 17:12
hunterhubble added a commit to hubble-art/sdr-docker that referenced this pull request Aug 28, 2026
The spectrum-analyzer view was rendering inline in processor_main,
alongside decode -- the same GIL-contention problem that time-domain
plot rendering had before it was split into td_renderer.py (see HubbleNetwork#29).
A background thread doesn't help; matplotlib rendering holds the GIL
too long, so it needs true process-level parallelism like TD got.

Adds spectrum_renderer.py, mirroring td_renderer.py's pattern: a
dedicated OS process fed by a single-slot job queue, whose result
carries an "img" merged into the same result_queue the spectrogram
already uses. processor_main hands off spectrum-view frames to it
via _submit_spectrum_render instead of calling render_spectrum_image
inline; app.py wires it in as a third watchdog-supervised worker.
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