You've already forked TEF6686_ESP32
RDS clock is now shown as it's transmitted via RDS (not the RTC time)
This commit is contained in:
@@ -497,7 +497,7 @@ void TEF6686::readRDS(byte showrdserrors)
|
|||||||
|
|
||||||
if (offset == 3 && ps_process && (!psincomplete || showrdserrors == 3)) { // Last chars are received
|
if (offset == 3 && ps_process && (!psincomplete || showrdserrors == 3)) { // Last chars are received
|
||||||
if (ps_buffer != ps_buffer2) { // When difference between old and new, let's go...
|
if (ps_buffer != ps_buffer2) { // When difference between old and new, let's go...
|
||||||
RDScharConverter(ps_buffer2, PStext, sizeof(PStext) / sizeof(wchar_t), true); // Convert 8 bit ASCII to 16 bit ASCII
|
RDScharConverter(ps_buffer, PStext, sizeof(PStext) / sizeof(wchar_t), true); // Convert 8 bit ASCII to 16 bit ASCII
|
||||||
String utf8String = convertToUTF8(PStext); // Convert RDS characterset to ASCII
|
String utf8String = convertToUTF8(PStext); // Convert RDS characterset to ASCII
|
||||||
rds.stationName = extractUTF8Substring(utf8String, 0, 8, true); // Make sure PS does not exceed 8 characters
|
rds.stationName = extractUTF8Substring(utf8String, 0, 8, true); // Make sure PS does not exceed 8 characters
|
||||||
}
|
}
|
||||||
@@ -733,13 +733,12 @@ void TEF6686::readRDS(byte showrdserrors)
|
|||||||
rds.hour = ((rds.rdsD >> 12) & 0x0f);
|
rds.hour = ((rds.rdsD >> 12) & 0x0f);
|
||||||
rds.hour += ((rds.rdsC << 4) & 0x0010);
|
rds.hour += ((rds.rdsC << 4) & 0x0010);
|
||||||
rds.minute = (rds.rdsD >> 6) & 0x3f;
|
rds.minute = (rds.rdsD >> 6) & 0x3f;
|
||||||
rds.offsetplusmin = bitRead(rds.rdsD, 5);
|
rds.offset = ((bitRead(rds.rdsD, 5) ? -rds.rdsD & 0x3f : rds.rdsD & 0x3f) / 2);
|
||||||
rds.offset = (rds.rdsD & 0x3f);
|
setTime(rds.hour, rds.minute, 0, rds.day, rds.month, rds.year);
|
||||||
if (!rds.hasCT) {
|
rds.hour += rds.offset;
|
||||||
rds.hasCT = true;
|
rds.hour = (((byte)rds.hour + 24) % 24);
|
||||||
setTime(rds.hour, rds.minute, 0, rds.day, rds.month, rds.year);
|
rds.hasCT = true;
|
||||||
adjustTime((((rds.offsetplusmin ? -rds.offset : rds.offset) / 2) * 3600));
|
Serial.println(rds.offset);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ typedef struct _rds_ {
|
|||||||
String PTYN;
|
String PTYN;
|
||||||
char stationType[18];
|
char stationType[18];
|
||||||
char picode[7];
|
char picode[7];
|
||||||
uint16_t hour, minute, day, month, year, offsetplusmin, rdsA, rdsB, rdsC, rdsD, rdsErr, correctPI, rdsplusTag1, rdsplusTag2;
|
uint16_t hour, minute, day, month, year, rdsA, rdsB, rdsC, rdsD, rdsErr, correctPI, rdsplusTag1, rdsplusTag2;
|
||||||
int8_t offset;
|
int8_t offset;
|
||||||
unsigned int ECC;
|
unsigned int ECC;
|
||||||
unsigned int LIC;
|
unsigned int LIC;
|
||||||
|
|||||||
@@ -243,7 +243,7 @@ void ShowAdvancedRDS() {
|
|||||||
MSold = radio.rds.MS;
|
MSold = radio.rds.MS;
|
||||||
}
|
}
|
||||||
|
|
||||||
rds_clock = ((hour() < 10 ? "0" : "") + String(hour()) + ":" + (minute() < 10 ? "0" : "") + String(minute()));
|
rds_clock = ((radio.rds.hour < 10 ? "0" : "") + String(radio.rds.hour) + ":" + (radio.rds.minute < 10 ? "0" : "") + String(radio.rds.minute));
|
||||||
if (rds_clock != rds_clockold) {
|
if (rds_clock != rds_clockold) {
|
||||||
if (!screenmute) {
|
if (!screenmute) {
|
||||||
if (radio.rds.hasCT) {
|
if (radio.rds.hasCT) {
|
||||||
|
|||||||
Reference in New Issue
Block a user