добавляем поддержку сохранения значений IoTItems

This commit is contained in:
2022-03-27 09:11:24 +03:00
parent 613d60256a
commit fe7b1f6a39
2 changed files with 7 additions and 4 deletions

View File

@@ -31,6 +31,8 @@ class IoTItem {
bool iAmDead = false; // признак необходимости удалить объект из базы bool iAmDead = false; // признак необходимости удалить объект из базы
bool iAmLocal = true; // признак локальной переменной bool iAmLocal = true; // признак локальной переменной
bool needSave = false;
virtual IoTGpio* getGpioDriver(); virtual IoTGpio* getGpioDriver();
virtual void setValue(IoTValue Value); virtual void setValue(IoTValue Value);

View File

@@ -12,18 +12,19 @@ class Timer : public IoTItem {
public: public:
Timer(String parameters): IoTItem(parameters) { 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, "ticker", _ticker);
jsonRead(parameters, "repeat", _repeat); jsonRead(parameters, "repeat", _repeat);
if (_repeat) _repeat = value.valD; // если в параметрах просят повторить, то запоминаем настроечное значение отчета if (_repeat) _repeat = valDtmp; // если в параметрах просят повторить, то запоминаем настроечное значение отчета
_unfin = !value.valD; _unfin = !value.valD;
} }
void doByInterval() { void doByInterval() {
if (!_unfin && value.valD) { if (!_unfin && value.valD) {
value.valD--; value.valD--;
needSave = true;
if (value.valD == 0) { if (value.valD == 0) {
regEvent(value.valD, "Time's up"); regEvent(value.valD, "Time's up");
if (_repeat) value.valD = _repeat; if (_repeat) value.valD = _repeat;