Problem
AetherSDR's rigctld (Hamlib NET rigctl) emulation has a number of gaps and incorrect responses that break real Hamlib clients. These surfaced across several apps:
1. pat / Winlink can't load AetherSDR as a rig.
Cannot load rig 'AetherSDR': Unable to select VFO: rigctl is not running in VFO mode
AetherSDR reports chk_vfo → 0, but pat and WSJT-X require chk_vfo=1 (VFO-prefix mode). With chk_vfo=1, many VFO-sensitive commands then also need to accept a leading VFO argument, which several handlers didn't.
2. WSJT-X "Rig" split fails with a protocol error.
rig_set_split_mode returning(-8) Protocol error
rig_set_split_freq_mode returning(-8) Protocol error
while setting split TX frequency and mode
With a targetable VFO, WSJT-X sets the TX VFO directly (set_freq VFOB <hz> / set_mode VFOB <mode>) without a preceding set_split_vfo. AetherSDR rejected those with RPRT -8 (no second slice yet), and the set_split_* handlers also didn't strip the VFO prefix (RPRT -1).
3. set_mode CWR produces the wrong mode. Setting Hamlib CW-reverse mapped to a Flex CWL slice mode that doesn't exist; the radio silently coerced it (observed → PKTUSB). FlexRadio has a single CW slice mode (sideband is global), so CW-reverse has no per-slice equivalent.
4. CTCSS / DCS / AGC not wired or lying. CTCSS TX tone and AGC level weren't connected to the radio; unsupported features (RX CTCSS squelch, DCS) returned RPRT 0 ("success") instead of an honest error.
5. Bare-mode response framing. Bare-mode getter terminators didn't match Hamlib's reference rigctld. Notably, dropping the trailing RPRT 0 on get_lock_mode reintroduces a ~20 s WSJT-X startup stall (previously fixed in #3115); conversely #3120 over-generalized by adding it to every getter.
6. Assorted chk_vfo=1 command gaps. get_func/set_func, set_ctcss_tone, set_ts, set_ant, vfo_op and others returned errors when sent with the VFO prefix that VFO mode implies. VFOMEM was silently redirected to the active RX slice. Several CAT-thread writes to the GUI-thread slice model were unsynchronized.
Impact
pat won't connect at all; WSJT-X split is unusable; CW-reverse, CTCSS, and AGC give wrong or dishonest results to any Hamlib consumer (WSJT-X, fldigi, MacLoggerDX, JTDX, …).
Fix
Addressed by #3619 — a broad correctness pass against Hamlib's tests/rigctl_parse.c / rigs/network/netrigctl.c, validated live with WSJT-X (FT8 + Rig split) and fldigi, plus 208/208 in the in-tree rigctld_test suite (Mac live, RPi 5, Win 11).
Problem
AetherSDR's
rigctld(Hamlib NET rigctl) emulation has a number of gaps and incorrect responses that break real Hamlib clients. These surfaced across several apps:1. pat / Winlink can't load AetherSDR as a rig.
AetherSDR reports
chk_vfo → 0, but pat and WSJT-X requirechk_vfo=1(VFO-prefix mode). Withchk_vfo=1, many VFO-sensitive commands then also need to accept a leading VFO argument, which several handlers didn't.2. WSJT-X "Rig" split fails with a protocol error.
With a targetable VFO, WSJT-X sets the TX VFO directly (
set_freq VFOB <hz>/set_mode VFOB <mode>) without a precedingset_split_vfo. AetherSDR rejected those withRPRT -8(no second slice yet), and theset_split_*handlers also didn't strip the VFO prefix (RPRT -1).3.
set_mode CWRproduces the wrong mode. Setting Hamlib CW-reverse mapped to a FlexCWLslice mode that doesn't exist; the radio silently coerced it (observed→ PKTUSB). FlexRadio has a singleCWslice mode (sideband is global), so CW-reverse has no per-slice equivalent.4. CTCSS / DCS / AGC not wired or lying. CTCSS TX tone and AGC level weren't connected to the radio; unsupported features (RX CTCSS squelch, DCS) returned
RPRT 0("success") instead of an honest error.5. Bare-mode response framing. Bare-mode getter terminators didn't match Hamlib's reference
rigctld. Notably, dropping the trailingRPRT 0onget_lock_modereintroduces a ~20 s WSJT-X startup stall (previously fixed in #3115); conversely #3120 over-generalized by adding it to every getter.6. Assorted
chk_vfo=1command gaps.get_func/set_func,set_ctcss_tone,set_ts,set_ant,vfo_opand others returned errors when sent with the VFO prefix that VFO mode implies.VFOMEMwas silently redirected to the active RX slice. Several CAT-thread writes to the GUI-thread slice model were unsynchronized.Impact
pat won't connect at all; WSJT-X split is unusable; CW-reverse, CTCSS, and AGC give wrong or dishonest results to any Hamlib consumer (WSJT-X, fldigi, MacLoggerDX, JTDX, …).
Fix
Addressed by #3619 — a broad correctness pass against Hamlib's
tests/rigctl_parse.c/rigs/network/netrigctl.c, validated live with WSJT-X (FT8 + Rig split) and fldigi, plus 208/208 in the in-treerigctld_testsuite (Mac live, RPi 5, Win 11).