Добавляем в ядро setValue(String valStr); для универсального присваивания значения элементу конфигурации

This commit is contained in:
2022-04-25 10:48:44 +03:00
parent 8c8ea24ea3
commit 3434f8bd82
3 changed files with 12 additions and 6 deletions

View File

@@ -37,6 +37,7 @@ class IoTItem {
virtual IoTGpio* getGpioDriver();
virtual iarduino_RTC_BASE* getRtcDriver();
virtual void setValue(IoTValue Value);
virtual void setValue(String valStr);
protected:
String _subtype;

View File

@@ -29,12 +29,7 @@ void handleOrder() {
IoTItem* item = findIoTItem(selectToMarker(order, " "));
if (item) {
String valStr = selectToMarkerLast(order, " ");
IoTValue value;
if (value.isDecimal = isDigitDotCommaStr(valStr))
value.valD = valStr.toFloat();
else
value.valS = valStr;
item->setValue(value);
item->setValue(valStr);
}
orderBuf = deleteBeforeDelimiter(orderBuf, ",");

View File

@@ -113,6 +113,16 @@ void IoTItem::setValue(IoTValue Value) {
regEvent(value.valS, "");
}
void IoTItem::setValue(String valStr) {
if (value.isDecimal = isDigitDotCommaStr(valStr)) {
value.valD = valStr.toFloat();
regEvent(value.valD, "");
} else {
value.valS = valStr;
regEvent(value.valS, "");
}
}
externalVariable::externalVariable(String parameters) : IoTItem(parameters) {
prevMillis = millis(); // запоминаем текущее значение таймера для выполения doByInterval после int сек
iAmLocal = false; // указываем, что это сущность прилетела из сети