* RX.GET_FREE_OFFSETS API addition
- Reads optional `SPEED`, `LOW`, `HIGH` params (defaults: current mode, 500 Hz, 2500 Hz)
- For each active offset in `m_bandActivity` (within 30 seconds), computes the blocked zone as `occ ± (requestedBW/2 + signalBW/2)` — accounting for both the occupying signal's actual bandwidth and your intended TX bandwidth
- Sorts and merges overlapping blocked zones, then returns the gaps as `FREE` segments
- Omits gaps narrower than your TX bandwidth (they can't fit anyway)
- Example response: {"params":{"FREE":[{"HIGH":860,"LOW":500,"WIDTH":360},{"HIGH":2500,"LOW":1120,"WIDTH":1380}],"BANDWIDTH":160,"HIGH":2500,"LOW":500,"SPEED":2,"_ID":...},"type":"RX.FREE_OFFSETS","value":""}
- 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>
* Move RX.FILTER commands to RX section for Doxygen grouping
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>
---------
Co-authored-by: BrunoKlu <brunoklu@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Rename all MODE.* config commands to STATION.* (including SET_GROUPS
and SET_AVOID_ALLCALL)
- Add @note API 2.6+ to each new @brief block (12 commands total)
- Translate French comments to English
* Move STATION commands to STATION section for Doxygen grouping
Co-authored-by: BrunoKlu <brunoklu@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Wyatt Miler <wmiler1@gmail.com>
* TCP API: 8 STATION commands + headless autoreply confirmation
- networkMessage.cpp: MODE.GET_CONFIG, SET_AUTO_REPLY, SET_JS8HB,
SET_HBACK, SET_MULTI_DECODER, SET_HB_INTERVAL, SET_HB_TIMER, SEND_HB
- mainwindow.cpp/h: confirmThenEnqueueMessage() sends TCP push
instead of SelfDestructMessageBox (headless/xvfb compatible)
- Configuration.cpp/h: autoreply_confirmation accessor
- Rename 10 new config commands from MODE.* to STATION.* (MODE is
reserved for JS8 protocol only, STATION is for configuration)
- Add @note API 2.6+ to each new @brief block
- Translate French comments to English
rename remaining files that didn't match their class definitions
relocate the explicit UI_Constructor member function to JS8_MainWindow
relocate the processBufferedActivity member function to JS8_MainWindow
format affected files with LLVM clang-format
Set default APRS inbound relay to off
Fix layout of General->Networking & Autoreply tab in Settings