diff --git a/changelog.json b/changelog.json index 66beaaf..0500fbc 100644 --- a/changelog.json +++ b/changelog.json @@ -8,7 +8,9 @@ "Icom: the IC-7760 joins the model list (CI-V address B2h).", "Icom console: the IC-7760 gets its real attenuator steps — 6/12/18 dB.", "Icom network audio: the RX stream is decoded correctly — mono is requested and the payload offset was confirmed on a real IC-7760, curing the garbled, clicking audio.", - "Icom: switching back from a data mode (USB-D1) to plain USB now sticks — if the rig ignores the data-flag command, it is repeated with the modern one-frame form (0x26). Seen on the IC-7760." + "Icom: switching back from a data mode (USB-D1) to plain USB now sticks — if the rig ignores the data-flag command, it is repeated with the modern one-frame form (0x26). Seen on the IC-7760.", + "Icom console: a DATA mode button (USB-D, what FT8 wants), the PSK button drives the rigs that have a native PSK mode, and the power meter reads in real watts on the IC-7760’s 250 W scale.", + "Icom network audio: the right codec is requested (16-bit mono LPCM), settled by experiment on a real IC-7760." ], "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).", @@ -16,7 +18,9 @@ "Icom : l’IC-7760 rejoint la liste des modèles (adresse CI-V B2h).", "Console Icom : l’IC-7760 reçoit ses vrais crans d’atténuateur — 6/12/18 dB.", "Audio réseau Icom : le flux RX est décodé correctement — le mono est demandé et l’offset du payload a été confirmé sur un vrai IC-7760, ce qui guérit le son inaudible et les clics.", - "Icom : revenir d’un mode data (USB-D1) au USB simple tient désormais — si la radio ignore la commande du drapeau data, elle est répétée sous la forme moderne en une trame (0x26). Constaté sur l’IC-7760." + "Icom : revenir d’un mode data (USB-D1) au USB simple tient désormais — si la radio ignore la commande du drapeau data, elle est répétée sous la forme moderne en une trame (0x26). Constaté sur l’IC-7760.", + "Console Icom : un bouton de mode DATA (USB-D, celui de FT8), le bouton PSK pilote les radios qui ont un vrai mode PSK, et le wattmètre lit en watts réels sur l’échelle 250 W de l’IC-7760.", + "Audio réseau Icom : le bon codec est demandé (LPCM mono 16 bits), déterminé par l’expérience sur un vrai IC-7760." ] }, { diff --git a/frontend/src/components/IcomPanel.tsx b/frontend/src/components/IcomPanel.tsx index 934d66c..583fadc 100644 --- a/frontend/src/components/IcomPanel.tsx +++ b/frontend/src/components/IcomPanel.tsx @@ -79,7 +79,7 @@ function bandsFor(model?: string): Band[] { // Mode buttons for the console (like RS-BA1's row). SetCATMode picks USB/LSB for // SSB by frequency and the rig's data variant for digital modes. -const MODES = ['SSB', 'CW', 'RTTY', 'PSK', 'AM', 'FM']; +const MODES = ['SSB', 'CW', 'RTTY', 'PSK', 'AM', 'FM', 'DATA']; // Attenuator steps are MODEL-dependent even though the CI-V command (0x11) is the // same: the value byte is the dB. The IC-7610 (and 7700/7800/7851) have a 6/12/18 @@ -132,6 +132,10 @@ function fmtVFO(hz?: number): string { function modeMatches(btn: string, cur?: string): boolean { if (!cur) return false; if (btn === 'SSB') return cur === 'SSB' || cur === 'USB' || cur === 'LSB'; + // The backend surfaces USB-D as the operator's digital default (FT8…), or as + // plain DATA — either way it is the DATA button that should light. + if (btn === 'DATA') return ['DATA', 'FT8', 'FT4', 'JS8', 'JT65', 'JT9', 'MFSK', 'OLIVIA'].includes(cur); + if (btn === 'PSK') return cur === 'PSK' || cur === 'PSK31'; return btn === cur; } @@ -246,7 +250,7 @@ function Meter({ label, value, accent, scale, onClick, title }: { label: string; > ); if (onClick) { - return ; + return ; } return