Finish FM DX mode
This commit is contained in:
+195
-94
@@ -68,6 +68,7 @@ bool dropout;
|
|||||||
bool dynamicPTYold;
|
bool dynamicPTYold;
|
||||||
bool edgebeep;
|
bool edgebeep;
|
||||||
bool externaltune;
|
bool externaltune;
|
||||||
|
bool flashing;
|
||||||
bool fmsi;
|
bool fmsi;
|
||||||
bool fullsearchrds;
|
bool fullsearchrds;
|
||||||
bool hasafold;
|
bool hasafold;
|
||||||
@@ -356,6 +357,7 @@ unsigned long aftickerhold;
|
|||||||
unsigned long aftimer;
|
unsigned long aftimer;
|
||||||
unsigned long eonticker;
|
unsigned long eonticker;
|
||||||
unsigned long eontickerhold;
|
unsigned long eontickerhold;
|
||||||
|
unsigned long flashingtimer;
|
||||||
unsigned long lowsignaltimer;
|
unsigned long lowsignaltimer;
|
||||||
unsigned long peakholdmillis;
|
unsigned long peakholdmillis;
|
||||||
unsigned long rtplusticker;
|
unsigned long rtplusticker;
|
||||||
@@ -799,7 +801,35 @@ void loop() {
|
|||||||
}
|
}
|
||||||
if (digitalRead(BANDBUTTON) == LOW ) BANDBUTTONPress();
|
if (digitalRead(BANDBUTTON) == LOW ) BANDBUTTONPress();
|
||||||
|
|
||||||
|
if (scandxmode) {
|
||||||
|
switch (scancancel) {
|
||||||
|
case CORRECTPI: if (radio.rds.correctPI != 0) cancelDXScan(); break;
|
||||||
|
case SIGNAL: if (tuned) cancelDXScan(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (millis() >= flashingtimer + 500) {
|
||||||
|
flashing = !flashing;
|
||||||
|
if (flashing) {
|
||||||
|
if (CurrentSkin == 1) {
|
||||||
|
tft.pushImage (12, 76, 33, 15, skin1_memon);
|
||||||
|
} else {
|
||||||
|
tft.drawRoundRect(1, 79, 42, 20, 5, ActiveColor);
|
||||||
|
tftPrint(0, "MEM", 22, 82, ActiveColor, ActiveColorSmooth, 16);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (CurrentSkin == 1) {
|
||||||
|
tft.pushImage (12, 76, 33, 15, skin1_memoff);
|
||||||
|
} else {
|
||||||
|
tft.drawRoundRect(1, 79, 42, 20, 5, GreyoutColor);
|
||||||
|
tftPrint(0, "MEM", 22, 82, GreyoutColor, BackgroundColor, 16);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
flashingtimer = millis();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (scandxmode && millis() >= scantimer + (scanhold * 1000)) {
|
if (scandxmode && millis() >= scantimer + (scanhold * 1000)) {
|
||||||
|
if (scanmem) {
|
||||||
memorypos++;
|
memorypos++;
|
||||||
if (memorypos > scanstop) memorypos = scanstart;
|
if (memorypos > scanstop) memorypos = scanstart;
|
||||||
while (IsStationEmpty()) {
|
while (IsStationEmpty()) {
|
||||||
@@ -811,6 +841,10 @@ void loop() {
|
|||||||
}
|
}
|
||||||
DoMemoryPosTune();
|
DoMemoryPosTune();
|
||||||
ShowMemoryPos();
|
ShowMemoryPos();
|
||||||
|
} else {
|
||||||
|
TuneUp();
|
||||||
|
ShowFreq(0);
|
||||||
|
}
|
||||||
scantimer = millis();
|
scantimer = millis();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1380,7 +1414,9 @@ void ToggleBand(byte nowBand) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void BANDBUTTONPress() {
|
void BANDBUTTONPress() {
|
||||||
if (scandxmode) cancelDXScan();
|
if (scandxmode) {
|
||||||
|
cancelDXScan();
|
||||||
|
} else {
|
||||||
if (memorystore) {
|
if (memorystore) {
|
||||||
EEPROM.writeUInt((memorypos * 4) + EE_PRESETS_FREQUENCY_START, EE_PRESETS_FREQUENCY);
|
EEPROM.writeUInt((memorypos * 4) + EE_PRESETS_FREQUENCY_START, EE_PRESETS_FREQUENCY);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
@@ -1418,6 +1454,9 @@ void BANDBUTTONPress() {
|
|||||||
if (XDRGTKUSB || XDRGTKTCP) {
|
if (XDRGTKUSB || XDRGTKTCP) {
|
||||||
if (band == BAND_FM) DataPrint("M0\nT" + String(frequency * 10) + "\n"); else if (band == BAND_OIRT) DataPrint("M0\nT" + String(frequency_OIRT * 10) + "\n"); else DataPrint("M1\nT" + String(frequency_AM) + "\n");
|
if (band == BAND_FM) DataPrint("M0\nT" + String(frequency * 10) + "\n"); else if (band == BAND_OIRT) DataPrint("M0\nT" + String(frequency_OIRT * 10) + "\n"); else DataPrint("M1\nT" + String(frequency_AM) + "\n");
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
startFMDXScan();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
ScreensaverTimerRestart();
|
ScreensaverTimerRestart();
|
||||||
}
|
}
|
||||||
@@ -1436,6 +1475,7 @@ void BANDBUTTONPress() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
while (digitalRead(BANDBUTTON) == LOW) delay(50);
|
while (digitalRead(BANDBUTTON) == LOW) delay(50);
|
||||||
delay(100);
|
delay(100);
|
||||||
}
|
}
|
||||||
@@ -1886,7 +1926,9 @@ void SelectBand() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void BWButtonPress() {
|
void BWButtonPress() {
|
||||||
if (scandxmode) cancelDXScan();
|
if (scandxmode) {
|
||||||
|
cancelDXScan();
|
||||||
|
} else {
|
||||||
if (!usesquelch) radio.setUnMute();
|
if (!usesquelch) radio.setUnMute();
|
||||||
if (!menu) {
|
if (!menu) {
|
||||||
seek = false;
|
seek = false;
|
||||||
@@ -1919,6 +1961,7 @@ void BWButtonPress() {
|
|||||||
}
|
}
|
||||||
delay(100);
|
delay(100);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void doStereoToggle() {
|
void doStereoToggle() {
|
||||||
@@ -1959,7 +2002,9 @@ void doStereoToggle() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ModeButtonPress() {
|
void ModeButtonPress() {
|
||||||
if (scandxmode) cancelDXScan();
|
if (scandxmode) {
|
||||||
|
cancelDXScan();
|
||||||
|
} else {
|
||||||
if (!usesquelch) radio.setUnMute();
|
if (!usesquelch) radio.setUnMute();
|
||||||
if (advancedRDS) {
|
if (advancedRDS) {
|
||||||
BuildDisplay();
|
BuildDisplay();
|
||||||
@@ -2012,99 +2057,16 @@ void ModeButtonPress() {
|
|||||||
if (fmdefaultstepsize == 1) Round100K(frequency); else Round50K(frequency);
|
if (fmdefaultstepsize == 1) Round100K(frequency); else Round50K(frequency);
|
||||||
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
|
EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency);
|
||||||
}
|
}
|
||||||
radio.clearRDS(fullsearchrds);
|
|
||||||
CheckBandForbiddenFM();
|
CheckBandForbiddenFM();
|
||||||
CheckBandForbiddenAM();
|
CheckBandForbiddenAM();
|
||||||
menu = false;
|
|
||||||
menuopen = false;
|
|
||||||
LowLevelInit = true;
|
|
||||||
EEPROM.writeByte(EE_BYTE_VOLSET, VolSet);
|
|
||||||
EEPROM.writeUInt(EE_UINT16_CONVERTERSET, ConverterSet);
|
|
||||||
EEPROM.writeUInt(EE_UINT16_FMLOWEDGESET, LowEdgeSet);
|
|
||||||
EEPROM.writeUInt(EE_UINT16_FMHIGHEDGESET, HighEdgeSet);
|
|
||||||
EEPROM.writeByte(EE_BYTE_CONTRASTSET, ContrastSet);
|
|
||||||
EEPROM.writeByte(EE_BYTE_STEREOLEVEL, StereoLevel);
|
|
||||||
EEPROM.writeByte(EE_BYTE_BANDFM, bandFM);
|
|
||||||
EEPROM.writeByte(EE_BYTE_BANDAM, bandAM);
|
|
||||||
EEPROM.writeByte(EE_BYTE_HIGHCUTLEVEL, HighCutLevel);
|
|
||||||
EEPROM.writeByte(EE_BYTE_HIGHCUTOFFSET, HighCutOffset);
|
|
||||||
EEPROM.writeByte(EE_BYTE_LEVELOFFSET, LevelOffset);
|
|
||||||
EEPROM.writeByte(EE_BYTE_RTBUFFER, radio.rds.rtbuffer);
|
|
||||||
EEPROM.writeByte(EE_BYTE_EDGEBEEP, edgebeep);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SOFTMUTEAM, softmuteam);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SOFTMUTEFM, softmutefm);
|
|
||||||
EEPROM.writeByte(EE_BYTE_LANGUAGE, language);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SHOWRDSERRORS, showrdserrors);
|
|
||||||
EEPROM.writeByte(EE_BYTE_LOWLEVELSET, LowLevelSet);
|
|
||||||
EEPROM.writeByte(EE_BYTE_REGION, region);
|
|
||||||
EEPROM.writeByte(EE_BYTE_RDS_UNDERSCORE, radio.underscore);
|
|
||||||
EEPROM.writeByte(EE_BYTE_USBMODE, USBmode);
|
|
||||||
EEPROM.writeByte(EE_BYTE_WIFI, wifi);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SUBNETCLIENT, subnetclient);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SHOWSWMIBAND, showSWMIBand);
|
|
||||||
EEPROM.writeByte(EE_BYTE_RDS_FILTER, radio.rds.filter);
|
|
||||||
EEPROM.writeByte(EE_BYTE_RDS_PIERRORS, radio.rds.pierrors);
|
|
||||||
EEPROM.writeByte(EE_BYTE_USESQUELCH, usesquelch);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SHOWMODULATION, showmodulation);
|
|
||||||
EEPROM.writeByte(EE_BYTE_AM_NB, amnb);
|
|
||||||
EEPROM.writeByte(EE_BYTE_FM_NB, fmnb);
|
|
||||||
EEPROM.writeByte(EE_BYTE_AUDIOMODE, audiomode);
|
|
||||||
EEPROM.writeByte(EE_BYTE_TOUCH_ROTATING, touchrotating);
|
|
||||||
EEPROM.writeUInt(EE_UINT16_LOWEDGEOIRTSET, LowEdgeOIRTSet);
|
|
||||||
EEPROM.writeUInt(EE_UINT16_HIGHEDGEOIRTSET, HighEdgeOIRTSet);
|
|
||||||
EEPROM.writeByte(EE_BYTE_HARDWARE_MODEL, hardwaremodel);
|
|
||||||
EEPROM.writeByte(EE_BYTE_POWEROPTIONS, poweroptions);
|
|
||||||
EEPROM.writeByte(EE_BYTE_CURRENTTHEME, CurrentTheme);
|
|
||||||
EEPROM.writeByte(EE_BYTE_FMDEFAULTSTEPSIZE, fmdefaultstepsize);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SCREENSAVERSET, screensaverset);
|
|
||||||
EEPROM.writeInt(EE_INT16_AMLEVELOFFSET, AMLevelOffset);
|
|
||||||
EEPROM.writeByte(EE_BYTE_UNIT, unit);
|
|
||||||
EEPROM.writeByte(EE_BYTE_AF, af);
|
|
||||||
EEPROM.writeByte(EE_BYTE_STEREO, StereoToggle);
|
|
||||||
EEPROM.writeByte(EE_BYTE_BATTERY_OPTIONS, batteryoptions);
|
|
||||||
EEPROM.writeByte(EE_BYTE_AM_CO_DECT, amcodect);
|
|
||||||
EEPROM.writeByte(EE_BYTE_AM_CO_DECT_COUNT, amcodectcount);
|
|
||||||
EEPROM.writeByte(EE_BYTE_AM_RF_GAIN, amgain);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SORTAF, radio.rds.sortaf);
|
|
||||||
EEPROM.writeByte(EE_BYTE_STATIONLISTID, stationlistid);
|
|
||||||
EEPROM.writeByte(EE_BYTE_FM_DEEMPHASIS, fmdeemphasis);
|
|
||||||
EEPROM.writeByte(EE_BYTE_FASTPS, radio.rds.fastps);
|
|
||||||
EEPROM.writeByte(EE_BYTE_TOT, tot);
|
|
||||||
EEPROM.writeByte(EE_BYTE_MWREGION, mwstepsize);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SPISPEED, spispeed);
|
|
||||||
EEPROM.writeByte(EE_BYTE_AMSCANSENS, amscansens);
|
|
||||||
EEPROM.writeByte(EE_BYTE_FMSCANSENS, fmscansens);
|
|
||||||
EEPROM.writeByte(EE_BYTE_FREQFONT, freqfont);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SKIN, CurrentSkin);
|
|
||||||
EEPROM.writeByte(EE_BYTE_XDRGTKMUTE, XDRGTKMuteScreen);
|
|
||||||
EEPROM.writeByte(EE_BYTE_FMAGC, fmagc);
|
|
||||||
EEPROM.writeByte(EE_BYTE_AMAGC, amagc);
|
|
||||||
EEPROM.writeByte(EE_BYTE_FMSI, fmsi);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SCANSTART, scanstart);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SCANSTOP, scanstop);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SCANHOLD, scanhold);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SCANMEM, scanmem);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SCANCANCEL, scancancel);
|
|
||||||
EEPROM.writeByte(EE_BYTE_SCANMUTE, scanmute);
|
|
||||||
EEPROM.commit();
|
|
||||||
if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false;
|
|
||||||
if (!usesquelch) radio.setUnMute();
|
if (!usesquelch) radio.setUnMute();
|
||||||
Serial.end();
|
|
||||||
if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient);
|
|
||||||
if (USBmode) Serial.begin(19200); else Serial.begin(115200);
|
|
||||||
|
|
||||||
UpdateFonts(0);
|
|
||||||
FullLineSprite.unloadFont();
|
|
||||||
OneBigLineSprite.unloadFont();
|
|
||||||
BuildDisplay();
|
|
||||||
ShowSignalLevel();
|
|
||||||
ShowBW();
|
|
||||||
MWLowEdgeSet = mwstepsize == false ? FREQ_MW_LOW_EDGE_MIN_9K : FREQ_MW_LOW_EDGE_MIN_10K;
|
MWLowEdgeSet = mwstepsize == false ? FREQ_MW_LOW_EDGE_MIN_9K : FREQ_MW_LOW_EDGE_MIN_10K;
|
||||||
MWHighEdgeSet = mwstepsize == false ? FREQ_MW_HIGH_EDGE_MAX_9K : FREQ_MW_HIGH_EDGE_MAX_10K;
|
MWHighEdgeSet = mwstepsize == false ? FREQ_MW_HIGH_EDGE_MAX_9K : FREQ_MW_HIGH_EDGE_MAX_10K;
|
||||||
doBandSelectionFM();
|
doBandSelectionFM();
|
||||||
doBandSelectionAM();
|
doBandSelectionAM();
|
||||||
ScreensaverTimerSet(screensaverOptions[screensaverset]);
|
ScreensaverTimerSet(screensaverOptions[screensaverset]);
|
||||||
if (screensaverset) ScreensaverTimerRestart();
|
if (screensaverset) ScreensaverTimerRestart();
|
||||||
|
endMenu();
|
||||||
} else {
|
} else {
|
||||||
if (submenu) {
|
if (submenu) {
|
||||||
if (menuopen) {
|
if (menuopen) {
|
||||||
@@ -2126,6 +2088,7 @@ void ModeButtonPress() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
while (digitalRead(MODEBUTTON) == LOW) delay(50);
|
while (digitalRead(MODEBUTTON) == LOW) delay(50);
|
||||||
delay(100);
|
delay(100);
|
||||||
}
|
}
|
||||||
@@ -2243,7 +2206,9 @@ void RoundStep() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ButtonPress() {
|
void ButtonPress() {
|
||||||
if (scandxmode) cancelDXScan();
|
if (scandxmode) {
|
||||||
|
cancelDXScan();
|
||||||
|
} else {
|
||||||
if (!usesquelch) radio.setUnMute();
|
if (!usesquelch) radio.setUnMute();
|
||||||
if (advancedRDS) BuildDisplay();
|
if (advancedRDS) BuildDisplay();
|
||||||
if (!menu) {
|
if (!menu) {
|
||||||
@@ -2400,12 +2365,15 @@ void ButtonPress() {
|
|||||||
} else {
|
} else {
|
||||||
DoMenu();
|
DoMenu();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
while (digitalRead(ROTARY_BUTTON) == LOW) delay(50);
|
while (digitalRead(ROTARY_BUTTON) == LOW) delay(50);
|
||||||
}
|
}
|
||||||
|
|
||||||
void KeyUp() {
|
void KeyUp() {
|
||||||
if (scandxmode) cancelDXScan();
|
|
||||||
rotary = 0;
|
rotary = 0;
|
||||||
|
if (scandxmode) {
|
||||||
|
cancelDXScan();
|
||||||
|
} else {
|
||||||
if (!afscreen) {
|
if (!afscreen) {
|
||||||
if (!menu) {
|
if (!menu) {
|
||||||
switch (tunemode) {
|
switch (tunemode) {
|
||||||
@@ -2465,11 +2433,14 @@ void KeyUp() {
|
|||||||
MenuUp();
|
MenuUp();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void KeyDown() {
|
void KeyDown() {
|
||||||
if (scandxmode) cancelDXScan();
|
|
||||||
rotary = 0;
|
rotary = 0;
|
||||||
|
if (scandxmode) {
|
||||||
|
cancelDXScan();
|
||||||
|
} else {
|
||||||
if (!afscreen) {
|
if (!afscreen) {
|
||||||
if (!menu) {
|
if (!menu) {
|
||||||
switch (tunemode) {
|
switch (tunemode) {
|
||||||
@@ -2528,6 +2499,7 @@ void KeyDown() {
|
|||||||
MenuDown();
|
MenuDown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsStationEmpty() {
|
bool IsStationEmpty() {
|
||||||
@@ -2540,7 +2512,7 @@ bool IsStationEmpty() {
|
|||||||
bool IsFrequencyUsed(unsigned int freq) {
|
bool IsFrequencyUsed(unsigned int freq) {
|
||||||
bool result = false;
|
bool result = false;
|
||||||
for (byte x = scanstart; x <= scanstop; x++) {
|
for (byte x = scanstart; x <= scanstop; x++) {
|
||||||
if (presets[x].frequency == freq) {
|
if (presets[x].band == BAND_FM && presets[x].frequency == freq) {
|
||||||
result = true;
|
result = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2647,6 +2619,8 @@ void DoMemoryPosTune() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
radio.clearRDS(fullsearchrds);
|
radio.clearRDS(fullsearchrds);
|
||||||
|
if (RDSSPYUSB) Serial.print("G:\r\nRESET-------\r\n\r\n");
|
||||||
|
if (RDSSPYTCP) RemoteClient.print("G:\r\nRESET-------\r\n\r\n");
|
||||||
|
|
||||||
String stationText = "";
|
String stationText = "";
|
||||||
if (presets[memorypos].RDSPS[0] != '\0') {
|
if (presets[memorypos].RDSPS[0] != '\0') {
|
||||||
@@ -3210,7 +3184,7 @@ void doSquelch() {
|
|||||||
|
|
||||||
if (language == LANGUAGE_CHS) SquelchSprite.loadFont(FONT16_CHS); else SquelchSprite.loadFont(FONT16);
|
if (language == LANGUAGE_CHS) SquelchSprite.loadFont(FONT16_CHS); else SquelchSprite.loadFont(FONT16);
|
||||||
|
|
||||||
if (!XDRGTKUSB && !XDRGTKTCP && usesquelch) {
|
if (!XDRGTKUSB && !XDRGTKTCP && usesquelch && (!scandxmode || (scandxmode && !scanmute))) {
|
||||||
if (!screenmute && usesquelch && !advancedRDS && !afscreen) {
|
if (!screenmute && usesquelch && !advancedRDS && !afscreen) {
|
||||||
if (!menu && (Squelch > Squelchold + 2 || Squelch < Squelchold - 2)) {
|
if (!menu && (Squelch > Squelchold + 2 || Squelch < Squelchold - 2)) {
|
||||||
SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
SquelchSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
@@ -3238,7 +3212,7 @@ void doSquelch() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((XDRGTKUSB || XDRGTKTCP)) {
|
if ((XDRGTKUSB || XDRGTKTCP) && (!scandxmode || (scandxmode && !scanmute))) {
|
||||||
if (!XDRMute) {
|
if (!XDRMute) {
|
||||||
if (Squelch != -1) {
|
if (Squelch != -1) {
|
||||||
if (Squelch < SStatus || Squelch == -100 || Squelch == 0) {
|
if (Squelch < SStatus || Squelch == -100 || Squelch == 0) {
|
||||||
@@ -3312,7 +3286,7 @@ void doSquelch() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (usesquelch) {
|
} else if (usesquelch && (!scandxmode || (scandxmode && !scanmute))) {
|
||||||
if (Squelch != 920) {
|
if (Squelch != 920) {
|
||||||
if (Squelch < SStatus || Squelch == -100 || Squelch == 0) {
|
if (Squelch < SStatus || Squelch == -100 || Squelch == 0) {
|
||||||
if (!seek) radio.setUnMute();
|
if (!seek) radio.setUnMute();
|
||||||
@@ -3835,6 +3809,12 @@ void TuneUp() {
|
|||||||
|
|
||||||
if (band == BAND_FM) {
|
if (band == BAND_FM) {
|
||||||
frequency += temp;
|
frequency += temp;
|
||||||
|
if (scandxmode) {
|
||||||
|
while (IsFrequencyUsed(frequency)) {
|
||||||
|
frequency += temp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (fmdefaultstepsize == 2 && stepsize == 0 && frequency == 8795) frequency = 8790;
|
if (fmdefaultstepsize == 2 && stepsize == 0 && frequency == 8795) frequency = 8790;
|
||||||
if (frequency >= (HighEdgeSet * 10) + 1) {
|
if (frequency >= (HighEdgeSet * 10) + 1) {
|
||||||
frequency = LowEdgeSet * 10;
|
frequency = LowEdgeSet * 10;
|
||||||
@@ -4333,3 +4313,124 @@ void cancelDXScan() {
|
|||||||
ShowTuneMode();
|
ShowTuneMode();
|
||||||
ShowMemoryPos();
|
ShowMemoryPos();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void endMenu() {
|
||||||
|
radio.clearRDS(fullsearchrds);
|
||||||
|
menu = false;
|
||||||
|
menuopen = false;
|
||||||
|
LowLevelInit = true;
|
||||||
|
EEPROM.writeByte(EE_BYTE_VOLSET, VolSet);
|
||||||
|
EEPROM.writeUInt(EE_UINT16_CONVERTERSET, ConverterSet);
|
||||||
|
EEPROM.writeUInt(EE_UINT16_FMLOWEDGESET, LowEdgeSet);
|
||||||
|
EEPROM.writeUInt(EE_UINT16_FMHIGHEDGESET, HighEdgeSet);
|
||||||
|
EEPROM.writeByte(EE_BYTE_CONTRASTSET, ContrastSet);
|
||||||
|
EEPROM.writeByte(EE_BYTE_STEREOLEVEL, StereoLevel);
|
||||||
|
EEPROM.writeByte(EE_BYTE_BANDFM, bandFM);
|
||||||
|
EEPROM.writeByte(EE_BYTE_BANDAM, bandAM);
|
||||||
|
EEPROM.writeByte(EE_BYTE_HIGHCUTLEVEL, HighCutLevel);
|
||||||
|
EEPROM.writeByte(EE_BYTE_HIGHCUTOFFSET, HighCutOffset);
|
||||||
|
EEPROM.writeByte(EE_BYTE_LEVELOFFSET, LevelOffset);
|
||||||
|
EEPROM.writeByte(EE_BYTE_RTBUFFER, radio.rds.rtbuffer);
|
||||||
|
EEPROM.writeByte(EE_BYTE_EDGEBEEP, edgebeep);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SOFTMUTEAM, softmuteam);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SOFTMUTEFM, softmutefm);
|
||||||
|
EEPROM.writeByte(EE_BYTE_LANGUAGE, language);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SHOWRDSERRORS, showrdserrors);
|
||||||
|
EEPROM.writeByte(EE_BYTE_LOWLEVELSET, LowLevelSet);
|
||||||
|
EEPROM.writeByte(EE_BYTE_REGION, region);
|
||||||
|
EEPROM.writeByte(EE_BYTE_RDS_UNDERSCORE, radio.underscore);
|
||||||
|
EEPROM.writeByte(EE_BYTE_USBMODE, USBmode);
|
||||||
|
EEPROM.writeByte(EE_BYTE_WIFI, wifi);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SUBNETCLIENT, subnetclient);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SHOWSWMIBAND, showSWMIBand);
|
||||||
|
EEPROM.writeByte(EE_BYTE_RDS_FILTER, radio.rds.filter);
|
||||||
|
EEPROM.writeByte(EE_BYTE_RDS_PIERRORS, radio.rds.pierrors);
|
||||||
|
EEPROM.writeByte(EE_BYTE_USESQUELCH, usesquelch);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SHOWMODULATION, showmodulation);
|
||||||
|
EEPROM.writeByte(EE_BYTE_AM_NB, amnb);
|
||||||
|
EEPROM.writeByte(EE_BYTE_FM_NB, fmnb);
|
||||||
|
EEPROM.writeByte(EE_BYTE_AUDIOMODE, audiomode);
|
||||||
|
EEPROM.writeByte(EE_BYTE_TOUCH_ROTATING, touchrotating);
|
||||||
|
EEPROM.writeUInt(EE_UINT16_LOWEDGEOIRTSET, LowEdgeOIRTSet);
|
||||||
|
EEPROM.writeUInt(EE_UINT16_HIGHEDGEOIRTSET, HighEdgeOIRTSet);
|
||||||
|
EEPROM.writeByte(EE_BYTE_HARDWARE_MODEL, hardwaremodel);
|
||||||
|
EEPROM.writeByte(EE_BYTE_POWEROPTIONS, poweroptions);
|
||||||
|
EEPROM.writeByte(EE_BYTE_CURRENTTHEME, CurrentTheme);
|
||||||
|
EEPROM.writeByte(EE_BYTE_FMDEFAULTSTEPSIZE, fmdefaultstepsize);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SCREENSAVERSET, screensaverset);
|
||||||
|
EEPROM.writeInt(EE_INT16_AMLEVELOFFSET, AMLevelOffset);
|
||||||
|
EEPROM.writeByte(EE_BYTE_UNIT, unit);
|
||||||
|
EEPROM.writeByte(EE_BYTE_AF, af);
|
||||||
|
EEPROM.writeByte(EE_BYTE_STEREO, StereoToggle);
|
||||||
|
EEPROM.writeByte(EE_BYTE_BATTERY_OPTIONS, batteryoptions);
|
||||||
|
EEPROM.writeByte(EE_BYTE_AM_CO_DECT, amcodect);
|
||||||
|
EEPROM.writeByte(EE_BYTE_AM_CO_DECT_COUNT, amcodectcount);
|
||||||
|
EEPROM.writeByte(EE_BYTE_AM_RF_GAIN, amgain);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SORTAF, radio.rds.sortaf);
|
||||||
|
EEPROM.writeByte(EE_BYTE_STATIONLISTID, stationlistid);
|
||||||
|
EEPROM.writeByte(EE_BYTE_FM_DEEMPHASIS, fmdeemphasis);
|
||||||
|
EEPROM.writeByte(EE_BYTE_FASTPS, radio.rds.fastps);
|
||||||
|
EEPROM.writeByte(EE_BYTE_TOT, tot);
|
||||||
|
EEPROM.writeByte(EE_BYTE_MWREGION, mwstepsize);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SPISPEED, spispeed);
|
||||||
|
EEPROM.writeByte(EE_BYTE_AMSCANSENS, amscansens);
|
||||||
|
EEPROM.writeByte(EE_BYTE_FMSCANSENS, fmscansens);
|
||||||
|
EEPROM.writeByte(EE_BYTE_FREQFONT, freqfont);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SKIN, CurrentSkin);
|
||||||
|
EEPROM.writeByte(EE_BYTE_XDRGTKMUTE, XDRGTKMuteScreen);
|
||||||
|
EEPROM.writeByte(EE_BYTE_FMAGC, fmagc);
|
||||||
|
EEPROM.writeByte(EE_BYTE_AMAGC, amagc);
|
||||||
|
EEPROM.writeByte(EE_BYTE_FMSI, fmsi);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SCANSTART, scanstart);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SCANSTOP, scanstop);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SCANHOLD, scanhold);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SCANMEM, scanmem);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SCANCANCEL, scancancel);
|
||||||
|
EEPROM.writeByte(EE_BYTE_SCANMUTE, scanmute);
|
||||||
|
EEPROM.commit();
|
||||||
|
if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false;
|
||||||
|
Serial.end();
|
||||||
|
if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient);
|
||||||
|
if (USBmode) Serial.begin(19200); else Serial.begin(115200);
|
||||||
|
|
||||||
|
UpdateFonts(0);
|
||||||
|
FullLineSprite.unloadFont();
|
||||||
|
OneBigLineSprite.unloadFont();
|
||||||
|
BuildDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
void startFMDXScan() {
|
||||||
|
memorypos = scanstart;
|
||||||
|
scanmodeold = tunemode;
|
||||||
|
if (scanmem) {
|
||||||
|
tunemode = TUNE_MEM;
|
||||||
|
if (band != BAND_FM) {
|
||||||
|
band = BAND_FM;
|
||||||
|
SelectBand();
|
||||||
|
}
|
||||||
|
endMenu();
|
||||||
|
DoMemoryPosTune();
|
||||||
|
} else {
|
||||||
|
tunemode = TUNE_MAN;
|
||||||
|
if (band != BAND_FM) {
|
||||||
|
band = BAND_FM;
|
||||||
|
SelectBand();
|
||||||
|
endMenu();
|
||||||
|
}
|
||||||
|
endMenu();
|
||||||
|
TuneUp();
|
||||||
|
ShowFreq(0);
|
||||||
|
}
|
||||||
|
if (scanmute) {
|
||||||
|
radio.setMute();
|
||||||
|
if (CurrentSkin == 1) {
|
||||||
|
tft.pushImage (106, 3, 27, 23, skin1_muteon);
|
||||||
|
} else {
|
||||||
|
tft.drawBitmap(92, 4, Speaker, 26, 22, PrimaryColor);
|
||||||
|
}
|
||||||
|
SQ = true;
|
||||||
|
Squelchold = -2;
|
||||||
|
}
|
||||||
|
scantimer = millis();
|
||||||
|
scandxmode = true;
|
||||||
|
}
|
||||||
|
|||||||
+1
-9
@@ -4185,15 +4185,7 @@ void DoMenu() {
|
|||||||
Infoboxprint(myLanguage[language][214]);
|
Infoboxprint(myLanguage[language][214]);
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
} else {
|
} else {
|
||||||
menuopen = false;
|
startFMDXScan();
|
||||||
menu = false;
|
|
||||||
memorypos = scanstart;
|
|
||||||
scanmodeold = tunemode;
|
|
||||||
tunemode = TUNE_MEM;
|
|
||||||
BuildDisplay();
|
|
||||||
DoMemoryPosTune();
|
|
||||||
scantimer = millis();
|
|
||||||
scandxmode = true;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -224,6 +224,9 @@ extern void updateiMS();
|
|||||||
extern void updateEQ();
|
extern void updateEQ();
|
||||||
extern void doTheme();
|
extern void doTheme();
|
||||||
extern void tryWiFi();
|
extern void tryWiFi();
|
||||||
|
extern void TuneUp();
|
||||||
|
extern void endMenu();
|
||||||
|
extern void startFMDXScan();
|
||||||
extern void DoMemoryPosTune();
|
extern void DoMemoryPosTune();
|
||||||
extern void UpdateFonts(bool mode);
|
extern void UpdateFonts(bool mode);
|
||||||
extern void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int color, int smoothcolor, uint8_t fontsize);
|
extern void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int color, int smoothcolor, uint8_t fontsize);
|
||||||
|
|||||||
Reference in New Issue
Block a user