fix: the Yaesu keyer reported "Rig CAT offline" while CAT was working
Three places decide what a rig keyer is, and the Yaesu was only in two of them. The CW panel's status came from a list naming icom and flex; anything else fell back to the WinKeyer status, which reports disconnected because no WinKeyer is attached. So the panel said the rig CAT was offline while the console beside it was reading the FTDX10 perfectly. The send loop had the same gap: a rig keyer BUFFERS the whole message, so the wait before <LOGQSO> is a length estimate, while WinKeyer watches a busy echo that will never arrive here. Auto-call would have raced the transmission. This is the third time the same shape has bitten in this feature — a list of engines that needs every member named, with a silent fallback for the rest. Grepping for the pair "icom || flex" is what finds them.
This commit is contained in:
+11
-3
@@ -2556,7 +2556,7 @@ export default function App() {
|
|||||||
// segment AFTER the <LOGQSO> (which logs and clears the form) still expands its
|
// segment AFTER the <LOGQSO> (which logs and clears the form) still expands its
|
||||||
// variables correctly.
|
// variables correctly.
|
||||||
const parts = rawText.split(/<LOGQSO>/i).map((pt) => resolveCW(pt));
|
const parts = rawText.split(/<LOGQSO>/i).map((pt) => resolveCW(pt));
|
||||||
const isRig = cwSourceRef.current === 'icom' || cwSourceRef.current === 'flex';
|
const isRig = cwSourceRef.current === 'icom' || cwSourceRef.current === 'flex' || cwSourceRef.current === 'yaesu';
|
||||||
for (let p = 0; p < parts.length; p++) {
|
for (let p = 0; p < parts.length; p++) {
|
||||||
if (aborted()) return; // ESC / Stop before this segment → stop sending, don't log
|
if (aborted()) return; // ESC / Stop before this segment → stop sending, don't log
|
||||||
const resolved = parts[p];
|
const resolved = parts[p];
|
||||||
@@ -5222,8 +5222,16 @@ export default function App() {
|
|||||||
{wkEnabled && (
|
{wkEnabled && (
|
||||||
<div className="w-[380px] shrink-0 min-h-0">
|
<div className="w-[380px] shrink-0 min-h-0">
|
||||||
<WinkeyerPanel
|
<WinkeyerPanel
|
||||||
status={cwSource === 'icom' || cwSource === 'flex'
|
// A rig keyer has no serial status of its own: it is connected
|
||||||
? { connected: catState.backend === cwSource && catState.connected, busy: false, wpm: wkWpm, version: 0, port: cwSource === 'flex' ? 'CWX' : 'CI-V' }
|
// exactly when its CAT backend is. Yaesu was missing from this
|
||||||
|
// list, so the panel fell back to the WinKeyer status — which
|
||||||
|
// reported disconnected, no WinKeyer being attached.
|
||||||
|
status={cwSource === 'icom' || cwSource === 'flex' || cwSource === 'yaesu'
|
||||||
|
? {
|
||||||
|
connected: catState.backend === cwSource && catState.connected,
|
||||||
|
busy: false, wpm: wkWpm, version: 0,
|
||||||
|
port: cwSource === 'flex' ? 'CWX' : cwSource === 'yaesu' ? 'CAT' : 'CI-V',
|
||||||
|
}
|
||||||
: wkStatus}
|
: wkStatus}
|
||||||
ports={wkPorts}
|
ports={wkPorts}
|
||||||
port={wkPort}
|
port={wkPort}
|
||||||
|
|||||||
Reference in New Issue
Block a user