From f563a773e12a29bf46d79dd15dbd347c417d54ac Mon Sep 17 00:00:00 2001 From: biver Date: Sun, 24 Apr 2022 11:57:38 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=20IoTRTC=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BE=D1=80=D0=B3=D0=B0=D0=BD=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8=20=D0=B2=D0=B7=D0=B0=D0=B8=D0=BC=D0=BE=D0=B4?= =?UTF-8?q?=D0=B5=D0=B9=D1=81=D1=82=D0=B2=D0=B8=D1=8F=20=D1=81=20=D0=B1?= =?UTF-8?q?=D0=B8=D0=B1=D0=BB=D0=B8=D0=BE=D1=82=D0=B5=D0=BA=D0=BE=D0=B9=20?= =?UTF-8?q?iarduino=5FRTC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/Const.h | 2 +- include/classes/IoTRTC.h | 21 ++++++++++++++++++++ src/DeviceList.cpp | 2 +- src/classes/IoTRTC.cpp | 42 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 include/classes/IoTRTC.h create mode 100644 src/classes/IoTRTC.cpp diff --git a/include/Const.h b/include/Const.h index 3ba22bdf..0ce78146 100644 --- a/include/Const.h +++ b/include/Const.h @@ -41,7 +41,7 @@ enum TimerTask_t { WIFI_SCAN, TIME, TIME_SYNC, UPTIME, - UDPP, + UDP, //UDPP TIMES, PTASK }; diff --git a/include/classes/IoTRTC.h b/include/classes/IoTRTC.h new file mode 100644 index 00000000..bed063dc --- /dev/null +++ b/include/classes/IoTRTC.h @@ -0,0 +1,21 @@ +#pragma once +#include +#include + +class iarduino_RTC_NTP: public iarduino_RTC_BASE { + public: + iarduino_RTC_NTP(); + void begin(void); + uint8_t funcReadTimeIndex(uint8_t i); + void funcWriteTimeIndex(uint8_t i, uint8_t j); + uint8_t funcConvertNumToCode (uint8_t i) {return ((i/10) << 4) + (i%10);} +}; + +class IoTRTC : public iarduino_RTC { + public: + IoTRTC(uint8_t i, uint8_t j=SS, uint8_t k=SCK, uint8_t n=MOSI) : iarduino_RTC(i, j, k, n) { + if (i == 0) objClass = new iarduino_RTC_NTP(); + }; + + ~IoTRTC(); +}; \ No newline at end of file diff --git a/src/DeviceList.cpp b/src/DeviceList.cpp index c22234e8..2788afb7 100644 --- a/src/DeviceList.cpp +++ b/src/DeviceList.cpp @@ -54,7 +54,7 @@ void asyncUdpInit() { //будем отправлять каждые 30 секунд презентацию данного устройства ts.add( - UDPP, 60000, [&](void*) { + UDP, 60000, [&](void*) { //UDPP if (isNetworkActive()) { SerialPrint("i", F("UDP"), F("Broadcast device presentation")); asyncUdp.broadcastTo(getThisDevice().c_str(), 4210); diff --git a/src/classes/IoTRTC.cpp b/src/classes/IoTRTC.cpp new file mode 100644 index 00000000..638f8d20 --- /dev/null +++ b/src/classes/IoTRTC.cpp @@ -0,0 +1,42 @@ +#include "classes/IoTRTC.h" + +IoTRTC::~IoTRTC() { + +} + + +iarduino_RTC_NTP::iarduino_RTC_NTP() { + +} + +void iarduino_RTC_NTP::begin(void) { + +} + +uint8_t iarduino_RTC_NTP::funcReadTimeIndex(uint8_t i) { + static tm localTimeVar; + if (i == 0) { + Serial.println(F("Read time from system.")); + time_t timeNowVar; + time(&timeNowVar); + localTimeVar = *localtime(&timeNowVar); + } + + switch (i) + { + case 0: return funcConvertNumToCode(localTimeVar.tm_sec); + case 1: return funcConvertNumToCode(localTimeVar.tm_min); + case 2: return funcConvertNumToCode(localTimeVar.tm_hour); + case 3: return funcConvertNumToCode(localTimeVar.tm_mday); + case 4: return funcConvertNumToCode(localTimeVar.tm_mon+1); + case 5: return funcConvertNumToCode(localTimeVar.tm_year); + case 6: return funcConvertNumToCode(localTimeVar.tm_wday); + } + + return 0; +} + +void iarduino_RTC_NTP::funcWriteTimeIndex(uint8_t i, uint8_t j) { + +} +