mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 18:43:51 +00:00
Standardize filter widths per mode; fix FM web filter/deviation
- LSB/USB: 5.0k–1.0k (unchanged) - DSB: split into own group 16k–2.4k (was sharing AM filters) - CWL/CWU: 1.0k 800 600 500 400 250 150 100 50 25 (removed 750, added 150) - AM/SAM: 20k–5.0k (new wider range) - Web FNP FM: now shows NFM/FM only (11k/16k), matching desktop - Fix SyncWebFilter: FM array out-of-bounds; FFMDeviation now set on web filter select - VfoOverlay: DSB separated from SSB with own quick-select values Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+14
-8
@@ -73,21 +73,25 @@ const
|
||||
OVL_MODE_NAMES: array[0..7] of string = (
|
||||
'LSB','USB','DSB','CWL','CWU','FM','AM','SAM');
|
||||
|
||||
// Фильтры SSB (LSB=0, USB=1, DSB=2)
|
||||
// Фильтры SSB (LSB=0, USB=1)
|
||||
SSB_BW: array[0..5] of Integer = (1800,2100,2400,2700,3300,3800);
|
||||
SSB_LBL: array[0..5] of string = ('1.8K','2.1K','2.4K','2.7K','3.3K','3.8K');
|
||||
|
||||
// Фильтры DSB (DSB=2)
|
||||
DSB_BW: array[0..5] of Integer = (16000,12000,10000,8000,5200,4000);
|
||||
DSB_LBL: array[0..5] of string = ('16K','12K','10K','8K','5.2K','4K');
|
||||
|
||||
// Фильтры CW (CWL=3, CWU=4)
|
||||
CW_BW: array[0..5] of Integer = (500,250,100,50,750,1000);
|
||||
CW_LBL: array[0..5] of string = ('500','250','100','50','750','1K');
|
||||
CW_BW: array[0..5] of Integer = (500,250,150,100,50,1000);
|
||||
CW_LBL: array[0..5] of string = ('500','250','150','100','50','1K');
|
||||
|
||||
// Фильтры FM (FM=5)
|
||||
FM_BW: array[0..5] of Integer = (20000,15000,12000,10000,8000,5000);
|
||||
FM_LBL: array[0..5] of string = ('20K','15K','12K','10K','8K','5K');
|
||||
|
||||
// Фильтры AM/SAM (AM=6, SAM=7)
|
||||
AM_BW: array[0..5] of Integer = (8000,6600,5200,4000,3100,12000);
|
||||
AM_LBL: array[0..5] of string = ('8K','6.6K','5.2K','4K','3.1K','12K');
|
||||
AM_BW: array[0..5] of Integer = (20000,16000,12000,10000,8000,6000);
|
||||
AM_LBL: array[0..5] of string = ('20K','16K','12K','10K','8K','6K');
|
||||
|
||||
// S-шкала: S1..S9
|
||||
DB_S: array[1..9] of Double = (-121,-115,-109,-103,-97,-91,-85,-79,-73);
|
||||
@@ -95,7 +99,8 @@ const
|
||||
function TVfoOverlay.GetFilterBWForMode(ModeIdx, FilterIdx: Integer): Integer;
|
||||
begin
|
||||
case ModeIdx of
|
||||
0,1,2: Result := SSB_BW[FilterIdx];
|
||||
0,1: Result := SSB_BW[FilterIdx];
|
||||
2: Result := DSB_BW[FilterIdx];
|
||||
3,4: Result := CW_BW[FilterIdx];
|
||||
5: Result := FM_BW[FilterIdx];
|
||||
else Result := AM_BW[FilterIdx]; // 6=AM, 7=SAM
|
||||
@@ -105,7 +110,8 @@ end;
|
||||
function TVfoOverlay.GetFilterLblForMode(ModeIdx, FilterIdx: Integer): string;
|
||||
begin
|
||||
case ModeIdx of
|
||||
0,1,2: Result := SSB_LBL[FilterIdx];
|
||||
0,1: Result := SSB_LBL[FilterIdx];
|
||||
2: Result := DSB_LBL[FilterIdx];
|
||||
3,4: Result := CW_LBL[FilterIdx];
|
||||
5: Result := FM_LBL[FilterIdx];
|
||||
else Result := AM_LBL[FilterIdx];
|
||||
@@ -157,7 +163,7 @@ begin
|
||||
// Дефолтные фильтры для каждого режима (запоминаются при переключении)
|
||||
FModeFilter[0] := 2700; // LSB
|
||||
FModeFilter[1] := 2700; // USB
|
||||
FModeFilter[2] := 2700; // DSB
|
||||
FModeFilter[2] := 8000; // DSB
|
||||
FModeFilter[3] := 500; // CWL
|
||||
FModeFilter[4] := 500; // CWU
|
||||
FModeFilter[5] := 15000; // FM
|
||||
|
||||
Reference in New Issue
Block a user