diff --git a/src/classes/IoTItem.cpp b/src/classes/IoTItem.cpp index e8afe357..f75b86fc 100644 --- a/src/classes/IoTItem.cpp +++ b/src/classes/IoTItem.cpp @@ -122,7 +122,8 @@ String IoTItem::getRoundValue() { char buf[15]; sprintf(buf, ("%1." + (String)_round + "f").c_str(), value.valD); - return (String)buf; + value.valS = (String)buf; + return value.valS; } else { return (String)value.valD; } diff --git a/src/classes/IoTScenario.cpp b/src/classes/IoTScenario.cpp index 8173ffb9..1643751c 100644 --- a/src/classes/IoTScenario.cpp +++ b/src/classes/IoTScenario.cpp @@ -112,6 +112,7 @@ class VariableExprAST : public ExprAST { // if (Item->value.isDecimal) // Serial.printf("Call from VariableExprAST: %s = %f\n", Name.c_str(), Item->value.valD); // else Serial.printf("Call from VariableExprAST: %s = %s\n", Name.c_str(), Item->value.valS.c_str()); + Item->getRoundValue(); return &(Item->value); } @@ -222,15 +223,17 @@ class BinaryExprAST : public ExprAST { } if (!lhs->isDecimal || !rhs->isDecimal) { - if (lhs->isDecimal) - lhsStr = (String)lhs->valD; - else - lhsStr = lhs->valS; + // if (lhs->isDecimal) + // lhsStr = (String)lhs->valD; + // else + // lhsStr = lhs->valS; - if (rhs->isDecimal) - rhsStr = (String)rhs->valD; - else - rhsStr = rhs->valS; + // if (rhs->isDecimal) + // rhsStr = (String)rhs->valD; + // else + // rhsStr = rhs->valS; + lhsStr = lhs->valS; + rhsStr = rhs->valS; switch (Op) { case tok_equal: diff --git a/src/modules/sensors/UART/Uart.cpp b/src/modules/sensors/UART/Uart.cpp index a6d5040e..c75b7db1 100644 --- a/src/modules/sensors/UART/Uart.cpp +++ b/src/modules/sensors/UART/Uart.cpp @@ -169,13 +169,15 @@ class UART : public IoTItem { IoTValue execute(String command, std::vector ¶m) { if (command == "println") { if (param.size() == 1) { - if (param[0].isDecimal) uartPrintln((String)param[0].valD); - else uartPrintln(param[0].valS); + //if (param[0].isDecimal) uartPrintln((String)param[0].valD); + //else uartPrintln(param[0].valS); + uartPrintln(param[0].valS); } } else if (command == "print") { if (param.size() == 1) { - if (param[0].isDecimal) uartPrint((String)param[0].valD); - else uartPrint(param[0].valS); + //if (param[0].isDecimal) uartPrint((String)param[0].valD); + //else uartPrint(param[0].valS); + uartPrintln(param[0].valS); } } else if (command == "printHex") { if (param.size() == 1) { @@ -184,10 +186,11 @@ class UART : public IoTItem { } else if (command == "printFFF") { if (param.size() == 2) { String strToUart = ""; - if (param[0].isDecimal) - strToUart = param[0].valD; - else - strToUart = param[0].valS; + // if (param[0].isDecimal) + // strToUart = param[0].valD; + // else + // strToUart = param[0].valS; + strToUart = param[0].valS; if (param[1].valD) uartPrintFFF("\"" + strToUart + "\"");