Fix CAT settings: load before connect, default TCP port 19090

- Settings.pas: add root-level SaveCATSettings/LoadCATSettings so CAT
  config is stored independently of device MAC.
- MainForm.pas FormCreate: initialize CAT defaults, load from saved
  'cat' JSON section, and apply immediately after InitCATEngine — so
  SettingsForm shows correct values before the transceiver connects.
- MainForm.pas OnCATSettingsChange: always save to root 'cat' section
  (not only when device is connected) so changes persist immediately.
- Default TCP CAT port changed from 4992 to 19090 everywhere.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-27 21:58:49 +03:00
co-authored by Claude Sonnet 4.6
parent 1a264b684e
commit bcd045a1be
3 changed files with 64 additions and 8 deletions
+17 -3
View File
@@ -1018,7 +1018,21 @@ begin
FWebServer.OnDrive := WebOnDrive;
FWebServer.Start;
FillChar(FCATLastGlobal, SizeOf(FCATLastGlobal), 0);
FCATLastGlobal.CATTcpPort := 19090;
for i := 0 to 3 do
begin
FCATLastGlobal.CATSerialBaud[i] := 9600;
FCATLastGlobal.CATSerialDataBits[i] := 8;
FCATLastGlobal.CATSerialStopBits[i] := 1;
{$IFDEF MSWINDOWS}
FCATLastGlobal.CATSerialPort[i] := 'COM' + IntToStr(i + 1);
{$ELSE}
FCATLastGlobal.CATSerialPort[i] := '/dev/ttyS' + IntToStr(i);
{$ENDIF}
end;
FSettings.LoadCATSettings(FCATLastGlobal);
InitCATEngine;
CATApplySettings(FCATLastGlobal);
FSMeterPeak := -130;
FSMeterMin := -130;
FSMeterAvg := -130;
@@ -4756,10 +4770,10 @@ begin
FCATLastGlobal.CATTcpEnabled := TcpEnabled;
FCATLastGlobal.CATTcpPort := TcpPort;
CATApplySettings(FCATLastGlobal);
if FDevConnected then begin
FSettings.SaveCATSettings(FCATLastGlobal);
if FDevConnected then
FSettings.SaveGlobal(FDevMAC, MakeGlobalSettings);
FSettings.Save;
end;
FSettings.Save;
end;
// --- Getters (called from CAT thread — read only, no sync needed) -----------