feat(cat): distinct Elecraft K3/K4 backend in the rig list
The Elecraft handling was buried in the Kenwood "data mode" option, so users couldn't find it. Add "Elecraft K3/K4" as its own entry in the CAT backend selector. It reuses the Kenwood-dialect transport and the Kenwood USB/network settings (the K3 emulates the Kenwood command set — a separate transport would be a near-total duplicate), with an `elecraft` flag on the client that forces digital modes to DATA A (MD6+DT0) — no data-mode dropdown needed. RigState still reports Backend "kenwood" so the CW-over-CAT keyer capability keeps working.
This commit is contained in:
@@ -2527,6 +2527,7 @@ export function SettingsModal({ onClose, onSaved, initialSection, onMainPaneChan
|
||||
<SelectItem value="flex">{t('cat.optFlex')}</SelectItem>
|
||||
<SelectItem value="yaesu">{t('cat.optYaesu')}</SelectItem>
|
||||
<SelectItem value="kenwood">{t('cat.optKenwood')}</SelectItem>
|
||||
<SelectItem value="elecraft">{t('cat.optElecraft')}</SelectItem>
|
||||
<SelectItem value="xiegu">{t('cat.optXiegu')}</SelectItem>
|
||||
<SelectItem value="icom">{t('cat.optIcom')}</SelectItem>
|
||||
<SelectItem value="icom-net">{t('cat.optIcomNet')}</SelectItem>
|
||||
@@ -2688,7 +2689,7 @@ export function SettingsModal({ onClose, onSaved, initialSection, onMainPaneChan
|
||||
{t('cat.civTrace')}
|
||||
</label> </div>
|
||||
)}
|
||||
{catCfg.backend === 'kenwood' && (
|
||||
{(catCfg.backend === 'kenwood' || catCfg.backend === 'elecraft') && (
|
||||
<>
|
||||
<div className="space-y-1">
|
||||
<Label>{t('cat.kenwoodPort')}</Label>
|
||||
@@ -2725,16 +2726,21 @@ export function SettingsModal({ onClose, onSaved, initialSection, onMainPaneChan
|
||||
</label>
|
||||
<span className="text-xs text-muted-foreground">{t('cat.lowerLinesHint')}</span>
|
||||
</div>
|
||||
<div className="space-y-1">
|
||||
<Label>{t('cat.kwDataMode')}</Label>
|
||||
<Select value={(catCfg as any).kenwood_data_mode || 'usb'} onValueChange={(v) => setCatCfg((s) => ({ ...s, kenwood_data_mode: v } as any))}>
|
||||
<SelectTrigger className="h-8"><SelectValue /></SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="usb">{t('cat.kwDataUsb')}</SelectItem>
|
||||
<SelectItem value="data">{t('cat.kwDataMd6')}</SelectItem>
|
||||
<SelectItem value="keep">{t('cat.kwDataKeep')}</SelectItem>
|
||||
</SelectContent>
|
||||
</Select> </div>
|
||||
{catCfg.backend === 'kenwood' ? (
|
||||
<div className="space-y-1">
|
||||
<Label>{t('cat.kwDataMode')}</Label>
|
||||
<Select value={(catCfg as any).kenwood_data_mode || 'usb'} onValueChange={(v) => setCatCfg((s) => ({ ...s, kenwood_data_mode: v } as any))}>
|
||||
<SelectTrigger className="h-8"><SelectValue /></SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="usb">{t('cat.kwDataUsb')}</SelectItem>
|
||||
<SelectItem value="data">{t('cat.kwDataMd6')}</SelectItem>
|
||||
<SelectItem value="keep">{t('cat.kwDataKeep')}</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
) : (
|
||||
<span className="text-xs text-muted-foreground">{t('cat.elecraftHint')}</span>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
{catCfg.backend === 'icom' && (
|
||||
|
||||
Reference in New Issue
Block a user