mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 19:45:09 +00:00
add Alex setup
This commit is contained in:
+27
-1
@@ -159,6 +159,7 @@ type
|
||||
FAudioOutDevName: string; // текущее имя выходного устройства
|
||||
FAudioInDevName: string; // текущее имя входного устройства (TX mic)
|
||||
FTXSettings: TTXSettings; // полный TX-конфиг (загружается per-MAC)
|
||||
FAlexSettings: TAlexSettings; // per-band antenna/routing config (Alex board)
|
||||
FWDSPReady: Boolean; // True когда WDSP открыт и работает
|
||||
|
||||
// ---- State ----
|
||||
@@ -560,6 +561,7 @@ type
|
||||
const SerPort: array of string;
|
||||
const SerBaud, SerDataBits, SerStopBits, SerParity: array of Integer;
|
||||
TcpEnabled: Boolean; TcpPort: Integer);
|
||||
procedure OnAlexSettingsChange(const A: TAlexSettings);
|
||||
// -------------------------------------------------------------------------
|
||||
procedure BtnWfAGCClick(Sender: TObject);
|
||||
procedure BtnWfNFClick(Sender: TObject);
|
||||
@@ -1173,8 +1175,9 @@ begin
|
||||
FNetwork.OnHPStatus := OnHPStatusCB;
|
||||
FNetwork.OnDDCIQ := OnDDCIQCB;
|
||||
FNetwork.OnMicPacket := OnMicPacketCB;
|
||||
// Дефолты TX (на случай если устройство ещё не выбрано).
|
||||
// Дефолты TX и Alex (на случай если устройство ещё не выбрано).
|
||||
TSettingsManager.DefaultTX(FTXSettings);
|
||||
TSettingsManager.DefaultAlex(FAlexSettings);
|
||||
|
||||
BuildUI;
|
||||
StyleSpanButton(BtnSpan48k, FSampleRate = 48000);
|
||||
@@ -3333,6 +3336,7 @@ begin
|
||||
begin
|
||||
SaveCurrentBand;
|
||||
FSettings.SaveGlobal(FDevMAC, MakeGlobalSettings);
|
||||
FSettings.SaveAlex(FDevMAC, FAlexSettings);
|
||||
end;
|
||||
FSettings.SaveStartupPreview(FVfoA, FVfoB, FSampleRate);
|
||||
FSettings.Save;
|
||||
@@ -3467,6 +3471,9 @@ begin
|
||||
CATApplySettings(G_Settings);
|
||||
// TX-настройки per-device — отдельная JSON-секция "tx"
|
||||
FSettings.LoadTX(FDevMAC, FTXSettings);
|
||||
// Alex-настройки per-device (антенны/маршрутизация)
|
||||
FSettings.LoadAlex(FDevMAC, FAlexSettings);
|
||||
FNetwork.SetAlexConfig(FAlexSettings);
|
||||
FTXSpecRefLevel := FTXSettings.TXSpecRefLevel;
|
||||
FTXSpecRange := FTXSettings.TXSpecRange;
|
||||
if FTXSettings.TXSpecGridStep > 0 then
|
||||
@@ -4482,6 +4489,10 @@ procedure TMainForm.ApplyMOX(Active: Boolean);
|
||||
var
|
||||
WasTransmitting: Boolean;
|
||||
begin
|
||||
// Safety: block TX on bands marked DoNotTx in Alex config
|
||||
if Active and FDevConnected
|
||||
and FAlexSettings.DoNotTx[EnsureRange(FCurrentBand, 0, 10)] then
|
||||
Exit;
|
||||
WasTransmitting := FTransmitting;
|
||||
FTransmitting := Active;
|
||||
FDUCPendingCount := 0;
|
||||
@@ -5437,6 +5448,18 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainForm.OnAlexSettingsChange(const A: TAlexSettings);
|
||||
begin
|
||||
FAlexSettings := A;
|
||||
if FNetwork.Connected then
|
||||
FNetwork.SetAlexConfig(A);
|
||||
if FDevConnected then
|
||||
begin
|
||||
FSettings.SaveAlex(FDevMAC, A);
|
||||
FSettings.Save;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainForm.TrkVolumeChange(Sender: TObject);
|
||||
begin
|
||||
FVolume := TrkVolume.Position;
|
||||
@@ -5721,9 +5744,12 @@ begin
|
||||
SF.OnCATChange := OnCATSettingsChange;
|
||||
SF.OnThemeChange := SetLightTheme;
|
||||
SF.OnTXChange := OnTXSettingsChange;
|
||||
SF.OnAlexChange := OnAlexSettingsChange;
|
||||
end;
|
||||
SF := TSettingsForm(FSettingsForm);
|
||||
SF.LoadTXSettings(FTXSettings);
|
||||
SF.LoadAlexSettings(FAlexSettings,
|
||||
IfThen(FNetwork.Connected, FNetwork.Device.BoardType, FPendingBoardType));
|
||||
SF.LoadPASettings(FPAMaxPower, FPABandCal);
|
||||
SF.LoadCATSettings(
|
||||
FCATLastGlobal.CATSerialEnabled,
|
||||
|
||||
Reference in New Issue
Block a user