fix(tci server): split armed on the frequency asked for, in either order

Audit prompted by "are we sure the commands are implemented — split, Fake It,
Split rig?". The rigctl server is complete and hardened; the TCI one, three days
old, had reintroduced a bug rigctld had already paid for.

A client working split says two things — where to transmit, and that split is
on — and nothing obliges it to say them in that order. A write to channel B
while the rig was still simplex was DISCARDED, on the sound principle that
preparing a transmit frequency is not a request to QSY. But then the split was
armed on whatever the transmit VFO held, which is the receive frequency: the
operator transmits straight onto the DX while their software shows exactly what
they asked for. The frequency is now remembered and used when the split arrives,
which is what rigctld does with set_split_vfo / set_split_freq.

Two more from the same source:

Asking for a split state the rig is already in touches nothing. A client in Fake
It uses no split but still says so to be sure, and answering an error to a
request that was already true is what made JTDX abandon a transmission a second
into the frame through the rigctl server.

A repeated PTT command is not re-sent. One client restated it sixteen times a
second, and the Flex's own "xmit 1" was overwritten between two of them inside a
millisecond. The same radio sits behind this server — the operator reporting
this is on the Flex API backend.

Fake It itself needs nothing but channel A, and now has a test saying so.
This commit is contained in:
2026-08-17 10:00:57 +02:00
parent d5e25244ee
commit 6c75ff345b
3 changed files with 147 additions and 7 deletions
+4 -2
View File
@@ -7,14 +7,16 @@
"CAT sharing can now speak TCI instead of Hamlib, so a TCI-only program reaches whatever radio OpsLog is on.",
"Lookup cache: a TTL of 0 switches it off, so a callbook record you are correcting is re-read every time.",
"TCI: when the radio forbids transmitting, PTT now says so instead of doing nothing silently.",
"TCI sharing: the server now announces transmit permission, without which a client such as MSHV never keys at all."
"TCI sharing: the server now announces transmit permission, without which a client such as MSHV never keys at all.",
"TCI sharing: split is armed on the frequency the client asked for, whichever order it sent the two commands in."
],
"fr": [
"Une entité qui est un seul groupe d’îles remplit désormais la référence IOTA toute seule, sans abonnement callbook.",
"Le partage CAT peut désormais parler TCI au lieu de Hamlib : un logiciel TCI atteint la radio, quelle quelle soit.",
"Cache des recherches : un TTL à 0 le désactive, pour relire à chaque fois une fiche callbook en cours de correction.",
"TCI : quand la radio interdit l’émission, le PTT le dit désormais au lieu de ne rien faire en silence.",
"Partage TCI : le serveur annonce désormais lautorisation d’émettre, sans laquelle un client comme MSHV ne passe jamais en émission."
"Partage TCI : le serveur annonce désormais lautorisation d’émettre, sans laquelle un client comme MSHV ne passe jamais en émission.",
"Partage TCI : le split sarme sur la fréquence demandée par le logiciel, quel que soit lordre de ses deux commandes."
]
},
{