From fe7b1f6a3938814b392283dfc2cf31700ad0208e Mon Sep 17 00:00:00 2001 From: biver Date: Sun, 27 Mar 2022 09:11:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6=D0=BA?= =?UTF-8?q?=D1=83=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B9=20IoT?= =?UTF-8?q?Items?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/classes/IoTItem.h | 2 ++ src/modules/exec/Timer/Timer.cpp | 9 +++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/include/classes/IoTItem.h b/include/classes/IoTItem.h index f80d3098..c0b1e26e 100644 --- a/include/classes/IoTItem.h +++ b/include/classes/IoTItem.h @@ -31,6 +31,8 @@ class IoTItem { bool iAmDead = false; // признак необходимости удалить объект из базы bool iAmLocal = true; // признак локальной переменной + bool needSave = false; + virtual IoTGpio* getGpioDriver(); virtual void setValue(IoTValue Value); diff --git a/src/modules/exec/Timer/Timer.cpp b/src/modules/exec/Timer/Timer.cpp index 2e1251db..63fa66fd 100644 --- a/src/modules/exec/Timer/Timer.cpp +++ b/src/modules/exec/Timer/Timer.cpp @@ -12,18 +12,19 @@ class Timer : public IoTItem { public: Timer(String parameters): IoTItem(parameters) { - jsonRead(parameters, "countDown", value.valD); + float valDtmp; + jsonRead(parameters, "countDown", valDtmp); + if (value.valD == 0) value.valD = valDtmp; jsonRead(parameters, "ticker", _ticker); jsonRead(parameters, "repeat", _repeat); - if (_repeat) _repeat = value.valD; // если в параметрах просят повторить, то запоминаем настроечное значение отчета + if (_repeat) _repeat = valDtmp; // если в параметрах просят повторить, то запоминаем настроечное значение отчета _unfin = !value.valD; - - } void doByInterval() { if (!_unfin && value.valD) { value.valD--; + needSave = true; if (value.valD == 0) { regEvent(value.valD, "Time's up"); if (_repeat) value.valD = _repeat;