Updated XDR scanner and BW selector

This commit is contained in:
Sjef Verhoeven PE5PVB
2024-12-09 15:03:53 +01:00
parent 9db47ea215
commit f7b91c6f40
3 changed files with 101 additions and 152 deletions
+1
View File
@@ -156,6 +156,7 @@ byte batteryoptions;
byte BWset; byte BWset;
byte BWsetAM; byte BWsetAM;
byte BWsetFM; byte BWsetFM;
byte BWsetRecall;
byte charwidth = 8; byte charwidth = 8;
byte hardwaremodel; byte hardwaremodel;
byte ContrastSet; byte ContrastSet;
+77 -130
View File
@@ -673,62 +673,73 @@ void XDRGTKRoutine() {
case 'S': case 'S':
if (scandxmode) cancelDXScan(); if (scandxmode) cancelDXScan();
if (!XDRScan) BWsetRecall = BWset;
XDRScan = true; XDRScan = true;
if (buff[1] == 'a') {
scanner_start = (atol(buff + 2) + 5) / 10; switch (buff[1]) {
} else if (buff[1] == 'b') { case 'a': scanner_start = (atol(buff + 2) + 5) / 10; break;
scanner_end = (atol(buff + 2) + 5) / 10; case 'b': scanner_end = (atol(buff + 2) + 5) / 10; return;
} else if (buff[1] == 'c') { case 'c': scanner_step = (atol(buff + 2) + 5) / 10; break;
scanner_step = (atol(buff + 2) + 5) / 10; case 'f':
} else if (buff[1] == 'f') {
scanner_filter = atol(buff + 2); scanner_filter = atol(buff + 2);
} else if (scanner_start > 0 && scanner_end > 0 && scanner_step > 0 && scanner_filter >= 0) { switch (scanner_filter) {
frequencyold = frequency; case 0: BWset = 1; break;
DataPrint("U"); case 26: BWset = 2; break;
if (scanner_filter < 0) { case 1: BWset = 3; break;
BWset = 0; case 28: BWset = 4; break;
} else if (scanner_filter == 0) { case 29: BWset = 5; break;
BWset = 1; case 3: BWset = 6; break;
} else if (scanner_filter == 26) { case 4: BWset = 7; break;
BWset = 2; case 5: BWset = 8; break;
} else if (scanner_filter == 1) { case 7: BWset = 9; break;
BWset = 3; case 8: BWset = 10; break;
} else if (scanner_filter == 28) { case 9: BWset = 11; break;
BWset = 4; case 10: BWset = 12; break;
} else if (scanner_filter == 29) { case 11: BWset = 13; break;
BWset = 5; case 12: BWset = 14; break;
} else if (scanner_filter == 3) { case 13: BWset = 15; break;
BWset = 6; case 15: BWset = 16; break;
} else if (scanner_filter == 4) {
BWset = 7;
} else if (scanner_filter == 5) {
BWset = 8;
} else if (scanner_filter == 7) {
BWset = 9;
} else if (scanner_filter == 8) {
BWset = 10;
} else if (scanner_filter == 9) {
BWset = 11;
} else if (scanner_filter == 10) {
BWset = 12;
} else if (scanner_filter == 11) {
BWset = 13;
} else if (scanner_filter == 12) {
BWset = 14;
} else if (scanner_filter == 13) {
BWset = 15;
} else if (scanner_filter == 15) {
BWset = 16;
} }
doBW(); doBW();
break;
case 'w':
unsigned int bwtemp;
bwtemp = atoi(buff + 2);
switch (bwtemp) {
case 0: BWset = 0; break;
case 56000: BWset = 1; break;
case 64000: BWset = 2; break;
case 72000: BWset = 3; break;
case 84000: BWset = 4; break;
case 97000: BWset = 5; break;
case 114000: BWset = 6; break;
case 133000: BWset = 7; break;
case 151000: BWset = 8; break;
case 168000: BWset = 9; break;
case 184000: BWset = 10; break;
case 200000: BWset = 11; break;
case 217000: BWset = 12; break;
case 236000: BWset = 13; break;
case 254000: BWset = 14; break;
case 287000: BWset = 15; break;
case 311000: BWset = 16; break;
}
doBW();
break;
case '\0':
if (!screenmute) { if (!screenmute) {
tft.drawRoundRect(10, 30, 300, 170, 5, ActiveColor); tft.drawRoundRect(10, 30, 300, 170, 5, ActiveColor);
tft.fillRoundRect(12, 32, 296, 166, 5, BackgroundColor); tft.fillRoundRect(12, 32, 296, 166, 5, BackgroundColor);
tftPrint(0, myLanguage[language][34], 160, 100, ActiveColor, ActiveColorSmooth, 28); tftPrint(0, myLanguage[language][34], 160, 100, ActiveColor, ActiveColorSmooth, 28);
} }
DataPrint("U");
frequencyold = frequency; frequencyold = frequency;
for (freq_scan = scanner_start; freq_scan <= scanner_end; freq_scan += scanner_step) { for (freq_scan = scanner_start; freq_scan <= scanner_end; freq_scan += scanner_step) {
radio.SetFreq(freq_scan); radio.SetFreq(freq_scan);
delay(5);
DataPrint(String(freq_scan * 10, DEC)); DataPrint(String(freq_scan * 10, DEC));
DataPrint(" = "); DataPrint(" = ");
if (band < BAND_GAP) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, CN); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, CN); if (band < BAND_GAP) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, CN); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, CN);
@@ -736,12 +747,14 @@ void XDRGTKRoutine() {
DataPrint(", "); DataPrint(", ");
} }
DataPrint("\n"); DataPrint("\n");
radio.SetFreq(frequencyold); radio.SetFreq(frequencyold);
BuildDisplay(); BuildDisplay();
SelectBand(); SelectBand();
radio.setFMABandw(); BWset = BWsetRecall;
BWset = 0; doBW();
XDRScan = false; XDRScan = false;
break;
} }
break; break;
@@ -749,91 +762,25 @@ void XDRGTKRoutine() {
unsigned int bwtemp; unsigned int bwtemp;
bwtemp = atoi(buff + 1); bwtemp = atoi(buff + 1);
switch (bwtemp) { switch (bwtemp) {
case 0: case 0: BWset = 0; break;
BWset = 0; case 56000: BWset = 1; break;
doBW(); case 64000: BWset = 2; break;
break; case 72000: BWset = 3; break;
case 84000: BWset = 4; break;
case 56000: case 97000: BWset = 5; break;
BWset = 1; case 114000: BWset = 6; break;
doBW(); case 133000: BWset = 7; break;
break; case 151000: BWset = 8; break;
case 168000: BWset = 9; break;
case 64000: case 184000: BWset = 10; break;
BWset = 2; case 200000: BWset = 11; break;
doBW(); case 217000: BWset = 12; break;
break; case 236000: BWset = 13; break;
case 254000: BWset = 14; break;
case 72000: case 287000: BWset = 15; break;
BWset = 3; case 311000: BWset = 16; break;
doBW();
break;
case 84000:
BWset = 4;
doBW();
break;
case 97000:
BWset = 5;
doBW();
break;
case 114000:
BWset = 6;
doBW();
break;
case 133000:
BWset = 7;
doBW();
break;
case 151000:
BWset = 8;
doBW();
break;
case 168000:
BWset = 9;
doBW();
break;
case 184000:
BWset = 10;
doBW();
break;
case 200000:
BWset = 11;
doBW();
break;
case 217000:
BWset = 12;
doBW();
break;
case 236000:
BWset = 13;
doBW();
break;
case 254000:
BWset = 14;
doBW();
break;
case 287000:
BWset = 15;
doBW();
break;
case 311000:
BWset = 16;
doBW();
break;
} }
doBW();
DataPrint("W" + String(bwtemp) + "\n"); DataPrint("W" + String(bwtemp) + "\n");
break; break;
+1
View File
@@ -42,6 +42,7 @@ extern bool XDRScan;
extern bool XDRMute; extern bool XDRMute;
extern byte band; extern byte band;
extern byte BWset; extern byte BWset;
extern byte BWsetRecall;
extern byte EQset; extern byte EQset;
extern byte fmscansens; extern byte fmscansens;
extern byte iMSEQ; extern byte iMSEQ;