From 37338bfbb1739f3abd09780e667cd539cecf94e0 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Fri, 10 Jan 2025 13:34:05 +0100 Subject: [PATCH] Added autologger to DX mode --- TEF6686_ESP32.ino | 16 +++++++++++++- src/constants.h | 11 +++++----- src/gui.cpp | 24 ++++++++++---------- src/gui.h | 1 + src/language.h | 56 +++++++++++++++++++++++++++++++---------------- 5 files changed, 71 insertions(+), 37 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 9383fdb..46ac77e 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -62,6 +62,8 @@ bool afpage; bool afscreen; bool aftest; bool artheadold; +bool autolog; +bool autologged; bool autosquelch = true; bool batterydetect = true; bool beepresetstart; @@ -581,6 +583,7 @@ void setup() { TouchCalData[4] = EEPROM.readUInt(EE_UINT16_CALTOUCH5); invertdisplay = EEPROM.readByte(EE_BYTE_INVERTDISPLAY); NTPoffset = EEPROM.readByte(EE_BYTE_NTPOFFSET); + autolog = EEPROM.readByte(EE_BYTE_AUTOLOG); if (spispeed == SPI_SPEED_DEFAULT) { tft.setSPISpeed(SPI_FREQUENCY / 1000000); @@ -1004,7 +1007,15 @@ void loop() { DoMemoryPosTune(); ShowMemoryPos(); } else { + if (!autologged && autolog && RDSstatus && radio.rds.correctPI != 0) { + if (addRowToCSV()) ShowFreq(2); else ShowFreq(3); + delay(200); + while (digitalRead(ROTARY_BUTTON) == LOW) delay(50); + ShowFreq(0); + autologged = true; + } TuneUp(); + autologged = false; ShowFreq(0); if (XDRGTKUSB || XDRGTKTCP) DataPrint("T" + String((frequency + ConverterSet * 100) * 10) + "\n"); } @@ -4540,7 +4551,8 @@ void DefaultSettings() { EEPROM.writeUInt(EE_UINT16_CALTOUCH3, 300); EEPROM.writeUInt(EE_UINT16_CALTOUCH4, 3450); EEPROM.writeUInt(EE_UINT16_CALTOUCH5, 3); - EEPROM.writeByte(EE_BYTE_NTPOFFSET, 0); + EEPROM.writeByte(EE_BYTE_NTPOFFSET, 1); + EEPROM.writeByte(EE_BYTE_AUTOLOG, 1); #ifdef DEEPELEC_DP_66X EEPROM.writeByte(EE_BYTE_ROTARYMODE, 1); @@ -4791,6 +4803,7 @@ void endMenu() { EEPROM.writeByte(EE_BYTE_MEMDOUBLEPI, memdoublepi); EEPROM.writeByte(EE_BYTE_WAITONLYONSIGNAL, scanholdonsignal); EEPROM.writeByte(EE_BYTE_NTPOFFSET, NTPoffset); + EEPROM.writeByte(EE_BYTE_AUTOLOG, autolog); EEPROM.commit(); if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false; Serial.end(); @@ -4809,6 +4822,7 @@ void endMenu() { void startFMDXScan() { initdxscan = true; scanholdflag = false; + autologged = false; for (byte i = 0; i < 100; i++) { rabbitearspi[i] = 0; rabbitearstime[i][0] = 0; diff --git a/src/constants.h b/src/constants.h index 003043e..e636bfe 100644 --- a/src/constants.h +++ b/src/constants.h @@ -225,9 +225,9 @@ #define EE_CHECKBYTE_VALUE 10 // 0 ~ 255,add new entry, change for new value #define EE_PRESETS_FREQUENCY 0 // Default value when memory channel should be skipped! #ifdef HAS_AIR_BAND -#define EE_TOTAL_CNT 2281 // Total occupied eeprom bytes +#define EE_TOTAL_CNT 2282 // Total occupied eeprom bytes #else -#define EE_TOTAL_CNT 2276 // Total occupied eeprom bytes +#define EE_TOTAL_CNT 2277 // Total occupied eeprom bytes #endif #define EE_PRESETS_BAND_START 0 // 99 * 1 byte @@ -345,10 +345,11 @@ #define EE_UINT16_CALTOUCH4 2266 #define EE_UINT16_CALTOUCH5 2270 #define EE_BYTE_INVERTDISPLAY 2274 -#define EE_BYTE_NTPOFFSET 2275 +#define EE_BYTE_NTPOFFSET 2275 +#define EE_BYTE_AUTOLOG 2276 #ifdef HAS_AIR_BAND -#define EE_BYTE_AIRSTEPSIZE 2276 -#define EE_UINT16_FREQUENCY_AIR 2277 +#define EE_BYTE_AIRSTEPSIZE 2277 +#define EE_UINT16_FREQUENCY_AIR 2278 #endif // End of EEPROM index defines diff --git a/src/gui.cpp b/src/gui.cpp index 1983b9b..2b1e604 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -1410,11 +1410,11 @@ void ShowOneLine(byte position, byte item, bool selected) { case DXMODE: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - FullLineSprite.drawString(removeNewline(myLanguage[language][82]), 6, 2); + FullLineSprite.drawString(removeNewline(myLanguage[language][296]), 6, 2); FullLineSprite.setTextDatum(TR_DATUM); FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - FullLineSprite.drawString(String(fmscansens), 298, 2); + FullLineSprite.drawString((autolog ? myLanguage[language][42] : myLanguage[language][30]), 298, 2); break; case AUTOMEM: @@ -2489,10 +2489,10 @@ void ShowOneButton(byte position, byte item, bool selected) { case DXMODE: PSSprite.setTextDatum(TC_DATUM); PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); - PSSprite.drawString(shortLine(removeNewline(myLanguage[language][82])), 75, 1); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][296])), 75, 1); PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); - PSSprite.drawString(String(fmscansens), 75, 15); + PSSprite.drawString((autolog ? myLanguage[language][42] : myLanguage[language][30]), 75, 15); break; case AUTOMEM: @@ -3850,15 +3850,15 @@ void MenuUp() { case ITEM7: scanmute = !scanmute; + OneBigLineSprite.drawString((scanmute ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM8: - fmscansens++; - if (fmscansens > 30) fmscansens = 1; + autolog = !autolog; - OneBigLineSprite.drawString(String(fmscansens), 135, 0); + OneBigLineSprite.drawString((autolog ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; @@ -4821,15 +4821,15 @@ void MenuDown() { case ITEM7: scanmute = !scanmute; + OneBigLineSprite.drawString((scanmute ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; case ITEM8: - fmscansens--; - if (fmscansens == 0) fmscansens = 30; + autolog = !autolog; - OneBigLineSprite.drawString(String(fmscansens), 135, 0); + OneBigLineSprite.drawString((autolog ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; @@ -5862,9 +5862,9 @@ void DoMenu() { break; case ITEM8: - Infoboxprint(myLanguage[language][82]); + Infoboxprint(myLanguage[language][296]); - OneBigLineSprite.drawString(String(fmscansens), 135, 0); + OneBigLineSprite.drawString((autolog ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; diff --git a/src/gui.h b/src/gui.h index fa2bf67..64fcd7c 100644 --- a/src/gui.h +++ b/src/gui.h @@ -16,6 +16,7 @@ extern bool afmethodBold; extern bool afpage; extern bool afscreen; extern bool artheadold; +extern bool autolog; extern bool autosquelch; extern bool BWreset; extern bool BWtune; diff --git a/src/language.h b/src/language.h index 6c30bd7..58657a5 100644 --- a/src/language.h +++ b/src/language.h @@ -5,7 +5,7 @@ // [number of languages][number of texts] -static const char* const myLanguage[18][296] PROGMEM = { +static const char* const myLanguage[18][297] PROGMEM = { { "English", // English "Rotary direction changed", // 1 "Please release button", // 2 @@ -301,7 +301,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Nederlands", // Dutch @@ -599,7 +600,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Logboek legen", // 292 "Logboek geleegd", // 293 "Legen mislukt", // 294 - "NTP tijdverschil instellen" // 295 + "NTP tijdverschil instellen", // 295 + "Automatisch loggen" // 296 }, { "Polski", // Polish @@ -897,7 +899,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Hrvatski", // Croatian @@ -1195,7 +1198,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Ελληνικά", // Greek @@ -1493,7 +1497,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Română", // Romanian @@ -1791,7 +1796,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Deutsch", // German @@ -2089,7 +2095,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Český", // Czech @@ -2387,7 +2394,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Magyar", // Hungarian @@ -2685,7 +2693,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Français", // French @@ -2983,7 +2992,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Български", // Bulgarian @@ -3281,7 +3291,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Русский", // Russian @@ -3579,7 +3590,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Українська", // Ukranian @@ -3877,7 +3889,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Italiano", // Italian @@ -4175,7 +4188,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Simplified Chinese", // Simplified Chinese @@ -4473,7 +4487,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Norsk", // Norwegian @@ -4771,7 +4786,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Español", // Spanish @@ -5069,7 +5085,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 }, { "Português", // Portuguese @@ -5367,7 +5384,8 @@ static const char* const myLanguage[18][296] PROGMEM = { "Clear logbook", // 292 "Logbook cleared", // 293 "Clear failed", // 294 - "Set NTP time offset" // 295 + "Set NTP time offset", // 295 + "Autologger" // 296 } }; #endif \ No newline at end of file