diff --git a/frontend/src/components/YaesuPanel.tsx b/frontend/src/components/YaesuPanel.tsx index 51bef15..2506c0b 100644 --- a/frontend/src/components/YaesuPanel.tsx +++ b/frontend/src/components/YaesuPanel.tsx @@ -352,11 +352,11 @@ export function YaesuPanel({ onReportRST, onKeySpeed }: { title={onReportRST ? t('yaesu.sToRst') : undefined} /> {/* Watts as MEASURED, not the power setting scaled by a percentage: the setting says what was asked for, the meter says what left. */} - {/* The RATIO, as the rig shows it — a percentage of meter travel is not something an operator can act on. The bar keeps the travel. */} - = 1 ? view.swr.toFixed(1) : '1.0') : '—'} /> diff --git a/internal/cat/yaesu_panel.go b/internal/cat/yaesu_panel.go index a91b025..fe85c0a 100644 --- a/internal/cat/yaesu_panel.go +++ b/internal/cat/yaesu_panel.go @@ -193,9 +193,17 @@ func (y *Yaesu) readPanel(mode string, split bool, txHz int64) { } } } else { - // Zeroed rather than frozen: a stale SWR bar from the last transmission - // reads as a live measurement. + // Zeroed rather than frozen: a stale reading from the last transmission + // reads as a live one. + // + // EVERY transmit value has to be cleared here, and the peak-hold state with + // them. Clearing only the two bar percentages left the watts and the SWR + // ratio standing — the PWR bar stayed at full scale after the operator + // stopped transmitting — and a peak left in the holder would have carried + // the old reading into the next transmission. y.panel.PowerMeter, y.panel.SWRMeter = 0, 0 + y.panel.PowerW, y.panel.SWR = 0, 0 + y.powerPeak, y.powerWPeak, y.swrPeak = meterPeak{}, meterPeak{}, meterPeak{} } y.panelCycle++