добавил смену даты во всех графиках при смене даты

This commit is contained in:
Dmitry Borisenko
2022-12-04 21:13:59 +01:00
parent 11bc2dc2f8
commit 89b95a75eb
6 changed files with 32 additions and 9 deletions

View File

@@ -134,6 +134,8 @@ struct Time_t {
extern unsigned long unixTime;
extern unsigned long unixTimeShort;
extern String prevDate;
extern bool firstTimeInit;
extern bool isTimeSynch;
extern Time_t _time_local;

View File

@@ -8,6 +8,7 @@ extern void breakEpochToTime(unsigned long epoch, Time_t& tm);
extern void ntpInit();
extern time_t getSystemTime();
extern void synchTime();
extern bool onDayChange();
extern const String getTimeLocal_hhmm();
extern const String getTimeLocal_hhmmss();
extern const String getDateTimeDotFormated();

View File

@@ -70,6 +70,8 @@ String mqttRootDevice = "";
// Time
unsigned long unixTime = 0;
unsigned long unixTimeShort = 0;
String prevDate = "";
bool firstTimeInit = true;
// unsigned long loopPeriod;

View File

@@ -29,6 +29,7 @@ void ntpInit() {
dateAndTime = deleteToMarkerLast(dateAndTime, ":");
jsonWriteStr_(errorsHeapJson, F("timenow"), dateAndTime);
SerialPrint("I", F("NTP"), "" + dateAndTime);
onDayChange();
}
_time_isTrust = true; // доверяем значению времени
},
@@ -41,6 +42,25 @@ void synchTime() {
configTime(0, 0, "pool.ntp.org", "ru.pool.ntp.org", "pool.ntp.org");
}
//событие смены даты
bool onDayChange() {
bool changed = false;
String currentDate = getTodayDateDotFormated();
if (!firstTimeInit) {
if (prevDate != currentDate) {
changed = true;
SerialPrint("i", F("NTP"), F("Change day core event"));
//установим новую дату во всех графиках системы
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
(*it)->setTodayDate();
}
}
}
firstTimeInit = false;
prevDate = currentDate;
return changed;
}
unsigned long gmtTimeToLocal(unsigned long gmtTimestamp) {
return gmtTimestamp + (jsonReadInt(settingsFlashJson, F("timezone")) * 60 * 60);
}

View File

@@ -21,7 +21,7 @@ class Loging : public IoTItem {
IoTItem *dateIoTItem;
String prevDate = "";
bool firstTimeDate = true;
bool firstTimeInit = true;
long interval;
@@ -188,12 +188,10 @@ class Loging : public IoTItem {
bool hasDayChanged() {
bool changed = false;
String currentDate = getTodayDateDotFormated();
if (!firstTimeDate) {
if (!firstTimeInit) {
if (prevDate != currentDate) {
changed = true;
SerialPrint("i", F("NTP"), "Change day event");
//установим дату на изменившуюся при смене суток
dateIoTItem->setTodayDate();
SerialPrint("i", F("NTP"), F("Change day event"));
#if defined(ESP8266)
FileFS.gc();
#endif
@@ -201,7 +199,7 @@ class Loging : public IoTItem {
#endif
}
}
firstTimeDate = false;
firstTimeInit = false;
prevDate = currentDate;
return changed;
}

View File

@@ -19,7 +19,7 @@ class LogingDaily : public IoTItem {
IoTItem *dateIoTItem;
String prevDate = "";
bool firstTimeDate = true;
bool firstTimeInit = true;
long interval;
@@ -138,7 +138,7 @@ class LogingDaily : public IoTItem {
bool hasDayChanged() {
bool changed = false;
String currentDate = getTodayDateDotFormated();
if (!firstTimeDate) {
if (!firstTimeInit) {
if (prevDate != currentDate) {
changed = true;
SerialPrint("i", F("NTP"), "Change day event");
@@ -149,7 +149,7 @@ class LogingDaily : public IoTItem {
#endif
}
}
firstTimeDate = false;
firstTimeInit = false;
prevDate = currentDate;
return changed;
}