Summary
Comparing AetherSDR's SmartCAT (Flex / TS-2000 dialects) against SmartSDR for Mac and Windows on a FLEX-6500 (via split_vfo_test + packet captures) surfaced a cluster of VFO-B / split behavior differences. Itemized below; the ASDR column is current main behavior.
| # |
Behavior |
ASDR (main) |
SmartSDR-Mac |
SmartSDR-Win |
| 1 |
FB/ZZFB with no VFO B |
returns VFO A's freq (fallback) |
?; (rejected) |
?; (rejected) |
| 2 |
ZZME with no VFO B |
?; ✓ |
?; |
?; |
| 3 |
FR (RX-VFO select) |
no-op (accepts, does nothing) |
gated: FR1 only with a real VFO B, else ?;; FA still reports VFO A (no swap) |
same |
| 4 |
ZZFR |
invented std::swap(A,B) |
not a SmartSDR command (unsupported) |
unsupported |
| 5 |
Split enable, dual (VFO B present) |
flag only — TX not moved to B |
split=True, TX on VFO B |
split=True, TX on VFO B |
| 6 |
Split enable, VFO B configured but slice absent |
flag set (no error) |
NOT_ENABLED (?;) |
n/a (no dual config) |
| 7 |
Split enable, single VFO (no VFO B) |
flag only (no real split) |
NOT_ENABLED |
creates a TX slice (room) / NOT_ENABLED (slices full) |
| 8 |
vfo select B, single VFO |
— |
no swap (freq == VFO A) |
get_freq error (no B) |
| 9 |
RIT/XIT (flex) |
supported |
RIT off / XIT reported on |
NOT_SUPPORTED |
Detail / impact
Notes on a fix direction
Most of #1–#6 are spec-faithful response corrections (reuse the operator-configured VFO B, NOT_ENABLED when it's configured-but-absent, real FR, ZZFR→?;, no swap). #7's create-a-slice-on-demand (the SmartSDR-Win path) depends on slice-lifecycle work tracked separately; in the interim an XIT-offset fallback gives a functional single-VFO split (a third behavior, distinct from both SmartSDR builds — documenting it as such).
Summary
Comparing AetherSDR's SmartCAT (Flex / TS-2000 dialects) against SmartSDR for Mac and Windows on a FLEX-6500 (via
split_vfo_test+ packet captures) surfaced a cluster of VFO-B / split behavior differences. Itemized below; the ASDR column is currentmainbehavior.FB/ZZFBwith no VFO B?;(rejected)?;(rejected)ZZMEwith no VFO B?;✓?;?;FR(RX-VFO select)FR1only with a real VFO B, else?;; FA still reports VFO A (no swap)ZZFRstd::swap(A,B)split=True, TX on VFO Bsplit=True, TX on VFO B?;)vfo select B, single VFODetail / impact
?;is a freq-yes/mode-no contradiction that breaks controllers' VFO sync.FRshould be the real Kenwood RX-VFO selector;ZZFRisn't a SmartSDR command and its A/B swap corrupts the VFO mapping.Notes on a fix direction
Most of #1–#6 are spec-faithful response corrections (reuse the operator-configured VFO B, NOT_ENABLED when it's configured-but-absent, real
FR,ZZFR→?;, no swap). #7's create-a-slice-on-demand (the SmartSDR-Win path) depends on slice-lifecycle work tracked separately; in the interim an XIT-offset fallback gives a functional single-VFO split (a third behavior, distinct from both SmartSDR builds — documenting it as such).