fix(icom): say when a radio has no scope stream instead of drawing nothing
The CI-V trace settles it: the IC-7851 answers 27 10 01 with FB and 27 14 00 with its mode, but refuses 27 11 in BOTH shapes — it controls its scope over CI-V and never streams it. Its last firmware is from 2016, older than the waveform stream itself; Hamlib's caps claim otherwise, the radio is the authority. Rejected both ways is a permanent answer, so it is remembered and reported: the panadapter says the radio does not send its scope, which is the one thing a black rectangle could not say.
This commit is contained in:
@@ -292,6 +292,9 @@ function ScopePanadapter() {
|
||||
const wfRef = useRef<HTMLCanvasElement>(null); // waterfall
|
||||
const peakRef = useRef(160); // running amplitude ceiling for auto-scale
|
||||
const holdRef = useRef<number[]>([]); // per-bin peak-hold line
|
||||
// Some radios control their scope over CI-V but never stream it (IC-7851).
|
||||
// Saying so beats a black rectangle, which reads as a bug in OpsLog.
|
||||
const [unsupported, setUnsupported] = useState(false);
|
||||
const spanRef = useRef({ low: 0, high: 0 }); // latest sweep edges, for click-to-tune
|
||||
const vfoRef = useRef(0); // latest VFO frequency, for wheel-tune
|
||||
const centerRef = useRef(0); // scope centre we last set (for pan ◀/▶)
|
||||
@@ -333,6 +336,7 @@ function ScopePanadapter() {
|
||||
if (!alive) return;
|
||||
try {
|
||||
const sw = await IcomScopeData();
|
||||
if (sw?.unsupported) setUnsupported(true);
|
||||
if (sw && sw.seq !== lastSeq && sw.amp && sw.amp.length) {
|
||||
lastSeq = sw.seq;
|
||||
setFixed(sw.fixed);
|
||||
@@ -543,7 +547,10 @@ function ScopePanadapter() {
|
||||
<Chip label={on ? 'ON' : 'OFF'} on={on} onClick={toggle} />
|
||||
</div>
|
||||
</div>
|
||||
{on && (
|
||||
{on && unsupported && (
|
||||
<div className="px-3 py-2 text-xs text-muted-foreground">{t('icmp.scopeNoStream')}</div>
|
||||
)}
|
||||
{on && !unsupported && (
|
||||
<div className="p-3">
|
||||
<div className="rounded-xl overflow-hidden ring-1 ring-info/20 shadow-lg shadow-sky-500/5 bg-[#05070e]">
|
||||
<canvas ref={canvasRef} onDoubleClick={onDblClick}
|
||||
|
||||
Reference in New Issue
Block a user