mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 19:45:09 +00:00
feat(slices): мультислайс-TX — выбор TX-слайса, кросс-банд (Flex-паритет)
- RadioController: FTxSliceId (0=главный VFO, >0=слайс), SetTxSlice эксклюзивно; ActiveTXFreqHz/ActiveTXMode с TX-слайса, режим применяется в SetMOX(True) перед SetTXRun; TxBandIdx для PA-кал и safety DoNotTx при кросс-банде; RemoveSlice сбрасывает TX-слайс. - HPSDRNetwork: TX-антенна выбиралась по RX-бэнду → по TX-частоте (TxAnt[FreqToBandIndex(TXFreqHz)]). - MainForm/PanafallPanel: клик TX на флаге слайса → SetTxSlice, TX-бейджи (янтарь=выбран, красный=передаёт), RefreshTxIndicators по rfTransmitting. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+8
-3
@@ -1315,7 +1315,10 @@ begin
|
||||
O.SetState(S.Mode, BW, S.TargetHz, FController.SliceSMeter(SliceId));
|
||||
O.SetDSPState(0, 0, False, False, FController.FAGCMode);
|
||||
O.SetSquelchState(S.FMSQOn, S.FMSQLevel);
|
||||
O.SetExtState(Round(S.Volume * 100), S.Muted, False, False, False);
|
||||
// TxSel: слайс — источник передачи; Tx: передача идёт именно с него.
|
||||
O.SetExtState(Round(S.Volume * 100), S.Muted, False,
|
||||
FController.FTransmitting and (FController.FTxSliceId = SliceId),
|
||||
FController.FTxSliceId = SliceId);
|
||||
// Список аудио-устройств (общий PA-список) + текущее устройство слайса.
|
||||
if Assigned(FController.FAudioOut) then
|
||||
begin
|
||||
@@ -1342,9 +1345,11 @@ end;
|
||||
procedure TPanafallPanel.PushMainFlagExtState;
|
||||
begin
|
||||
if not (Assigned(FMainFlag) and FMainFlag.Visible) or (FController = nil) then Exit;
|
||||
// TxSel: этот слайс выбран для передачи. Пока TX только главный → всегда True.
|
||||
// Главный VFO = «слайс A» (id 0). TxSel/Tx активны, когда TX-источник = главный.
|
||||
FMainFlag.SetExtState(FController.ActiveVolume, FController.FMuted,
|
||||
FController.FSplitTxB, FController.FTransmitting, True);
|
||||
FController.FSplitTxB,
|
||||
FController.FTransmitting and (FController.FTxSliceId = 0),
|
||||
FController.FTxSliceId = 0);
|
||||
end;
|
||||
|
||||
procedure TPanafallPanel.PushMainFlagAudioDevices;
|
||||
|
||||
Reference in New Issue
Block a user