feat: share the CAT link with other programs (Hamlib NET rigctl server)
A native CAT backend owns the rig's serial port, and Windows gives a COM port to one process — so choosing native CAT locked WSJT-X, MSHV and JTDX out of the radio entirely. That is the cost of dropping OmniRig, which was itself a sharing layer, and it has to be paid back. OpsLog now becomes the server, as wfview does. It speaks the Hamlib net rigctl protocol, which every one of those programs supports natively (rig model "Hamlib NET rigctl", 127.0.0.1:4532) with no driver to install. It sits in front of the MANAGER, not a backend, so an operator on OmniRig, Flex, Icom or TCI gets the same server. Two details that decide whether a client works at all rather than degrading: dump_state is parsed positionally and WSJT-X refuses to proceed without a well-formed block, so it is written out in full and its shape is pinned by a test; and set_vfo / set_split_vfo answer RPRT 0 rather than an error, because OpsLog follows the rig's own VFO and a refusal makes WSJT-X abandon the connection. Unknown commands answer RPRT -11 — never silence, which hangs a client instead. The whole protocol is tested against a fake rig, plus one end-to-end exchange over a real socket, since the framing is as much the contract as the text. Also: the Yaesu backend is confirmed working on a real FTDX10 (frequency, mode, VFO, split), so its "not yet verified" note is now wrong and is corrected.
This commit is contained in:
@@ -30,9 +30,10 @@ package cat
|
||||
// remembered. Every unrecognised reply is logged raw, because that log is the
|
||||
// only way to learn a model's real behaviour from an operator's shack.
|
||||
//
|
||||
// Verified on: nothing yet — written from the FTDX10/FTDX101 CAT reference and
|
||||
// awaiting a first on-air run. Anything this file asserts about a rig it has not
|
||||
// met should be read as a hypothesis with a log line attached.
|
||||
// Verified on: FTDX10, 2026-07-29 — frequency, mode, VFO and split all correct
|
||||
// against the radio. The other models are still inference from the same CAT
|
||||
// reference; anything this file asserts about a rig it has not met should be
|
||||
// read as a hypothesis with a log line attached.
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
Reference in New Issue
Block a user