Added autologger to DX mode

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