From ee3cc2a49341bdb1426a18354b5b11e1116ac361 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Fri, 14 Jul 2023 20:43:35 +0200 Subject: [PATCH] Moved setclock to API --- TEF6686_ESP32.ino | 11 +---------- src/TEF6686.cpp | 11 +++++++---- src/TEF6686.h | 2 +- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 361d04e..6f3e432 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -124,7 +124,6 @@ byte menupagestotal = 4; byte MSold; byte optenc; byte rdsblockold; -byte rds_minuteold = 254; byte region; byte regionold; byte rotarymode; @@ -3275,22 +3274,14 @@ void ShowAdvancedRDS() { MSold = radio.rds.MS; } - if (radio.rds.hasCT == true && radio.rds.minutes != rds_minuteold) { - int timeoffset; - if (radio.rds.offsetplusmin == true) timeoffset = (-1 * radio.rds.offset) / 2; else timeoffset = radio.rds.offset / 2; - uint16_t rdshour = radio.rds.hour + timeoffset; - rdshour = (((int)rdshour + 24) % 24); - setTime(rdshour, radio.rds.minutes, 0, 0, 0, 0); rds_clock = ((hour() < 10 ? "0" : "") + String(hour()) + ":" + (minute() < 10 ? "0" : "") + String(minute())); - - + if (radio.rds.hasCT == true && rds_clock != rds_clockold) { tft.setFreeFont(FONT7); tft.setTextColor(BackgroundColor); tft.drawRightString(rds_clockold, 205, 105, GFXFF); if (radio.rds.hasCT == true) tft.setTextColor(SecondaryColor); else tft.setTextColor(GreyoutColor); tft.drawString("CT", 62, 45, GFXFF); tft.drawRightString(rds_clock, 205, 105, GFXFF); rds_clockold = rds_clock; - rds_minuteold = radio.rds.minutes; } if (rdsblockold != radio.rdsblock) { diff --git a/src/TEF6686.cpp b/src/TEF6686.cpp index a4006bc..bfd07cd 100644 --- a/src/TEF6686.cpp +++ b/src/TEF6686.cpp @@ -1,6 +1,7 @@ #include "TEF6686.h" #include #include +#include // https://github.com/PaulStoffregen/Time unsigned long rdstimer = 0; @@ -539,17 +540,19 @@ void TEF6686::readRDS(bool showrdserrors) J = J - 1461 * Y / 4 + 31; M = 80 * (J + 0) / 2447; - rds.days = J - 2447 * M / 80; + rds.day = J - 2447 * M / 80; J = M / 11; - rds.months = M + 2 - (12 * J); - rds.years = 100 * (C - 49) + Y + J; + rds.month = M + 2 - (12 * J); + rds.year = 100 * (C - 49) + Y + J; rds.hour = ((rds.rdsD >> 12) & 0x0f); rds.hour += ((rds.rdsC << 4) & 0x0010); - rds.minutes = (rds.rdsD >> 6) & 0x3f; + rds.minute = (rds.rdsD >> 6) & 0x3f; rds.offsetplusmin = bitRead(rds.rdsD, 5); rds.offset = (rds.rdsD & 0x3f); rds.hasCT = true; + setTime(rds.hour, rds.minute, 0, rds.day, rds.month, rds.year); + adjustTime((((rds.offsetplusmin ? -rds.offset : rds.offset) / 2) * 3600)); } } break; diff --git a/src/TEF6686.h b/src/TEF6686.h index e74d6ec..59bd6ce 100644 --- a/src/TEF6686.h +++ b/src/TEF6686.h @@ -107,7 +107,7 @@ typedef struct _rds_ { String PTYN; char stationType[18]; char picode[6]; - uint16_t hour, minutes, days, months, years, offsetplusmin, rdsA, rdsB, rdsC, rdsD, rdsErr; + uint16_t hour, minutes, day, month, year, offsetplusmin, rdsA, rdsB, rdsC, rdsD, rdsErr; int8_t offset; unsigned int ECC; unsigned int LIC;