diff --git a/changelog.json b/changelog.json index 9b48d40..4ead235 100644 --- a/changelog.json +++ b/changelog.json @@ -35,7 +35,8 @@ "Icom console: an ATU chip beside SPLIT engages or DISENGAGES the internal tuner — TUNE started a cycle but could never take the tuner back out of line.", "Icom console: the TX meters get needle inertia — power holds its peak instead of flickering to 0 W between syllables, SWR shows the real peak then returns to the live value — and the wattage readout no longer wraps at three digits.", "Icom console: the meters use the same LED bars as the Flex and Elecraft consoles, and the mode badge says USB or LSB instead of an ambiguous SSB.", - "Cluster: spots on the standard FT8/FT4 frequencies of every band now read FT8/FT4 when the comment names no mode — 30 m, 60 m, 80 m FT4, 17 m FT4 and 12 m were falling into the generic DATA bucket." + "Cluster: spots on the standard FT8/FT4 frequencies of every band now read FT8/FT4 when the comment names no mode — 30 m, 60 m, 80 m FT4, 17 m FT4 and 12 m were falling into the generic DATA bucket.", + "OmniRig (Yaesu): with split engaged, tuning to a spot moves BOTH VFOs — on an FT-2000 the write landed on the TX VFO only, so the transmitter QSYed and the receiver stayed behind." ], "fr": [ "Console Elecraft : le S-mètre est calibré sur un vrai K3 — S9 et les +dB correspondent désormais à l’affichage de la radio (il lisait environ deux points S trop bas).", @@ -70,7 +71,8 @@ "Console Icom : une puce ATU à côté de SPLIT engage ou DÉSENGAGE le tuner interne — TUNE lançait un cycle mais ne pouvait jamais remettre le tuner hors ligne.", "Console Icom : les mètres TX gagnent une inertie d’aiguille — la puissance tient sa crête au lieu de retomber à 0 W entre les syllabes, le ROS montre la vraie crête puis revient à la valeur vive — et l’affichage en watts ne passe plus à la ligne à trois chiffres.", "Console Icom : les mètres utilisent les mêmes barres LED que les consoles Flex et Elecraft, et le badge de mode dit USB ou LSB au lieu d’un SSB ambigu.", - "Cluster : les spots sur les fréquences standard FT8/FT4 de chaque bande lisent désormais FT8/FT4 quand le commentaire ne nomme pas de mode — 30 m, 60 m, FT4 80 m, FT4 17 m et 12 m tombaient dans le bloc DATA générique." + "Cluster : les spots sur les fréquences standard FT8/FT4 de chaque bande lisent désormais FT8/FT4 quand le commentaire ne nomme pas de mode — 30 m, 60 m, FT4 80 m, FT4 17 m et 12 m tombaient dans le bloc DATA générique.", + "OmniRig (Yaesu) : avec le split actif, se rendre sur un spot déplace LES DEUX VFO — sur un FT-2000 l’écriture n’atteignait que le VFO TX, donc l’émetteur QSYait et le récepteur restait derrière." ] }, { diff --git a/internal/cat/omnirig.go b/internal/cat/omnirig.go index 8ce3cb3..a31e5e8 100644 --- a/internal/cat/omnirig.go +++ b/internal/cat/omnirig.go @@ -553,6 +553,13 @@ func (o *OmniRig) SetFrequency(hz int64) error { props := []string{prop, "Freq"} if onSubVFO { props = []string{prop} + } else if isYaesu && split&pmSplitOn != 0 && split&pmSplitOff == 0 { + // Yaesu with SPLIT engaged: the generic Freq write lands on the TX + // VFO — an FT-2000 moved B and left A (the receiver) behind, so a + // spot click QSYed the transmitter and nothing audible changed. + // Both VFOs are written: the radio arrives on the spot RX and TX + // together, split left as the operator had it. + props = []string{"FreqA", "FreqB", "Freq"} } for _, p := range props { if _, e := oleutil.PutProperty(o.rig, p, hz32); e != nil {