From b44d61b66c4432b13fa29b817df18dbc7de004ab Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Fri, 10 Jan 2025 12:12:02 +0100 Subject: [PATCH] Added NTP GMT offset to menu --- TEF6686_ESP32.ino | 7 ++++-- src/constants.h | 11 +++++---- src/gui.cpp | 63 +++++++++++++++++++++++++++++++++++++++++++++++ src/gui.h | 1 + src/language.h | 56 +++++++++++++++++++++++++++-------------- src/rds.h | 2 +- 6 files changed, 113 insertions(+), 27 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 1e3bd06..9383fdb 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -186,7 +186,7 @@ byte amgain; byte freqoldcount; byte HighCutLevel; byte HighCutOffset; -byte items[10] = {10, static_cast(dynamicspi ? 10 : 9), 7, 10, 10, 10, 9, 6, 10, 9}; +byte items[10] = {10, static_cast(dynamicspi ? 10 : 9), 7, 10, 10, 10, 9, 7, 10, 9}; byte iMSEQ; byte iMSset; byte language; @@ -202,7 +202,6 @@ byte memstoppos; byte menuitem; byte menupage; byte MSold; -byte NTPoffset = 1; byte poweroptions; byte rdsblockold; byte rdsqualityold; @@ -314,6 +313,7 @@ int16_t SAvg3; int16_t SStatus; int8_t LevelOffset; int8_t LowLevelSet; +int8_t NTPoffset; int8_t CN; int8_t CNold; int8_t VolSet; @@ -580,6 +580,7 @@ void setup() { TouchCalData[3] = EEPROM.readUInt(EE_UINT16_CALTOUCH4); TouchCalData[4] = EEPROM.readUInt(EE_UINT16_CALTOUCH5); invertdisplay = EEPROM.readByte(EE_BYTE_INVERTDISPLAY); + NTPoffset = EEPROM.readByte(EE_BYTE_NTPOFFSET); if (spispeed == SPI_SPEED_DEFAULT) { tft.setSPISpeed(SPI_FREQUENCY / 1000000); @@ -4539,6 +4540,7 @@ 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); #ifdef DEEPELEC_DP_66X EEPROM.writeByte(EE_BYTE_ROTARYMODE, 1); @@ -4788,6 +4790,7 @@ void endMenu() { EEPROM.writeByte(EE_BYTE_MEMPIONLY, mempionly); EEPROM.writeByte(EE_BYTE_MEMDOUBLEPI, memdoublepi); EEPROM.writeByte(EE_BYTE_WAITONLYONSIGNAL, scanholdonsignal); + EEPROM.writeByte(EE_BYTE_NTPOFFSET, NTPoffset); EEPROM.commit(); if (af == 2) radio.rds.afreg = true; else radio.rds.afreg = false; Serial.end(); diff --git a/src/constants.h b/src/constants.h index 7fd1181..003043e 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 2280 // Total occupied eeprom bytes +#define EE_TOTAL_CNT 2281 // Total occupied eeprom bytes #else -#define EE_TOTAL_CNT 2275 // Total occupied eeprom bytes +#define EE_TOTAL_CNT 2276 // Total occupied eeprom bytes #endif #define EE_PRESETS_BAND_START 0 // 99 * 1 byte @@ -345,9 +345,10 @@ #define EE_UINT16_CALTOUCH4 2266 #define EE_UINT16_CALTOUCH5 2270 #define EE_BYTE_INVERTDISPLAY 2274 +#define EE_BYTE_NTPOFFSET 2275 #ifdef HAS_AIR_BAND -#define EE_BYTE_AIRSTEPSIZE 2275 -#define EE_UINT16_FREQUENCY_AIR 2276 +#define EE_BYTE_AIRSTEPSIZE 2276 +#define EE_UINT16_FREQUENCY_AIR 2277 #endif // End of EEPROM index defines @@ -373,7 +374,7 @@ enum LONGBANDBUTTONPRESS { }; enum menupage {INDEX, MAINSETTINGS, AUDIOSETTINGS, DISPLAYSETTINGS, RDSSETTINGS, FMSETTINGS, AMSETTINGS, CONNECTIVITY, DXMODE, AUTOMEM -}; + }; enum AUTOMEMPIMODES { MEMPI_OFF = 0, MEMPI_RANGE, MEMPI_FULL diff --git a/src/gui.cpp b/src/gui.cpp index 6e787d4..1983b9b 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -1271,6 +1271,18 @@ void ShowOneLine(byte position, byte item, bool selected) { FullLineSprite.drawString((amgain != 0 ? "dB" : myLanguage[language][30]), 298, 2); break; + case CONNECTIVITY: + FullLineSprite.setTextDatum(TL_DATUM); + FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + FullLineSprite.drawString(removeNewline(myLanguage[language][295]), 6, 2); + + FullLineSprite.setTextDatum(TR_DATUM); + FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + FullLineSprite.drawString((NTPoffset > -1 ? "+" : "") + String(NTPoffset, DEC), 298, 2); + FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + FullLineSprite.drawString("GMT", 258, 2); + break; + case DXMODE: FullLineSprite.setTextDatum(TL_DATUM); FullLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); @@ -2339,6 +2351,19 @@ void ShowOneButton(byte position, byte item, bool selected) { } break; + case CONNECTIVITY: + PSSprite.setTextDatum(TC_DATUM); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.drawString(shortLine(removeNewline(myLanguage[language][295])), 75, 1); + + PSSprite.setTextDatum(TL_DATUM); + PSSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + PSSprite.drawString((NTPoffset > -1 ? "+" : "") + String(NTPoffset, DEC), 77, 15); + PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + PSSprite.setTextDatum(TR_DATUM); + PSSprite.drawString("GMT", 73, 15); + break; + case DXMODE: PSSprite.setTextDatum(TC_DATUM); PSSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); @@ -3762,6 +3787,19 @@ void MenuUp() { OneBigLineSprite.drawString((XDRGTKMuteScreen ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; + + case ITEM7: + NTPoffset++; + if (NTPoffset > 12) NTPoffset = -12; + + OneBigLineSprite.setTextDatum(TR_DATUM); + OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + OneBigLineSprite.drawString("GMT", 135, 0); + OneBigLineSprite.setTextDatum(TL_DATUM); + OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + OneBigLineSprite.drawString((NTPoffset > -1 ? "+" : "") + String(NTPoffset), 155, 0); + OneBigLineSprite.pushSprite(24, 118); + break; } break; @@ -4720,6 +4758,19 @@ void MenuDown() { OneBigLineSprite.drawString((XDRGTKMuteScreen ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; + + case ITEM7: + NTPoffset--; + if (NTPoffset < -12) NTPoffset = 12; + + OneBigLineSprite.setTextDatum(TR_DATUM); + OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + OneBigLineSprite.drawString("GMT", 135, 0); + OneBigLineSprite.setTextDatum(TL_DATUM); + OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + OneBigLineSprite.drawString((NTPoffset > -1 ? "+" : "") + String(NTPoffset), 155, 0); + OneBigLineSprite.pushSprite(24, 118); + break; } break; @@ -5733,6 +5784,18 @@ void DoMenu() { OneBigLineSprite.drawString((XDRGTKMuteScreen ? myLanguage[language][42] : myLanguage[language][30]), 135, 0); OneBigLineSprite.pushSprite(24, 118); break; + + case ITEM7: + Infoboxprint(myLanguage[language][295]); + + OneBigLineSprite.setTextDatum(TR_DATUM); + OneBigLineSprite.setTextColor(ActiveColor, ActiveColorSmooth, false); + OneBigLineSprite.drawString("GMT", 135, 0); + OneBigLineSprite.setTextDatum(TL_DATUM); + OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); + OneBigLineSprite.drawString((NTPoffset > -1 ? "+" : "") + String(NTPoffset), 155, 0); + OneBigLineSprite.pushSprite(24, 118); + break; } break; diff --git a/src/gui.h b/src/gui.h index eaa543e..fa2bf67 100644 --- a/src/gui.h +++ b/src/gui.h @@ -177,6 +177,7 @@ extern int xPos5; extern int16_t SStatus; extern int8_t LevelOffset; extern int8_t LowLevelSet; +extern int8_t NTPoffset; extern int8_t VolSet; extern String eonpsold[20]; extern String PIold; diff --git a/src/language.h b/src/language.h index 3b62599..6c30bd7 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][295] PROGMEM = { +static const char* const myLanguage[18][296] PROGMEM = { { "English", // English "Rotary direction changed", // 1 "Please release button", // 2 @@ -300,7 +300,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Nederlands", // Dutch @@ -597,7 +598,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Log mislukt!", // 291 "Logboek legen", // 292 "Logboek geleegd", // 293 - "Legen mislukt" // 294 + "Legen mislukt", // 294 + "NTP tijdverschil instellen" // 295 }, { "Polski", // Polish @@ -894,7 +896,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Hrvatski", // Croatian @@ -1191,7 +1194,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Ελληνικά", // Greek @@ -1488,7 +1492,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Română", // Romanian @@ -1785,7 +1790,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Deutsch", // German @@ -2082,7 +2088,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Český", // Czech @@ -2379,7 +2386,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Magyar", // Hungarian @@ -2676,7 +2684,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Français", // French @@ -2973,7 +2982,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Български", // Bulgarian @@ -3270,7 +3280,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Русский", // Russian @@ -3567,7 +3578,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Українська", // Ukranian @@ -3864,7 +3876,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Italiano", // Italian @@ -4161,7 +4174,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Simplified Chinese", // Simplified Chinese @@ -4458,7 +4472,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Norsk", // Norwegian @@ -4755,7 +4770,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Español", // Spanish @@ -5052,7 +5068,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 }, { "Português", // Portuguese @@ -5349,7 +5366,8 @@ static const char* const myLanguage[18][295] PROGMEM = { "Update failed!", // 291 "Clear logbook", // 292 "Logbook cleared", // 293 - "Clear failed" // 294 + "Clear failed", // 294 + "Set NTP time offset" // 295 } }; #endif \ No newline at end of file diff --git a/src/rds.h b/src/rds.h index dca1c2d..909277b 100644 --- a/src/rds.h +++ b/src/rds.h @@ -52,7 +52,6 @@ extern byte ECCold; extern byte language; extern byte licold; extern byte MSold; -extern byte NTPoffset; extern byte eonptyold[20]; extern byte rdsblockold; extern byte rdsqualityold; @@ -92,6 +91,7 @@ extern int xPos2; extern int xPos3; extern int xPos4; extern int xPos5; +extern int8_t NTPoffset; extern int16_t SAvg3; extern IPAddress remoteip; extern String AIDString;