diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 095af64..716f74c 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -1774,77 +1774,81 @@ void ModeButtonPress() { } } } else { - OStatusold = 1000; - Stereostatusold = false; - SStatusold = 2000; - BWOld = 0; - radio.clearRDS(fullsearchrds); - RDSstatus = false; - if (frequency % 10 != 0) { - if (fmdefaultstepsize == 1) Round100K(frequency); else Round50K(frequency); - EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency); + if (menuopen) { + ButtonPress(); + } else { + OStatusold = 1000; + Stereostatusold = false; + SStatusold = 2000; + BWOld = 0; + radio.clearRDS(fullsearchrds); + RDSstatus = false; + if (frequency % 10 != 0) { + if (fmdefaultstepsize == 1) Round100K(frequency); else Round50K(frequency); + EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency); + } + radio.clearRDS(fullsearchrds); + CheckBandForbiddenFM(); + CheckBandForbiddenAM(); + BuildDisplay(); + ShowSignalLevel(); + ShowBW(); + menu = false; + menuopen = false; + LowLevelInit = true; + EEPROM.writeInt(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.writeInt(EE_BYTE_LOWLEVELSET, LowLevelSet); + EEPROM.writeByte(EE_BYTE_REGION, region); + EEPROM.writeByte(EE_BYTE_RDS_UNDERSCORE, radio.rds.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_SHOWSQUELCH, showsquelch); + 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.commit(); + 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); + doBandSelectionFM(); + doBandSelectionAM(); + ScreensaverTimerSet(screensaverOptions[screensaverset]); + if (screensaverset) ScreensaverTimerRestart(); } - radio.clearRDS(fullsearchrds); - CheckBandForbiddenFM(); - CheckBandForbiddenAM(); - BuildDisplay(); - ShowSignalLevel(); - ShowBW(); - menu = false; - menuopen = false; - LowLevelInit = true; - EEPROM.writeInt(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.writeInt(EE_BYTE_LOWLEVELSET, LowLevelSet); - EEPROM.writeByte(EE_BYTE_REGION, region); - EEPROM.writeByte(EE_BYTE_RDS_UNDERSCORE, radio.rds.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_SHOWSQUELCH, showsquelch); - 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.commit(); - 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); - doBandSelectionFM(); - doBandSelectionAM(); - ScreensaverTimerSet(screensaverOptions[screensaverset]); - if (screensaverset) ScreensaverTimerRestart(); } } while (digitalRead(MODEBUTTON) == LOW) delay(50); diff --git a/src/comms.cpp b/src/comms.cpp index 74019de..d97bc36 100644 --- a/src/comms.cpp +++ b/src/comms.cpp @@ -549,6 +549,9 @@ void tryWiFi() { wifi = true; } else { if (!setupmode) tftPrint(0, myLanguage[language][56], 155, 128, SignificantColor, SignificantColorSmooth, 28); + Server.end(); + Udp.stop(); + WiFi.mode(WIFI_OFF); wifi = false; XDRGTKTCP = false; RDSSPYTCP = false;