diff --git a/src/modules/exec/Timer/Timer.cpp b/src/modules/exec/Timer/Timer.cpp index d3a1724b..2e1251db 100644 --- a/src/modules/exec/Timer/Timer.cpp +++ b/src/modules/exec/Timer/Timer.cpp @@ -8,18 +8,26 @@ class Timer : public IoTItem { private: bool _unfin = false; bool _ticker = false; + bool _repeat = false; public: Timer(String parameters): IoTItem(parameters) { jsonRead(parameters, "countDown", value.valD); jsonRead(parameters, "ticker", _ticker); + jsonRead(parameters, "repeat", _repeat); + if (_repeat) _repeat = value.valD; // если в параметрах просят повторить, то запоминаем настроечное значение отчета _unfin = !value.valD; + + } void doByInterval() { if (!_unfin && value.valD) { value.valD--; - if (value.valD == 0) regEvent(value.valD, "Time's up"); + if (value.valD == 0) { + regEvent(value.valD, "Time's up"); + if (_repeat) value.valD = _repeat; + } } if (_ticker) regEvent(value.valD, "Timer tick"); diff --git a/src/modules/exec/Timer/items.json b/src/modules/exec/Timer/items.json index d275696c..821676a5 100644 --- a/src/modules/exec/Timer/items.json +++ b/src/modules/exec/Timer/items.json @@ -11,6 +11,7 @@ "int": 1, "countDown": 15, - "ticker": 0 + "ticker": 0, + "repeat": 0 } ] \ No newline at end of file