Added PTYN to API
This commit is contained in:
+1
-1
@@ -1690,7 +1690,7 @@ void ButtonPress() {
|
|||||||
tft.setTextColor(TFT_WHITE);
|
tft.setTextColor(TFT_WHITE);
|
||||||
tft.drawCentreString(myLanguage[language][68], 155, 70, GFXFF);
|
tft.drawCentreString(myLanguage[language][68], 155, 70, GFXFF);
|
||||||
tft.setTextColor(TFT_YELLOW);
|
tft.setTextColor(TFT_YELLOW);
|
||||||
if (specialstepOIRT) tft.drawCentreString("ON", 155, 110, GFXFF); else tft.drawCentreString("OFF", 155, 110, GFXFF);
|
if (specialstepOIRT) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
+22
-4
@@ -306,7 +306,7 @@ void TEF6686::readRDS(bool showrdserrors)
|
|||||||
|
|
||||||
switch (rds.rdsB >> 11) {
|
switch (rds.rdsB >> 11) {
|
||||||
case RDS_GROUP_0A:
|
case RDS_GROUP_0A:
|
||||||
case RDS_GROUP_0B: {
|
{
|
||||||
|
|
||||||
//PS decoder
|
//PS decoder
|
||||||
if (showrdserrors || rds.correct) {
|
if (showrdserrors || rds.correct) {
|
||||||
@@ -417,6 +417,7 @@ void TEF6686::readRDS(bool showrdserrors)
|
|||||||
case RDS_GROUP_4A:
|
case RDS_GROUP_4A:
|
||||||
case RDS_GROUP_4B: {
|
case RDS_GROUP_4B: {
|
||||||
if (rds.correct) {
|
if (rds.correct) {
|
||||||
|
// CT
|
||||||
uint32_t mjd;
|
uint32_t mjd;
|
||||||
rds.hasCT = true;
|
rds.hasCT = true;
|
||||||
mjd = (rds.rdsB & 0x03);
|
mjd = (rds.rdsB & 0x03);
|
||||||
@@ -446,7 +447,21 @@ void TEF6686::readRDS(bool showrdserrors)
|
|||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case RDS_GROUP_10A:
|
case RDS_GROUP_10A: {
|
||||||
|
if (rds.correct) {
|
||||||
|
// PTYN
|
||||||
|
offset = bitRead(rds.rdsB, 0); // Get char offset
|
||||||
|
|
||||||
|
ptyn_buffer[(offset * 4) + 0] = rds.rdsC >> 8; // Get position 1 and 5
|
||||||
|
ptyn_buffer[(offset * 4) + 1] = rds.rdsC & 0xFF; // Get position 2 and 6
|
||||||
|
ptyn_buffer[(offset * 4) + 2] = rds.rdsD >> 8; // Get position 3 and 7
|
||||||
|
ptyn_buffer[(offset * 4) + 3] = rds.rdsD & 0xFF; // Get position 4 and 8
|
||||||
|
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
|
||||||
|
rds.PTYN = extractUTF8Substring(utf8String, 0, 8, false); // Make sure text is not longer than 8 chars
|
||||||
|
}
|
||||||
|
} break;
|
||||||
|
|
||||||
case RDS_GROUP_10B:
|
case RDS_GROUP_10B:
|
||||||
case RDS_GROUP_11A:
|
case RDS_GROUP_11A:
|
||||||
case RDS_GROUP_11B:
|
case RDS_GROUP_11B:
|
||||||
@@ -541,7 +556,8 @@ void TEF6686::readRDS(bool showrdserrors)
|
|||||||
|
|
||||||
case RDS_GROUP_14A: {
|
case RDS_GROUP_14A: {
|
||||||
if (rds.correct) rds.hasEON = true; // Group is there, so we have EON
|
if (rds.correct) rds.hasEON = true; // Group is there, so we have EON
|
||||||
} break;
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rdsBprevious = rds.rdsB;
|
rdsBprevious = rds.rdsB;
|
||||||
@@ -569,6 +585,8 @@ void TEF6686::clearRDS (bool fullsearchrds)
|
|||||||
for (i = 0; i < 9; i++) {
|
for (i = 0; i < 9; i++) {
|
||||||
ps_buffer[i] = 0;
|
ps_buffer[i] = 0;
|
||||||
PStext[i] = L'\0';
|
PStext[i] = L'\0';
|
||||||
|
ptyn_buffer[i] = 0;
|
||||||
|
PTYNtext[i] = L'\0';
|
||||||
}
|
}
|
||||||
for (i = 0; i < 65; i++) rt_buffer[i] = 0;
|
for (i = 0; i < 65; i++) rt_buffer[i] = 0;
|
||||||
for (i = 0; i < 18; i++) rds.stationType[i] = 0;
|
for (i = 0; i < 18; i++) rds.stationType[i] = 0;
|
||||||
@@ -635,7 +653,7 @@ String TEF6686::convertToUTF8(const wchar_t* input) {
|
|||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
String TEF6686::extractUTF8Substring(const String& utf8String, size_t start, size_t length, bool under) {
|
String TEF6686::extractUTF8Substring(const String & utf8String, size_t start, size_t length, bool under) {
|
||||||
String substring;
|
String substring;
|
||||||
size_t utf8Length = utf8String.length();
|
size_t utf8Length = utf8String.length();
|
||||||
size_t utf8Index = 0;
|
size_t utf8Index = 0;
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ typedef struct _rds_ {
|
|||||||
String RTTitle;
|
String RTTitle;
|
||||||
String RTHost;
|
String RTHost;
|
||||||
String RTEvent;
|
String RTEvent;
|
||||||
|
String PTYN;
|
||||||
char stationType[18];
|
char stationType[18];
|
||||||
char picode[6];
|
char picode[6];
|
||||||
uint16_t hours, minutes, days, months, years, offsetplusmin, rdsA, rdsB, rdsC, rdsD, rdsErr;
|
uint16_t hours, minutes, days, months, years, offsetplusmin, rdsA, rdsB, rdsC, rdsD, rdsErr;
|
||||||
@@ -189,6 +190,7 @@ class TEF6686 {
|
|||||||
String extractUTF8Substring(const String& utf8String, size_t start, size_t length, bool under);
|
String extractUTF8Substring(const String& utf8String, size_t start, size_t length, bool under);
|
||||||
char ps_buffer[9];
|
char ps_buffer[9];
|
||||||
char ps_buffer2[9];
|
char ps_buffer2[9];
|
||||||
|
char ptyn_buffer[9];
|
||||||
bool ps_process;
|
bool ps_process;
|
||||||
bool rt_process;
|
bool rt_process;
|
||||||
char rt_buffer[65];
|
char rt_buffer[65];
|
||||||
@@ -203,6 +205,7 @@ class TEF6686 {
|
|||||||
uint16_t rdsDprevious;
|
uint16_t rdsDprevious;
|
||||||
bool rtABold;
|
bool rtABold;
|
||||||
wchar_t PStext[9] = L"";
|
wchar_t PStext[9] = L"";
|
||||||
|
wchar_t PTYNtext[9] = L"";
|
||||||
byte ps_counter;
|
byte ps_counter;
|
||||||
char musicArtist[45];
|
char musicArtist[45];
|
||||||
char musicTitle[45];
|
char musicTitle[45];
|
||||||
|
|||||||
Reference in New Issue
Block a user