Only long BW press will cancel DX scan

This commit is contained in:
Sjef Verhoeven PE5PVB
2025-01-21 17:07:59 +01:00
parent 35817e5896
commit 9ec8b1a90a
5 changed files with 91 additions and 45 deletions

View File

@@ -1880,7 +1880,8 @@ void BANDBUTTONPress() {
if (seek) radio.setUnMute();
seek = false;
if (scandxmode) {
cancelDXScan();
ShowFreq(5);
ShowFreq(0);
} else {
if (memorystore) {
EEPROM.writeByte(memorypos + EE_PRESETS_BAND_START, BAND_FM);
@@ -2460,7 +2461,16 @@ void BWButtonPress() {
if (seek) radio.setUnMute();
seek = false;
if (scandxmode) {
cancelDXScan();
unsigned long counterold = millis();
unsigned long counter = millis();
while (digitalRead(BWBUTTON) == LOW && counter - counterold <= 1000) counter = millis();
if (counter - counterold < 1000) {
ShowFreq(5);
ShowFreq(0);
} else {
cancelDXScan();
}
} else {
if (!usesquelch) radio.setUnMute();
if (!BWtune && !menu) {
@@ -2522,7 +2532,8 @@ void ModeButtonPress() {
if (seek) radio.setUnMute();
seek = false;
if (scandxmode) {
cancelDXScan();
ShowFreq(5);
ShowFreq(0);
} else {
if (!usesquelch) radio.setUnMute();
if (advancedRDS) {
@@ -2716,7 +2727,8 @@ void ButtonPress() {
if (seek) radio.setUnMute();
seek = false;
if (scandxmode) {
cancelDXScan();
ShowFreq(5);
ShowFreq(0);
} else {
if (!usesquelch) radio.setUnMute();
if (advancedRDS) {
@@ -2827,7 +2839,8 @@ void ButtonPress() {
void KeyUp() {
rotary = 0;
if (scandxmode) {
cancelDXScan();
ShowFreq(5);
ShowFreq(0);
} else {
if (!afscreen) {
if (!BWtune && !menu) {
@@ -2894,7 +2907,8 @@ void KeyUp() {
void KeyDown() {
rotary = 0;
if (scandxmode) {
cancelDXScan();
ShowFreq(5);
ShowFreq(0);
} else {
if (!afscreen) {
if (!BWtune && !menu) {
@@ -3221,15 +3235,21 @@ void ShowFreq(int mode) {
case 3:
FrequencySprite.fillSprite(BackgroundColor);
FrequencySprite.pushSprite(46, 46);
tftPrint(0, myLanguage[language][291], 146, 58, ActiveColor, ActiveColorSmooth, 28);
tftPrint(0, myLanguage[language][291], 146, 58, ActiveColor, ActiveColorSmooth, 16);
break;
case 4:
FrequencySprite.fillSprite(BackgroundColor);
FrequencySprite.pushSprite(46, 46);
tftPrint(0, myLanguage[language][297], 146, 58, ActiveColor, ActiveColorSmooth, 28);
tftPrint(0, myLanguage[language][297], 146, 58, ActiveColor, ActiveColorSmooth, 16);
break;
case 5:
FrequencySprite.fillSprite(BackgroundColor);
FrequencySprite.pushSprite(46, 46);
tftPrint(0, myLanguage[language][303], 146, 58, ActiveColor, ActiveColorSmooth, 16);
delay(400);
break;
}
FrequencySprite.unloadFont();
}
@@ -5305,7 +5325,10 @@ void TuneFreq(int temp) {
void NumpadProcess(int num) {
if (scandxmode) {
if (num == 127) cancelDXScan();
if (num == 127) {
ShowFreq(5);
ShowFreq(0);
}
} else {
if (num == 127) {
freq_in = 0;

View File

@@ -5,7 +5,7 @@
// [number of languages][number of texts]
static const char* const myLanguage[21][303] PROGMEM = {
static const char* const myLanguage[21][304] PROGMEM = {
{ "English", // English
"Rotary direction changed", // 1
"Please release button", // 2
@@ -308,7 +308,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Auto DST on NTP time", // 299
"The logbook contains over 130 entries, which the viewer cannot process. Please download the CSV file to process it.", // 300
"PI locked CT sync", // 301
"Error! No RDS signal" // 302
"Error! No RDS signal", // 302
"Hold BW to stop" // 303
},
{ "Nederlands", // Dutch
@@ -613,7 +614,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Auto zomertijd\nop NTP tijd", // 299
"Het logboek bevat meer dan 130 items, die de viewer niet kan verwerken. Download alstublieft het CSV-bestand om het te bekijken.", // 300
"PI gebonden CT sync", // 301
"Fout! Geen RDS!" // 302
"Fout! Geen RDS!", // 302
"Stoppen: BW lang indrukken" // 303
},
{ "Polski", // Polish
@@ -918,7 +920,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Auto czas letni wg NTP", // 299
"Wykaz zawiera ponad 130 wpisów, których przeglądarka nie może pokazać. Pobierz plik CSV, aby je przetworzyć.", // 300
"Synch. CT przy zablokowanym PI", // 301
"Błąd! Brak sygnału RDS" // 302
"Błąd! Brak sygnału RDS", // 302
"Hold BW to stop" // 303
},
{ "Hrvatski", // Croatian
@@ -1223,7 +1226,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Auto DST on NTP time", // 299
"The logbook contains over 130 entries, which the viewer cannot process. Please download the CSV file to process it.", // 300
"PI locked CT sync", // 301
"Error! No RDS signal" // 302
"Error! No RDS signal", // 302
"Hold BW to stop" // 303
},
{ "Ελληνικά", // Greek
@@ -1528,7 +1532,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Αυτόματο DST\nσε ώρα NTP", // 299
"Το βιβλίο περιέχει πάνω από 130 καταγραφές, και είναι αδύνατη η επεξεργασία τους από το χρήστη. Κάντε λήψη του αρχείου CSV για να το επεξεργαστείτε.", // 300
"Συγχρονισμός CT σε\nκλείδωμα PI ", // 301
"Δεν υπάρχει σήμα RDS!" // 302
"Δεν υπάρχει σήμα RDS!", // 302
"Hold BW to stop" // 303
},
{ "Română", // Romanian
@@ -1833,7 +1838,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"DST automat pe ora NTP", // 299
"Jurnalul conține peste 130 de intrări, pe care vizualizatorul nu le poate procesa. Te rog descarcă fișierul CSV pentru a le procesa.", // 300
"PI blocat pe sincronizare CT", // 301
"Eroare! Fără semnal RDS" // 302
"Eroare! Fără semnal RDS", // 302
"Hold BW to stop" // 303
},
{ "Deutsch", // German
@@ -2138,7 +2144,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Auto-Sommerzeit\nüber NTP", // 299
"Das Logbuch enthält mehr als 130 Einträge, was das Anzeigeprogramm nicht verarbeiten kann. Bitte lade die CSV-Datei zum Verarbeiten herunter.", // 300
"Synchronisiere CT\nbei bestimmtem PI", // 301
"Fehler! Kein RDS-Signal" // 302
"Fehler! Kein RDS-Signal", // 302
"Hold BW to stop" // 303
},
{ "Čeština", // Czech
@@ -2443,7 +2450,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Automatický letní čas u NTP času", // 299
"Logbook obsahuje více než 130 položek, které prohlížeč nedokáže zpracovat. Pro zpracování všech položek si stáhněte CSV soubor.", // 300
"Synchronizovat CT, když je PI uzamčeno", // 301
"Chyba! Žádný RDS signál" // 302
"Chyba! Žádný RDS signál", // 302
"Hold BW to stop" // 303
},
{ "Magyar", // Hungarian
@@ -2748,7 +2756,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Auto DST on NTP time", // 299
"The logbook contains over 130 entries, which the viewer cannot process. Please download the CSV file to process it.", // 300
"PI locked CT sync", // 301
"Error! No RDS signal" // 302
"Error! No RDS signal", // 302
"Hold BW to stop" // 303
},
{ "Français", // French
@@ -3053,7 +3062,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"DST automatique\nsur l'heure NTP", // 299
"Le journal de bord contient plus de 130 entrées que le spectateur ne peut pas traiter. Télécharger le fichier CSV pour le traiter.", // 300
"Synch CT sur\nPI verrouillé", // 301
"Erreur ! Pas de signal RDS" // 302
"Erreur ! Pas de signal RDS", // 302
"Hold BW to stop" // 303
},
{ "Български", // Bulgarian
@@ -3358,7 +3368,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Auto DST on NTP time", // 299
"The logbook contains over 130 entries, which the viewer cannot process. Please download the CSV file to process it.", // 300
"PI locked CT sync", // 301
"Error! No RDS signal" // 302
"Error! No RDS signal", // 302
"Hold BW to stop" // 303
},
{ "Русский", // Russian
@@ -3663,7 +3674,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Автоматическое летнее время по времени NTP", // 299
"В журнале содержится более 130 записей, которые программа просмотра не может обработать. Загрузите файл CSV для его обработки.", // 300
"PI-синхронизация трансформатора тока с блокировкой", // 301
"Ошибка! Нет сигнала RDS" // 302
"Ошибка! Нет сигнала RDS", // 302
"Hold BW to stop" // 303
},
{ "Українська", // Ukranian
@@ -3968,7 +3980,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Автоматичний літній час за часом NTP", // 299
"Журнал містить понад 130 записів, які програма перегляду не може обробити. Будь ласка, завантажте файл CSV, щоб обробити його.", // 300
"PI locked CT sync", // 301
"Помилка! Немає сигналу RDS" // 302
"Помилка! Немає сигналу RDS", // 302
"Hold BW to stop" // 303
},
{ "Italiano", // Italian
@@ -4273,7 +4286,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Auto DST on NTP time", // 299
"The logbook contains over 130 entries, which the viewer cannot process. Please download the CSV file to process it.",// 300
"PI locked CT sync", // 301
"Error! No RDS signal" // 302
"Error! No RDS signal", // 302
"Hold BW to stop" // 303
},
{ "Simplified Chinese", // Simplified Chinese
@@ -4578,7 +4592,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"联网自动同步本机时间", // 299
"The logbook contains over 130 entries, which the viewer cannot process. Please download the CSV file to process it.", // 300
"PI locked CT sync", // 301
"错误! 无RDS信号" // 302
"错误! 无RDS信号", // 302
"Hold BW to stop" // 303
},
{ "Norsk", // Norwegian
"Rotasjonsretning endret", // 1
@@ -4882,7 +4897,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Auto sommertid på NTP-tid", // 299
"Loggboken inneholder over 130 oppføringer, som en ikke kan behandle. Last ned CSV-filen for å behandle den.", // 300
"PI-låst CT-synk", // 301
"Feil! Ingen RDS-signal" // 302
"Feil! Ingen RDS-signal", // 302
"Hold BW to stop" // 303
},
{ "Español", // Spanish
@@ -5187,7 +5203,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"DST automático\nen hora NTP", // 299
"El libro de registro contiene más de 130 entradas que el visor no puede procesar. Descargue el archivo CSV para procesarlo.", // 300
"Sync CT en\nPI bloqueado", // 301
"Error! No hay señal RDS" // 302
"Error! No hay señal RDS", // 302
"Hold BW to stop" // 303
},
{ "Português", // Portuguese
@@ -5492,7 +5509,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"DST automático\nno horário NTP", // 299
"O diário de bordo contém mais de 130 entradas que o espectador não consegue processar. Descarregue o ficheiro CSV para processá-lo.", // 300
"Sincronizar CT\nno PI bloqueado", // 301
"Erro! Sem sinal RDS" // 302
"Erro! Sem sinal RDS", // 302
"Hold BW to stop" // 303
},
{ "Srpski", // Serbian
@@ -5797,10 +5815,11 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Auto DST na\nNTP vremenu", // 299
"Dnevnik sadrži više od 130 unosa, što viewer ne može obraditi. Preuzmite CSV fajl za obradu.", // 300
"PI zaključan\nCT sinhronizacija", // 301
"Nema RDS signala!" // 302
"Nema RDS signala!", // 302
"Hold BW to stop" // 303
},
{ "Suomi", // Finnish
{ "Suomi", // Finnish
"Pyörimissuunta vaihtui", // 1
"Vapauta nappi", // 2
"Näyttö käännetty", // 3
@@ -6102,7 +6121,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Automaattinen\nkesäaika NTP-aikaa", // 299
"Lokikirjassa on yli 130 merkintää, joita katselija ei voi käsitellä. Lataa CSV-tiedosto käsitelläksesi sen.", // 300
"PI lukittu\nCT synkronointi", // 301
"Ei RDS-signaalia!" // 302
"Ei RDS-signaalia!", // 302
"Hold BW to stop" // 303
},
{ "Dansk", // Danish
@@ -6407,7 +6427,8 @@ static const char* const myLanguage[21][303] PROGMEM = {
"Auto DST på\nNTP tid", // 299
"Logbogen indeholder over 130 poster, som fremviseren ikke kan behandle. Download CSV-filen for at behandle den.", // 300
"PI låst CT sync", // 301
"Fejl! Ingen RDS signal" // 302
"Fejl! Ingen RDS signal", // 302
"Hold BW to stop" // 303
}
};
#endif
#endif

View File

@@ -265,17 +265,17 @@ byte addRowToCSV() {
String stationName = radio.rds.stationName;
stationName.replace(",", " "); // Replace commas in station name
// Handle ECC, PTY, TA, TP, and Stereo flag
String TA = radio.rds.hasTA ? "" : " ";
String TP = radio.rds.hasTP ? "" : " ";
String Stereo = radio.getStereoStatus() ? "" : " ";
String pty = String(radio.rds.stationTypeCode);
String ECC = "--";
if (radio.rds.hasECC) {
char eccBuffer[3]; // Buffer to hold 2-digit hex value + null terminator
snprintf(eccBuffer, sizeof(eccBuffer), "%02X", radio.rds.ECC); // Format ECC as uppercase 2-digit hex
ECC = String(eccBuffer);
}
// Handle ECC, PTY, TA, TP, and Stereo flag
String TA = radio.rds.hasTA ? "" : " ";
String TP = radio.rds.hasTP ? "" : " ";
String Stereo = radio.getStereoStatus() ? "" : " ";
String pty = String(radio.rds.stationTypeCode);
String ECC = "--";
if (radio.rds.hasECC) {
char eccBuffer[3]; // Buffer to hold 2-digit hex value + null terminator
snprintf(eccBuffer, sizeof(eccBuffer), "%02X", radio.rds.ECC); // Format ECC as uppercase 2-digit hex
ECC = String(eccBuffer);
}
// Construct the CSV row data
String row = currentDateTime + "," +

View File

@@ -8,7 +8,8 @@ void doTouchEvent(uint16_t x, uint16_t y) {
if (seek) radio.setUnMute();
seek = false;
if (scandxmode) {
cancelDXScan();
ShowFreq(5);
ShowFreq(0);
} else {
if (menu) {
if (x > 0 && x < 320 && y > 0 && y < 33) {

View File

@@ -57,5 +57,6 @@ extern void updateiMS();
extern void updateEQ();
extern void DataPrint(String string);
extern void BuildAFScreen();
extern void ShowFreq(int mode);
#endif