diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 595dd93..0e72d32 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -238,6 +238,7 @@ int BWAutoColorSmooth; int BWOld; int bwupdatetimer; int DeEmphasis; +int DisplayedSegments; int ForceMono; int FrameColor; int FreqColor; @@ -385,6 +386,8 @@ unsigned long eonticker; unsigned long eontickerhold; unsigned long flashingtimer; unsigned long lowsignaltimer; +unsigned long ModulationpreviousMillis; +unsigned long ModulationpeakPreviousMillis; unsigned long peakholdmillis; unsigned long pslongticker; unsigned long pslongtickerhold; @@ -1143,7 +1146,7 @@ void loop() { WakeToSleep(REVERSE); while (digitalRead(BWBUTTON) == LOW); } else { - if (!screenmute && !afscreen) BWButtonPress(); + if (!screenmute && !afscreen) BWButtonPress(); } } @@ -3287,24 +3290,38 @@ void ShowModLevel() { MStatus = 0; MStatusold = 1; } + segments = map(MStatus, 0, 120, 0, 94); - if (segments > peakholdold) { - peakholdold = segments; + if (segments < DisplayedSegments && (millis() - ModulationpreviousMillis >= 20)) { + DisplayedSegments = max(DisplayedSegments - 3, segments); + ModulationpreviousMillis = millis(); + } else if (segments > DisplayedSegments) { + DisplayedSegments = segments; + } + + if (DisplayedSegments > peakholdold) { + peakholdold = DisplayedSegments; peakholdmillis = millis(); } - tft.fillRect(16, 133, 2 * constrain(segments, 0, 54), 6, ModBarInsignificantColor); - tft.fillRect(16 + 2 * 54, 133, 2 * (constrain(segments, 54, 94) - 54), 6, ModBarSignificantColor); - tft.fillRect(16 + 2 * constrain(segments, 0, 94), 133, 2 * (94 - constrain(segments, 0, 94)), 6, GreyoutColor); + if (millis() - peakholdmillis >= 1000) { + if (millis() - ModulationpeakPreviousMillis >= 20) { + peakholdold = max(peakholdold - 3, DisplayedSegments); + ModulationpeakPreviousMillis = millis(); + } + } + + tft.fillRect(16, 133, 2 * 94, 6, GreyoutColor); + tft.fillRect(16, 133, 2 * constrain(DisplayedSegments, 0, 54), 6, ModBarInsignificantColor); + tft.fillRect(16 + 2 * 54, 133, 2 * (constrain(DisplayedSegments, 54, 94) - 54), 6, ModBarSignificantColor); + tft.fillRect(16 + 2 * constrain(DisplayedSegments, 0, 94), 133, 2 * (94 - constrain(DisplayedSegments, 0, 94)), 6, GreyoutColor); int peakHoldPosition = 16 + 2 * constrain(peakholdold, 0, 94); tft.fillRect(peakHoldPosition, 133, 2, 6, (MStatus > 80) ? ModBarSignificantColor : PrimaryColor); - if (millis() - peakholdmillis >= 1000) { + if (millis() - peakholdmillis >= 1000 && peakholdold == DisplayedSegments) { tft.fillRect(peakHoldPosition, 133, 2, 6, GreyoutColor); - peakholdold = segments; - peakholdmillis = millis(); } } } @@ -3914,7 +3931,6 @@ void TuneUp() { frequency_MW = frequency_AM; } else if (band == BAND_SW) { frequency_AM += temp; - Serial.println(String(frequency_AM) + "\t" + String(SWHighEdgeSet) + "\t" + String(temp)); if (frequency_AM > SWHighEdgeSet) { frequency_AM = SWLowEdgeSet; if (edgebeep) EdgeBeeper(); @@ -4114,10 +4130,10 @@ void read_encoder() { encval += enc_states[( old_AB & 0x0f )]; if (optenc) { - if (encval > 3) { + if (encval > 4) { if (rotarymode) rotary = -1; else rotary = 1; encval = 0; - } else if (encval < -3) { + } else if (encval < -4) { if (rotarymode) rotary = 1; else rotary = -1; encval = 0; } diff --git a/src/comms.cpp b/src/comms.cpp index cc09bd2..a05af01 100644 --- a/src/comms.cpp +++ b/src/comms.cpp @@ -49,6 +49,7 @@ void Communication() { if ((stlfreq.toInt()) / 1000 > 144 && (stlfreq.toInt()) / 1000 < 27000) { if (afscreen || advancedRDS) { BuildDisplay(); + SelectBand(); ScreensaverTimerReopen(); } unsigned int tempfreq = (stlfreq.toInt()) / 1000; @@ -374,7 +375,10 @@ void XDRGTKRoutine() { break; case 'C': - if (afscreen || advancedRDS) BuildDisplay(); + if (afscreen || advancedRDS) { + BuildDisplay(); + SelectBand(); + } byte scanmethod; scanmethod = atol(buff + 1); if (scanmethod == 1) { @@ -526,7 +530,10 @@ void XDRGTKRoutine() { if (freqtemp >= LWLowEdgeSet && freqtemp <= LWHighEdgeSet) { frequency_LW = freqtemp; frequency_AM = freqtemp; - if (afscreen || advancedRDS) BuildDisplay(); + if (afscreen || advancedRDS) { + BuildDisplay(); + SelectBand(); + } if (band != BAND_LW) { band = BAND_LW; SelectBand(); @@ -537,7 +544,10 @@ void XDRGTKRoutine() { if (freqtemp >= MWLowEdgeSet && freqtemp <= MWHighEdgeSet) { frequency_AM = freqtemp; frequency_MW = freqtemp; - if (afscreen || advancedRDS) BuildDisplay(); + if (afscreen || advancedRDS) { + BuildDisplay(); + SelectBand(); + } if (band != BAND_MW) { band = BAND_MW; SelectBand(); @@ -548,7 +558,10 @@ void XDRGTKRoutine() { if (freqtemp >= SWLowEdgeSet && freqtemp <= SWHighEdgeSet) { frequency_SW = freqtemp; frequency_AM = freqtemp; - if (afscreen || advancedRDS) BuildDisplay(); + if (afscreen || advancedRDS) { + BuildDisplay(); + SelectBand(); + } if (band != BAND_SW) { band = BAND_SW; SelectBand(); @@ -652,6 +665,7 @@ void XDRGTKRoutine() { DataPrint("\n"); radio.SetFreq(frequencyold); BuildDisplay(); + SelectBand(); radio.setFMABandw(); BWset = 0; } diff --git a/src/constants.h b/src/constants.h index 892393e..3692578 100644 --- a/src/constants.h +++ b/src/constants.h @@ -45,7 +45,7 @@ #define FREQ_FM_STEP_200K 20 #define FREQ_LW_LOW_EDGE_MIN 144 -#define FREQ_LW_HIGH_EDGE_MAX 519 +#define FREQ_LW_HIGH_EDGE_MAX 513 #define FREQ_MW_LOW_EDGE_MIN_9K 522 #define FREQ_MW_LOW_EDGE_MIN_10K 520 #define FREQ_MW_HIGH_EDGE_MAX_9K 1791 diff --git a/src/language.h b/src/language.h index 51ed8ee..a6e7b0d 100644 --- a/src/language.h +++ b/src/language.h @@ -1,7 +1,7 @@ #ifndef LANGUAGE_H #define LANGUAGE_H -#define VERSION "v2.10 RC10" +#define VERSION "v2.10 RC11" // [number of languages][number of texts] @@ -2192,9 +2192,9 @@ static const char* const myLanguage[18][263] PROGMEM = { "Modulációmérő", // 63 "AM Zajszűrő", // 64 "FM Zajszűrő", // 65 - "Alapértelmezettek betöltve", // 66 + "Alapértelmezettek\nbetöltve", // 66 "Audió kimenet", // 67 - "Hangolás\nengedélyezése\nképernyővédő közben", // 68 + "Hangolás\nképernyővédővel", // 68 "Inverz kijelző", // 69 "A szoftverről", // 70 "Fő kód:", // 71 @@ -2217,7 +2217,7 @@ static const char* const myLanguage[18][263] PROGMEM = { "Nincs elérhető EON", // 88 "Nincs elérhető RT+", // 89 "FM alap. lépésköz", // 90 - "Kijelzővédő", // 91 + "Képernyővédő", // 91 "Mp", // 92 "BAND A BEZÁRÁSHOZ", // 93 "1% fényerő", // 94 @@ -2233,7 +2233,7 @@ static const char* const myLanguage[18][263] PROGMEM = { "SW", // 104 "FM", // 105 "OIRT", // 106 - "Forgatás kikapcsolt képernyővel", // 107 + "Hangolás kikapcsolt képernyővel", // 107 "Modellválasztó", // 108 "Alap (ILI9341)", // 109 "Hordozható (ILI9341)", // 110 @@ -2333,14 +2333,14 @@ static const char* const myLanguage[18][263] PROGMEM = { "Alap", // 204 "Képernyő némítása\nXDRGTK kapcsolaton", // 205 "FMSI sztereó\njavítás", // 206 - "Funkció csak a\nTEF6687/6689\nkészülékeken érhető el!", // 207 - "Funkció nem elérhető\na kiválasztott kinézetben!", // 208 - "Memóriacsatornák keresésének elkezdése", // 209 - "Memóriacsatornák keresésének befejezése", // 210 + "Funkció csak a\nTEF6687/6689-hez!", // 207 + "Funkció nem elérhető\nebben a kinézetben!", // 208 + "Memóriacsatornák\nkeresésének elkezdése", // 209 + "Memóriacsatornák\nkeresésének befejezése", // 210 "Várakozási idő", // 211 "DX keresés indítása", // 212 "FM DX Opciók", // 213 - "Megszakítva!\nA kezdőcsatorna\nkihagyottnak van jelölve.", // 214 + "Megszakítva! A kezdőcsatorna\nkihagyottnak van jelölve.", // 214 "Auto AF rendezés", // 215 "Memóriacsatornák", // 216 "Kizárása", // 217 @@ -2387,7 +2387,8 @@ static const char* const myLanguage[18][263] PROGMEM = { "Riasztás Teszt", // 258 "Riasztás!!!", // 259 "Kezdeti", // 260 - "Mindig" //261 + "Mindig", //261 + "Óra mutatása" // 262 }, { "Français", // French @@ -4775,4 +4776,4 @@ static const char* const myLanguage[18][263] PROGMEM = { "Mostrar relógio" // 262 } }; -#endif \ No newline at end of file +#endif