diff --git a/include/classes/IoTItem.h b/include/classes/IoTItem.h index 7d012b7d..e15c48e5 100644 --- a/include/classes/IoTItem.h +++ b/include/classes/IoTItem.h @@ -29,6 +29,7 @@ class IoTItem { IoTValue value; // хранение основного значения, котрое обновляется из сценария, execute(), loop() или doByInterval() virtual IoTGpio* getGpioDriver(); + virtual void setValue(IoTValue Value); protected: String _subtype; diff --git a/src/classes/IoTItem.cpp b/src/classes/IoTItem.cpp index 850cbae5..f3d9ac12 100644 --- a/src/classes/IoTItem.cpp +++ b/src/classes/IoTItem.cpp @@ -90,4 +90,10 @@ IoTItem* myIoTItem; IoTGpio* IoTItem::getGpioDriver() { return nullptr; +} + +void IoTItem::setValue(IoTValue Value) { + value = Value; + if (value.isDecimal) regEvent(value.valD, ""); + else regEvent(value.valS, ""); } \ No newline at end of file diff --git a/src/classes/IoTScenario.cpp b/src/classes/IoTScenario.cpp index 255d26ad..22b5b73d 100644 --- a/src/classes/IoTScenario.cpp +++ b/src/classes/IoTScenario.cpp @@ -64,7 +64,10 @@ public: VariableExprAST(const String &name, IoTItem* item) : Name(name), Item(item) {} int setValue(IoTValue *val) { - Item->value = *val; // устанавливаем значение в связанном Item модуля напрямую + if (Item) { + //Item->value = *val; // устанавливаем значение в связанном Item модуля напрямую + Item->setValue(*val); + } return 1; }