Стандартизируем изменение значения элемента при вызове операции присваивания из сценария

This commit is contained in:
2022-02-22 22:48:35 +03:00
parent 3a9775df5d
commit a69e048da9
3 changed files with 11 additions and 1 deletions

View File

@@ -29,6 +29,7 @@ class IoTItem {
IoTValue value; // хранение основного значения, котрое обновляется из сценария, execute(), loop() или doByInterval()
virtual IoTGpio* getGpioDriver();
virtual void setValue(IoTValue Value);
protected:
String _subtype;

View File

@@ -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, "");
}

View File

@@ -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;
}