mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 18:43:51 +00:00
fix web TX spectrum position in CTUN mode
Add 'dup' field to state JSON (FDisplayDuplex). In CTUN+non-DUP TX, use vfo_a_hz as spectrum center so the TX signal renders at the VFO position instead of the display center. In CTUN+DUP TX, keep center_hz so the RX spectrum stays correctly positioned at the filter. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+7
-4
@@ -218,6 +218,7 @@ type
|
||||
FAttnIdx: Integer;
|
||||
FOnTun: TWebCmdTun;
|
||||
FTuning: Boolean;
|
||||
FDuplex: Boolean;
|
||||
|
||||
FWebClientActive: Boolean;
|
||||
|
||||
@@ -262,7 +263,7 @@ type
|
||||
CenterHz: Double; FilterIdx: Integer;
|
||||
VfoB: Double; ActiveVfo: Integer;
|
||||
Transmitting: Boolean; DriveLevel: Integer;
|
||||
AttnIdx: Integer; Tuning: Boolean);
|
||||
AttnIdx: Integer; Tuning: Boolean; Duplex: Boolean);
|
||||
|
||||
property WebClientActive: Boolean read FWebClientActive;
|
||||
|
||||
@@ -1133,7 +1134,7 @@ begin
|
||||
'"wf_agc":%s,"wf_nf":%s,"band_idx":%d,"smeter_dbm":%.1f,' +
|
||||
'"running":%s,"mute":%s,"ctun":%s,' +
|
||||
'"nr_mode":%d,"nr":%s,"nb_mode":%d,"nb":%s,"snb":%s,"anf":%s,"connected":%s,' +
|
||||
'"transmitting":%s,"drive":%d,"attn_idx":%d,"tuning":%s}',
|
||||
'"transmitting":%s,"drive":%d,"attn_idx":%d,"tuning":%s,"dup":%s}',
|
||||
[FFreq, FVfoB, FActiveVfo,
|
||||
FMode, MODE_N[FMode mod 8],
|
||||
FFilterIdx, FFilterBW,
|
||||
@@ -1155,7 +1156,8 @@ begin
|
||||
BoolToStr(FTransmitting, 'true', 'false'),
|
||||
FDriveLevel,
|
||||
FAttnIdx,
|
||||
BoolToStr(FTuning, 'true', 'false')
|
||||
BoolToStr(FTuning, 'true', 'false'),
|
||||
BoolToStr(FDuplex, 'true', 'false')
|
||||
]);
|
||||
finally
|
||||
FStateLock.Leave;
|
||||
@@ -1222,7 +1224,7 @@ procedure TWebServer.PushSpectrum(
|
||||
CenterHz: Double; FilterIdx: Integer;
|
||||
VfoB: Double; ActiveVfo: Integer;
|
||||
Transmitting: Boolean; DriveLevel: Integer;
|
||||
AttnIdx: Integer; Tuning: Boolean);
|
||||
AttnIdx: Integer; Tuning: Boolean; Duplex: Boolean);
|
||||
var N, i: Integer;
|
||||
begin
|
||||
if not FRunning then Exit;
|
||||
@@ -1258,6 +1260,7 @@ begin
|
||||
FDriveLevel := DriveLevel;
|
||||
FAttnIdx := AttnIdx;
|
||||
FTuning := Tuning;
|
||||
FDuplex := Duplex;
|
||||
finally
|
||||
FStateLock.Leave;
|
||||
end;
|
||||
|
||||
Reference in New Issue
Block a user