fix(icom): kill the leftover waveform in both command forms, and say so
The blind kill at connect still left a real 7760 streaming — the selector byte differs by model, and the result was discarded so a quiet failure looked like a cure. Both forms go out now (a NAK costs one frame) and the outcomes are logged. The power table also gains its third measured anchor: a real 200 W reads full deflection, so raw 213 is 200 W — not the printed face's 250.
This commit is contained in:
@@ -141,11 +141,13 @@ function fmtVFO(hz?: number): string {
|
||||
// with raw 213 = full scale = 250 W. The face is not linear in watts at the
|
||||
// bottom — a two-segment guess showed 50 W as 62 — so watts interpolate
|
||||
// between the measured anchors, and a new measurement just adds a row.
|
||||
const ICOM_7760_PO: [number, number][] = [[0, 0], [89, 50], [143, 100], [213, 250]];
|
||||
// Third measured anchor (2026-08-30): a real 200 W read full deflection —
|
||||
// raw 213 is 200 W on this rig, not the 250 the printed face suggests.
|
||||
const ICOM_7760_PO: [number, number][] = [[0, 0], [89, 50], [143, 100], [213, 200]];
|
||||
function icomWatts(pct: number): { w: number; defl: number } {
|
||||
const raw = Math.max(0, pct * 2.55);
|
||||
const defl = raw <= 143 ? (raw / 143) * 50 : Math.min(100, 50 + ((raw - 143) / 70) * 50);
|
||||
let w = 250;
|
||||
let w = 200;
|
||||
for (let i = 1; i < ICOM_7760_PO.length; i++) {
|
||||
const [r0, w0] = ICOM_7760_PO[i - 1], [r1, w1] = ICOM_7760_PO[i];
|
||||
if (raw <= r1) { w = w0 + ((raw - r0) / (r1 - r0)) * (w1 - w0); break; }
|
||||
|
||||
Reference in New Issue
Block a user