Merge branch 'main' into New_Model_DP_666
This commit is contained in:
+10
-8
@@ -825,8 +825,8 @@ void setup() {
|
|||||||
Wire.endTransmission();
|
Wire.endTransmission();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tunemode == TUNE_MEM) DoMemoryPosTune();
|
|
||||||
SelectBand();
|
SelectBand();
|
||||||
|
if (tunemode == TUNE_MEM) DoMemoryPosTune();
|
||||||
|
|
||||||
setupmode = false;
|
setupmode = false;
|
||||||
|
|
||||||
@@ -1153,7 +1153,7 @@ void GetData() {
|
|||||||
ShowSignalLevel();
|
ShowSignalLevel();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!menu && (band < BAND_GAP || tunemode == TUNE_MEM)) showPS();
|
if (!menu) showPS();
|
||||||
|
|
||||||
if (band < BAND_GAP && !menu) {
|
if (band < BAND_GAP && !menu) {
|
||||||
if (advancedRDS && !afscreen && !screenmute) ShowAdvancedRDS();
|
if (advancedRDS && !afscreen && !screenmute) ShowAdvancedRDS();
|
||||||
@@ -2597,8 +2597,7 @@ void KeyUp() {
|
|||||||
if (!memorystore) {
|
if (!memorystore) {
|
||||||
DoMemoryPosTune();
|
DoMemoryPosTune();
|
||||||
} else {
|
} else {
|
||||||
if (!IsStationEmpty()) memoryposstatus = MEM_EXIST;
|
if (!IsStationEmpty()) memoryposstatus = MEM_EXIST; else memoryposstatus = MEM_DARK;
|
||||||
else memoryposstatus = MEM_NORMAL;
|
|
||||||
}
|
}
|
||||||
ShowMemoryPos();
|
ShowMemoryPos();
|
||||||
EEPROM.writeByte(EE_BYTE_MEMORYPOS, memorypos);
|
EEPROM.writeByte(EE_BYTE_MEMORYPOS, memorypos);
|
||||||
@@ -2664,8 +2663,7 @@ void KeyDown() {
|
|||||||
if (!memorystore) {
|
if (!memorystore) {
|
||||||
DoMemoryPosTune();
|
DoMemoryPosTune();
|
||||||
} else {
|
} else {
|
||||||
if (!IsStationEmpty()) memoryposstatus = MEM_EXIST;
|
if (!IsStationEmpty()) memoryposstatus = MEM_EXIST; else memoryposstatus = MEM_DARK;
|
||||||
else memoryposstatus = MEM_NORMAL;
|
|
||||||
}
|
}
|
||||||
ShowMemoryPos();
|
ShowMemoryPos();
|
||||||
EEPROM.writeByte(EE_BYTE_MEMORYPOS, memorypos);
|
EEPROM.writeByte(EE_BYTE_MEMORYPOS, memorypos);
|
||||||
@@ -2719,6 +2717,11 @@ void ShowMemoryPos() {
|
|||||||
if (tunemode == TUNE_MEM) {
|
if (tunemode == TUNE_MEM) {
|
||||||
int memposcolor = 0;
|
int memposcolor = 0;
|
||||||
int memposcolorsmooth = 0;
|
int memposcolorsmooth = 0;
|
||||||
|
|
||||||
|
if (!memorystore) {
|
||||||
|
if (IsStationEmpty()) memoryposstatus = MEM_DARK; else memoryposstatus = MEM_NORMAL;
|
||||||
|
}
|
||||||
|
|
||||||
switch (memoryposstatus) {
|
switch (memoryposstatus) {
|
||||||
case MEM_DARK:
|
case MEM_DARK:
|
||||||
memposcolor = InsignificantColor;
|
memposcolor = InsignificantColor;
|
||||||
@@ -3597,7 +3600,6 @@ void doTuneMode() {
|
|||||||
}
|
}
|
||||||
ShowTuneMode();
|
ShowTuneMode();
|
||||||
ShowMemoryPos();
|
ShowMemoryPos();
|
||||||
ShowFreq(0);
|
|
||||||
EEPROM.writeByte(EE_BYTE_TUNEMODE, tunemode);
|
EEPROM.writeByte(EE_BYTE_TUNEMODE, tunemode);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
}
|
}
|
||||||
@@ -4122,7 +4124,7 @@ void DefaultSettings(byte userhardwaremodel) {
|
|||||||
EEPROM.writeByte(EE_BYTE_WIFI, 0);
|
EEPROM.writeByte(EE_BYTE_WIFI, 0);
|
||||||
EEPROM.writeByte(EE_BYTE_SUBNETCLIENT, 1);
|
EEPROM.writeByte(EE_BYTE_SUBNETCLIENT, 1);
|
||||||
EEPROM.writeByte(EE_BYTE_SHOWSWMIBAND, 1);
|
EEPROM.writeByte(EE_BYTE_SHOWSWMIBAND, 1);
|
||||||
EEPROM.writeByte(EE_BYTE_RDS_FILTER, 0);
|
EEPROM.writeByte(EE_BYTE_RDS_FILTER, 1);
|
||||||
EEPROM.writeByte(EE_BYTE_RDS_PIERRORS, 0);
|
EEPROM.writeByte(EE_BYTE_RDS_PIERRORS, 0);
|
||||||
if (userhardwaremodel == BASE_ILI9341) EEPROM.writeUInt(EE_UINT16_FREQUENCY_LW, 180); else EEPROM.writeUInt(EE_UINT16_FREQUENCY_LW, 164);
|
if (userhardwaremodel == BASE_ILI9341) EEPROM.writeUInt(EE_UINT16_FREQUENCY_LW, 180); else EEPROM.writeUInt(EE_UINT16_FREQUENCY_LW, 164);
|
||||||
if (userhardwaremodel == BASE_ILI9341) EEPROM.writeUInt(EE_UINT16_FREQUENCY_MW, 540); else EEPROM.writeUInt(EE_UINT16_FREQUENCY_MW, 639);
|
if (userhardwaremodel == BASE_ILI9341) EEPROM.writeUInt(EE_UINT16_FREQUENCY_MW, 540); else EEPROM.writeUInt(EE_UINT16_FREQUENCY_MW, 639);
|
||||||
|
|||||||
+12
-6
@@ -378,7 +378,7 @@ bool TEF6686::getStatusAM(int16_t &level, uint16_t &noise, uint16_t &cochannel,
|
|||||||
|
|
||||||
void TEF6686::readRDS(byte showrdserrors) {
|
void TEF6686::readRDS(byte showrdserrors) {
|
||||||
uint8_t offset;
|
uint8_t offset;
|
||||||
if (rds.filter || ps_process) {
|
if (rds.filter && ps_process) {
|
||||||
devTEF_Radio_Get_RDS_Status(&rds.rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr);
|
devTEF_Radio_Get_RDS_Status(&rds.rdsStat, &rds.rdsA, &rds.rdsB, &rds.rdsC, &rds.rdsD, &rds.rdsErr);
|
||||||
} else {
|
} else {
|
||||||
if (millis() >= rdstimer + 87) {
|
if (millis() >= rdstimer + 87) {
|
||||||
@@ -407,8 +407,8 @@ void TEF6686::readRDS(byte showrdserrors) {
|
|||||||
rdsCerrorThreshold = (((rds.rdsErr >> 10) & 0x03) > showrdserrors);
|
rdsCerrorThreshold = (((rds.rdsErr >> 10) & 0x03) > showrdserrors);
|
||||||
rdsDerrorThreshold = (((rds.rdsErr >> 8) & 0x03) > showrdserrors);
|
rdsDerrorThreshold = (((rds.rdsErr >> 8) & 0x03) > showrdserrors);
|
||||||
|
|
||||||
if (bitRead(rds.rdsStat, 9)) { // We have all data to decode... let's go...
|
if (bitRead(rds.rdsStat, 9) && (rds.rdsA != previous_rdsA || rds.rdsB != previous_rdsB || rds.rdsC != previous_rdsC || rds.rdsD != previous_rdsD)) {
|
||||||
rds.rdsAerror = (((rds.rdsErr >> 14) & 0x03) > 1);
|
rds.rdsAerror = (((rds.rdsErr >> 14) & 0x03) > 1); // We have all data to decode... let's go...
|
||||||
rds.rdsBerror = (((rds.rdsErr >> 12) & 0x03) > 1);
|
rds.rdsBerror = (((rds.rdsErr >> 12) & 0x03) > 1);
|
||||||
rds.rdsCerror = (((rds.rdsErr >> 10) & 0x03) > 1);
|
rds.rdsCerror = (((rds.rdsErr >> 10) & 0x03) > 1);
|
||||||
rds.rdsDerror = (((rds.rdsErr >> 8) & 0x03) > 1);
|
rds.rdsDerror = (((rds.rdsErr >> 8) & 0x03) > 1);
|
||||||
@@ -606,7 +606,7 @@ void TEF6686::readRDS(byte showrdserrors) {
|
|||||||
ps_buffer[(offset * 2) + 1] = rds.rdsD & 0xFF; // Second character of segment
|
ps_buffer[(offset * 2) + 1] = rds.rdsD & 0xFF; // Second character of segment
|
||||||
ps_buffer[8] = '\0'; // Endmarker
|
ps_buffer[8] = '\0'; // Endmarker
|
||||||
|
|
||||||
if (ps_process || !rds.fastps) {
|
if (ps_process || rds.fastps == 0) {
|
||||||
if (offset == 0) {
|
if (offset == 0) {
|
||||||
packet0 = true;
|
packet0 = true;
|
||||||
packet1 = false;
|
packet1 = false;
|
||||||
@@ -618,7 +618,7 @@ void TEF6686::readRDS(byte showrdserrors) {
|
|||||||
if (offset == 3) packet3 = true;
|
if (offset == 3) packet3 = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (packet0 && packet1 && packet2 && packet3 && (ps_process || !rds.fastps)) { // Last chars are received
|
if (packet0 && packet1 && packet2 && packet3 && (ps_process || (rds.fastps == 0 && rds.fastps != 2))) { // Last chars are received
|
||||||
if (strcmp(ps_buffer, ps_buffer2) == 0) { // When no difference between current and buffer, let's go...
|
if (strcmp(ps_buffer, ps_buffer2) == 0) { // When no difference between current and buffer, let's go...
|
||||||
ps_process = true;
|
ps_process = true;
|
||||||
RDScharConverter(ps_buffer2, PStext, sizeof(PStext) / sizeof(wchar_t), true); // Convert 8 bit ASCII to 16 bit ASCII
|
RDScharConverter(ps_buffer2, PStext, sizeof(PStext) / sizeof(wchar_t), true); // Convert 8 bit ASCII to 16 bit ASCII
|
||||||
@@ -631,7 +631,7 @@ void TEF6686::readRDS(byte showrdserrors) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ps_process && rds.fastps) { // Let's get 2 runs of 8 PS characters fast and without refresh
|
if ((!ps_process && rds.fastps > 0 && rds.fastps != 2) || rds.fastps == 2) { // Let's get 2 runs of 8 PS characters fast and without refresh
|
||||||
if (offset == 0) packet0 = true;
|
if (offset == 0) packet0 = true;
|
||||||
if (offset == 1) packet1 = true;
|
if (offset == 1) packet1 = true;
|
||||||
if (offset == 2) packet2 = true;
|
if (offset == 2) packet2 = true;
|
||||||
@@ -1372,6 +1372,7 @@ void TEF6686::readRDS(byte showrdserrors) {
|
|||||||
RDScharConverter(ptyn_buffer, PTYNtext, sizeof(PTYNtext) / sizeof(wchar_t), false); // Convert 8 bit ASCII to 16 bit ASCII
|
RDScharConverter(ptyn_buffer, PTYNtext, sizeof(PTYNtext) / sizeof(wchar_t), false); // Convert 8 bit ASCII to 16 bit ASCII
|
||||||
String utf8String = convertToUTF8(PTYNtext); // Convert RDS characterset to ASCII
|
String utf8String = convertToUTF8(PTYNtext); // Convert RDS characterset to ASCII
|
||||||
rds.PTYN = extractUTF8Substring(utf8String, 0, 8, false); // Make sure text is not longer than 8 chars
|
rds.PTYN = extractUTF8Substring(utf8String, 0, 8, false); // Make sure text is not longer than 8 chars
|
||||||
|
rds.hasPTYN = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
@@ -1639,6 +1640,10 @@ void TEF6686::readRDS(byte showrdserrors) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
previous_rdsA = rds.rdsA;
|
||||||
|
previous_rdsB = rds.rdsB;
|
||||||
|
previous_rdsC = rds.rdsC;
|
||||||
|
previous_rdsD = rds.rdsD;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1761,6 +1766,7 @@ void TEF6686::clearRDS (bool fullsearchrds) {
|
|||||||
rds.hasCT = false;
|
rds.hasCT = false;
|
||||||
rds.hasTMC = false;
|
rds.hasTMC = false;
|
||||||
rds.hasAID = false;
|
rds.hasAID = false;
|
||||||
|
rds.hasPTYN = false;
|
||||||
rds.hasLongPS = false;
|
rds.hasLongPS = false;
|
||||||
rds.hasRDSplus = false;
|
rds.hasRDSplus = false;
|
||||||
rds.hasDABAF = false;
|
rds.hasDABAF = false;
|
||||||
|
|||||||
+4
-5
@@ -582,6 +582,7 @@ typedef struct _rds_ {
|
|||||||
uint16_t aid[10];
|
uint16_t aid[10];
|
||||||
uint32_t dabaffreq;
|
uint32_t dabaffreq;
|
||||||
byte aid_counter;
|
byte aid_counter;
|
||||||
|
byte fastps;
|
||||||
int8_t offset;
|
int8_t offset;
|
||||||
unsigned int ECC;
|
unsigned int ECC;
|
||||||
unsigned int LIC;
|
unsigned int LIC;
|
||||||
@@ -611,6 +612,7 @@ typedef struct _rds_ {
|
|||||||
bool hasTMC;
|
bool hasTMC;
|
||||||
bool hasAF;
|
bool hasAF;
|
||||||
bool hasCT;
|
bool hasCT;
|
||||||
|
bool hasPTYN;
|
||||||
bool rtAB;
|
bool rtAB;
|
||||||
bool rtAB32;
|
bool rtAB32;
|
||||||
bool hasRDSplus;
|
bool hasRDSplus;
|
||||||
@@ -618,7 +620,6 @@ typedef struct _rds_ {
|
|||||||
bool rdsreset;
|
bool rdsreset;
|
||||||
bool pierrors;
|
bool pierrors;
|
||||||
bool sortaf;
|
bool sortaf;
|
||||||
bool fastps;
|
|
||||||
bool rtbuffer = true;
|
bool rtbuffer = true;
|
||||||
bool afreg;
|
bool afreg;
|
||||||
RdsPiBuffer piBuffer;
|
RdsPiBuffer piBuffer;
|
||||||
@@ -759,11 +760,9 @@ class TEF6686 {
|
|||||||
bool initab;
|
bool initab;
|
||||||
bool afinit;
|
bool afinit;
|
||||||
bool errorfreepi;
|
bool errorfreepi;
|
||||||
bool rdsAerrorThreshold;
|
bool rdsAerrorThreshold, rdsBerrorThreshold, rdsCerrorThreshold, rdsDerrorThreshold;
|
||||||
bool rdsBerrorThreshold;
|
|
||||||
bool rdsCerrorThreshold;
|
|
||||||
bool rdsDerrorThreshold;
|
|
||||||
bool packet0, packet1, packet2, packet3, packet0long, packet1long, packet2long, packet3long;
|
bool packet0, packet1, packet2, packet3, packet0long, packet1long, packet2long, packet3long;
|
||||||
|
uint16_t previous_rdsA, previous_rdsB, previous_rdsC, previous_rdsD;
|
||||||
bool afmethodBprobe;
|
bool afmethodBprobe;
|
||||||
bool eRTcoding;
|
bool eRTcoding;
|
||||||
uint16_t rdsCold;
|
uint16_t rdsCold;
|
||||||
|
|||||||
+28
-6
@@ -1327,7 +1327,12 @@ void ShowOneLine(byte position, byte item, bool selected) {
|
|||||||
FullLineSprite.drawString(removeNewline(myLanguage[language][203]), 6, 3);
|
FullLineSprite.drawString(removeNewline(myLanguage[language][203]), 6, 3);
|
||||||
FullLineSprite.setTextDatum(TR_DATUM);
|
FullLineSprite.setTextDatum(TR_DATUM);
|
||||||
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
FullLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false);
|
||||||
FullLineSprite.drawString((radio.rds.fastps ? myLanguage[language][42] : myLanguage[language][30]), 298, 3);
|
|
||||||
|
switch (radio.rds.fastps) {
|
||||||
|
case 0: FullLineSprite.drawString(myLanguage[language][30], 298, 3); break;
|
||||||
|
case 1: FullLineSprite.drawString(myLanguage[language][260], 298, 3); break;
|
||||||
|
case 2: FullLineSprite.drawString(myLanguage[language][261], 298, 3); break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FMSETTINGS:
|
case FMSETTINGS:
|
||||||
@@ -2212,9 +2217,15 @@ void MenuUp() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ITEM9:
|
case ITEM9:
|
||||||
radio.rds.fastps = !radio.rds.fastps;
|
radio.rds.fastps++;
|
||||||
|
if (radio.rds.fastps > 2) radio.rds.fastps = 0;
|
||||||
|
|
||||||
|
switch (radio.rds.fastps) {
|
||||||
|
case 0: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
||||||
|
case 1: OneBigLineSprite.drawString(myLanguage[language][260], 135, 0); break;
|
||||||
|
case 2: OneBigLineSprite.drawString(myLanguage[language][261], 135, 0); break;
|
||||||
|
}
|
||||||
|
|
||||||
OneBigLineSprite.drawString((radio.rds.fastps ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -3061,9 +3072,15 @@ void MenuDown() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ITEM9:
|
case ITEM9:
|
||||||
radio.rds.fastps = !radio.rds.fastps;
|
radio.rds.fastps--;
|
||||||
|
if (radio.rds.fastps > 2) radio.rds.fastps = 2;
|
||||||
|
|
||||||
|
switch (radio.rds.fastps) {
|
||||||
|
case 0: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
||||||
|
case 1: OneBigLineSprite.drawString(myLanguage[language][260], 135, 0); break;
|
||||||
|
case 2: OneBigLineSprite.drawString(myLanguage[language][261], 135, 0); break;
|
||||||
|
}
|
||||||
|
|
||||||
OneBigLineSprite.drawString((radio.rds.fastps ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -3921,7 +3938,12 @@ void DoMenu() {
|
|||||||
case ITEM9:
|
case ITEM9:
|
||||||
Infoboxprint(myLanguage[language][203]);
|
Infoboxprint(myLanguage[language][203]);
|
||||||
|
|
||||||
OneBigLineSprite.drawString((radio.rds.fastps ? myLanguage[language][42] : myLanguage[language][30]), 135, 0);
|
switch (radio.rds.fastps) {
|
||||||
|
case 0: OneBigLineSprite.drawString(myLanguage[language][30], 135, 0); break;
|
||||||
|
case 1: OneBigLineSprite.drawString(myLanguage[language][260], 135, 0); break;
|
||||||
|
case 2: OneBigLineSprite.drawString(myLanguage[language][261], 135, 0); break;
|
||||||
|
}
|
||||||
|
|
||||||
OneBigLineSprite.pushSprite(24, 118);
|
OneBigLineSprite.pushSprite(24, 118);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
+612
-576
File diff suppressed because it is too large
Load Diff
+3
-3
@@ -48,11 +48,11 @@ void ShowAdvancedRDS() {
|
|||||||
|
|
||||||
if (ptynold != radio.rds.PTYN || rdsreset) {
|
if (ptynold != radio.rds.PTYN || rdsreset) {
|
||||||
if (!screenmute) {
|
if (!screenmute) {
|
||||||
if (ptynold != "PTYN N/A") {
|
if (ptynold != "PTYN N/A" || radio.rds.hasPTYN) {
|
||||||
tftPrint(-1, "PTYN N/A", 216, 109, BackgroundColor, BackgroundColor, 16);
|
tftPrint(-1, "PTYN N/A", 216, 109, BackgroundColor, BackgroundColor, 16);
|
||||||
tftPrint(-1, ptynold, 216, 109, BackgroundColor, BackgroundColor, 16);
|
tftPrint(-1, ptynold, 216, 109, BackgroundColor, BackgroundColor, 16);
|
||||||
}
|
}
|
||||||
if (radio.rds.PTYN.length() == 0) radio.rds.PTYN = "PTYN N/A";
|
if (!radio.rds.hasPTYN) radio.rds.PTYN = "PTYN N/A";
|
||||||
tftPrint(-1, String(radio.rds.PTYN), 216, 109, RDSColor, RDSColorSmooth, 16);
|
tftPrint(-1, String(radio.rds.PTYN), 216, 109, RDSColor, RDSColorSmooth, 16);
|
||||||
ptynold = radio.rds.PTYN;
|
ptynold = radio.rds.PTYN;
|
||||||
}
|
}
|
||||||
@@ -723,7 +723,7 @@ void showPS() {
|
|||||||
} else {
|
} else {
|
||||||
xPos5 = 0;
|
xPos5 = 0;
|
||||||
PSSprite.fillSprite(BackgroundColor);
|
PSSprite.fillSprite(BackgroundColor);
|
||||||
if (!RDSstatus) PSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false); else PSSprite.setTextColor(RDSColor, RDSColorSmooth, false);
|
if (!RDSstatus || band > BAND_GAP) PSSprite.setTextColor(RDSDropoutColor, RDSDropoutColorSmooth, false); else PSSprite.setTextColor(RDSColor, RDSColorSmooth, false);
|
||||||
PSSprite.drawString(radio.rds.stationName, 0, 0);
|
PSSprite.drawString(radio.rds.stationName, 0, 0);
|
||||||
}
|
}
|
||||||
if (advancedRDS) PSSprite.pushSprite(36, 74); else PSSprite.pushSprite(36, 187);
|
if (advancedRDS) PSSprite.pushSprite(36, 74); else PSSprite.pushSprite(36, 187);
|
||||||
|
|||||||
Reference in New Issue
Block a user