Another attempt to mask special characters in RDS

Fixed signallevel shown in menu edgebeep
This commit is contained in:
Sjef Verhoeven PE5PVB
2023-06-10 20:13:39 +02:00
parent 58a8dac62f
commit 9ee0a102c7
3 changed files with 18 additions and 17 deletions

View File

@@ -11,6 +11,7 @@
#define FONT24 &Aura2CondensedPro_Regular24pt7b #define FONT24 &Aura2CondensedPro_Regular24pt7b
#define FONT14 &Aura2CondensedPro_Regular14pt8b #define FONT14 &Aura2CondensedPro_Regular14pt8b
#define FONT7 &Aura2CondensedPro_Light7pt8b #define FONT7 &Aura2CondensedPro_Light7pt8b
#define TFT_GREYOUT 0x38E7 #define TFT_GREYOUT 0x38E7
#define ROTARY_PIN_A 34 #define ROTARY_PIN_A 34
#define ROTARY_PIN_B 36 #define ROTARY_PIN_B 36
@@ -479,7 +480,7 @@ void loop() {
XDRGTKRoutine(); XDRGTKRoutine();
if (menu == true && menuopen == true && menuoption == 110) { if (menu == true && menuopen == true && menupage == 1 && menuoption == 110) {
if (band == 0) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus); if (band == 0) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus);
if (millis() >= lowsignaltimer + 500 || change2 == true) { if (millis() >= lowsignaltimer + 500 || change2 == true) {
lowsignaltimer = millis(); lowsignaltimer = millis();
@@ -1206,7 +1207,6 @@ void KeyUp() {
if (region == 0) region = 1; else region = 0; if (region == 0) region = 1; else region = 0;
if (regionold == 0) tft.drawCentreString(myLanguage[language][47], 155, 110, GFXFF); if (regionold == 0) tft.drawCentreString(myLanguage[language][47], 155, 110, GFXFF);
if (regionold == 1) tft.drawCentreString(myLanguage[language][48], 155, 110, GFXFF); if (regionold == 1) tft.drawCentreString(myLanguage[language][48], 155, 110, GFXFF);
if (edgebeep) edgebeep = false; else edgebeep = true;
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
if (region == 0) tft.drawCentreString(myLanguage[language][47], 155, 110, GFXFF); if (region == 0) tft.drawCentreString(myLanguage[language][47], 155, 110, GFXFF);
if (region == 1) tft.drawCentreString(myLanguage[language][48], 155, 110, GFXFF); if (region == 1) tft.drawCentreString(myLanguage[language][48], 155, 110, GFXFF);
@@ -1437,7 +1437,6 @@ void KeyDown() {
if (region == 0) region = 1; else region = 0; if (region == 0) region = 1; else region = 0;
if (regionold == 0) tft.drawCentreString(myLanguage[language][47], 155, 110, GFXFF); if (regionold == 0) tft.drawCentreString(myLanguage[language][47], 155, 110, GFXFF);
if (regionold == 1) tft.drawCentreString(myLanguage[language][48], 155, 110, GFXFF); if (regionold == 1) tft.drawCentreString(myLanguage[language][48], 155, 110, GFXFF);
if (edgebeep) edgebeep = false; else edgebeep = true;
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
if (region == 0) tft.drawCentreString(myLanguage[language][47], 155, 110, GFXFF); if (region == 0) tft.drawCentreString(myLanguage[language][47], 155, 110, GFXFF);
if (region == 1) tft.drawCentreString(myLanguage[language][48], 155, 110, GFXFF); if (region == 1) tft.drawCentreString(myLanguage[language][48], 155, 110, GFXFF);

View File

@@ -381,11 +381,11 @@ bool TEF6686::readRDS(bool showrdserrors)
rt_buffer[offset + 1] = EBU_converter(rds.rdsC & 0xff); rt_buffer[offset + 1] = EBU_converter(rds.rdsC & 0xff);
rt_buffer[offset + 2] = EBU_converter(rds.rdsD >> 8); rt_buffer[offset + 2] = EBU_converter(rds.rdsD >> 8);
rt_buffer[offset + 3] = EBU_converter(rds.rdsD & 0xff); rt_buffer[offset + 3] = EBU_converter(rds.rdsD & 0xff);
if (offset > offsetold) offsetold = offset; if (offset > offsetold) offsetold = offset;
if (offset == offsetold) { if (offset == offsetold) {
strcpy(stationTextBuffer, rt_buffer); strcpy(stationTextBuffer, rt_buffer);
for (int i = 0; i < 64; i++) stationTextBuffer[i] = EBU_converter(stationTextBuffer[i]);
if (rt_timer < 64) { if (rt_timer < 64) {
strcpy(rds.stationText, stationTextBuffer); strcpy(rds.stationText, stationTextBuffer);
rt_timer++; rt_timer++;
@@ -512,21 +512,23 @@ bool TEF6686::readRDS(bool showrdserrors)
return rdsDataReady; return rdsDataReady;
} }
uint16_t TEF6686::EBU_converter (uint8_t src) char TEF6686::EBU_converter (uint8_t src)
{ {
switch (src) switch (src)
{ {
case 0xe4: return 0x61; break; case 0x91: return 0x69; break; // ï
case 0xc4: return 0x41; break; case 0x93: return 0x65; break; // ë
case 0xeb: return 0x65; break; case 0x95: return 0x69; break; // ï
case 0xcb: return 0x45; break; case 0x97: return 0x6f; break; // ö
case 0xfc: return 0x75; break; case 0x99: return 0x75; break; // ü
case 0xdc: return 0x55; break; case 0xd1: return 0x41; break; // Ï
case 0xef: return 0x69; break; case 0xd3: return 0x45; break; // Ë
case 0xcf: return 0x49; break; case 0xd5: return 0x49; break; // Ï
case 0xf6: return 0x6f; break; case 0xd7: return 0x4f; break; // Ö
case 0xd6: return 0x4f; break; case 0xd9: return 0x55; break; // Ü
default: return src; break; case 0x20: return 0x20; break; // SPACE
case 0x30 ... 0x7d: return src; break;
default: return 0x20; break;
} }
} }

View File

@@ -172,7 +172,7 @@ class TEF6686 {
bool mute; bool mute;
private: private:
uint16_t EBU_converter (uint8_t src); char EBU_converter (uint8_t src);
uint16_t rdsTimeOut = 32768; uint16_t rdsTimeOut = 32768;
uint8_t ps_process; uint8_t ps_process;
uint8_t rt_process; uint8_t rt_process;