Исправляем ошибку выполнения бинарных опираций в сценарии

когда один из операндов не число или не строка
Дополнительно добавляем функцию вырезания подстроки из строки с использованием оператора - (минус)
This commit is contained in:
2022-12-22 15:00:25 +03:00
parent 8d6ab1ee8a
commit 9871963cbb
2 changed files with 36 additions and 51 deletions

View File

@@ -63,6 +63,7 @@ void IoTItem::setValue(const String& valStr, bool genEvent) {
if (value.isDecimal) {
value.valD = valStr.toFloat();
getRoundValue();
} else {
value.valS = valStr;
}
@@ -117,6 +118,8 @@ void IoTItem::regEvent(const String& value, const String& consoleInfo, bool erro
}
String IoTItem::getRoundValue() {
if (!value.isDecimal) return value.valS;
if (_round >= 0 && _round <= 6) {
int sot = _round ? pow(10, (int)_round) : 1;
value.valD = round(value.valD * sot) / sot;
@@ -126,7 +129,8 @@ String IoTItem::getRoundValue() {
value.valS = (String)buf;
return value.valS;
} else {
return (String)value.valD;
value.valS = (String)value.valD;
return value.valS;
}
}