diff --git a/src/classes/IoTScenario.cpp b/src/classes/IoTScenario.cpp index 7b7ad05a3..58e34a0de 100644 --- a/src/classes/IoTScenario.cpp +++ b/src/classes/IoTScenario.cpp @@ -709,13 +709,6 @@ int IoTScenario::gettok() { } NumStr = ""; - if (LastChar == '-') { - LastChar = getLastChar(); - if (isdigit(LastChar)) - NumStr = "-"; - else - return '-'; - } if (isdigit(LastChar)) { // Число: [0-9.]+ do { NumStr += (char)LastChar; @@ -1009,6 +1002,12 @@ ExprAST *IoTScenario::ParsePrimary(String *IDNames, bool callFromCondition) { return ParseQuotesExpr(); case tok_if: return ParseIfExpr(IDNames); + case '-': { + getNextToken(); + ExprAST *Operand = ParsePrimary(IDNames, callFromCondition); + if (!Operand) return nullptr; + return new BinaryExprAST('-', new NumberExprAST("0"), Operand); + } } } diff --git a/src/modules/sensors/AnalogAdc/AnalogAdc.cpp b/src/modules/sensors/AnalogAdc/AnalogAdc.cpp index 1df0f770e..1ba892722 100644 --- a/src/modules/sensors/AnalogAdc/AnalogAdc.cpp +++ b/src/modules/sensors/AnalogAdc/AnalogAdc.cpp @@ -63,6 +63,7 @@ class AnalogAdc : public IoTItem //Serial.print("adcAverage = " + String(_adcAverage) + " \t"); //Serial.println("realSteps = " + String(realSteps)); realSteps = 0; + _adcAverage = 0; } regEvent(value.valD, "AnalogAdc"); // обязательный вызов хотяб один }