Skip to content

Add FILTER TCP API for remote bandpass filter control#209

Merged
wmiler merged 3 commits into
JS8Call-improved:masterfrom
BrunoKlu:feature/filter-tcp-api
Mar 7, 2026
Merged

Add FILTER TCP API for remote bandpass filter control#209
wmiler merged 3 commits into
JS8Call-improved:masterfrom
BrunoKlu:feature/filter-tcp-api

Conversation

@BrunoKlu

@BrunoKlu BrunoKlu commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add filterCenter() and filterWidth() public getters to WideGraph
  • Add 3 new TCP API commands for remote bandpass filter control:
    • FILTER.GET_FILTER — returns current center, width, and enabled state
    • FILTER.SET_FILTER — set CENTER and/or WIDTH parameters
    • FILTER.SET_ENABLED — toggle filter overlay on/off

Motivation

JS8Call-improved already exposes most station/RX/TX/MODE settings via TCP, but the bandpass filter has no TCP API. This makes it impossible for headless or remote setups to control the filter overlay.

The filter remains purely visual (no DSP) — these commands control the same overlay that the desktop Qt spinbox/dial widgets control.

Changes

File Change
JS8_UI/WideGraph.h 2 public getters: filterCenter() const, filterWidth() const
JS8_UI/WideGraph.cpp Implementation (read m_filterCenter, m_filterWidth)
JS8_Mainwindow/networkMessage.cpp 3 FILTER command handlers

API Details

FILTER.GET_FILTER

Returns: FILTER.FILTER with {CENTER: int, WIDTH: int, ENABLED: bool}

FILTER.SET_FILTER

Params: {CENTER: int} and/or {WIDTH: int}
Returns: FILTER.FILTER with updated state

FILTER.SET_ENABLED

Value: "true" or "false"
Returns: FILTER.SET_ENABLED with {ENABLED: bool}

Test plan

  • Build and run JS8Call
  • Send FILTER.GET_FILTER via TCP — verify JSON response with CENTER, WIDTH, ENABLED
  • Send FILTER.SET_FILTER with CENTER/WIDTH params — verify filter moves on waterfall
  • Send FILTER.SET_ENABLED — verify filter toggles on/off
  • Verify desktop Qt filter controls still work normally

- WideGraph.h/.cpp : getters filterCenter() et filterWidth()
- networkMessage.cpp : FILTER.GET_FILTER, FILTER.SET_FILTER, FILTER.SET_ENABLED
- Permet le controle du filtre visuel waterfall via TCP (QMX-Pi Session 87)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

@wmiler wmiler left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Any reason this isn't in the RX category? Are you sure you want to start another category?

Comment thread JS8_Mainwindow/networkMessage.cpp Outdated
@BrunoKlu

BrunoKlu commented Mar 2, 2026

Copy link
Copy Markdown
Contributor Author

Let me put that in RX

- Rename FILTER.GET_FILTER -> RX.GET_FILTER
- Rename FILTER.SET_FILTER -> RX.SET_FILTER
- Rename FILTER.SET_ENABLED -> RX.SET_FILTER_ENABLED
- Response type FILTER.FILTER -> RX.FILTER
- Add @note API 2.6+ to each @brief block
- Remove standalone FILTER command group (now part of RX)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
BrunoKlu added a commit to BrunoKlu/JS8Call-improved that referenced this pull request Mar 2, 2026
Applique les memes corrections que PRs JS8Call-improved#207/JS8Call-improved#208/JS8Call-improved#209 sur la branche
qmx-pi : MODE.* → STATION.* pour les commandes config, FILTER.* → RX.*
pour les commandes filtre, @note API 2.6+ sur tous les @brief, et
traduction commentaires francais → anglais.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@BrunoKlu BrunoKlu requested a review from wmiler March 2, 2026 21:34
Comment thread JS8_Mainwindow/networkMessage.cpp
@wmiler wmiler added documentation Improvements or additions to documentation enhancement New feature or request labels Mar 3, 2026
@wmiler wmiler mentioned this pull request Mar 3, 2026
@wmiler wmiler added this to the 2.6.0 milestone Mar 4, 2026
@wmiler wmiler added the API label Mar 4, 2026
Move RX.GET_FILTER, RX.SET_FILTER and RX.SET_FILTER_ENABLED handlers
from after the MODE section into the RX section, just before the
End RX Commands marker. Update summary comment block.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@wmiler wmiler merged commit 0d56997 into JS8Call-improved:master Mar 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

API documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants