From 4d1ef99939607c08773699fa6c45b0530f2e6615 Mon Sep 17 00:00:00 2001 From: biver Date: Fri, 2 Dec 2022 13:56:31 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=BA=D1=80=D1=83=D0=B3=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=20=D0=B8?= =?UTF-8?q?=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83=D0=B5=D0=BC=D1=8B?= =?UTF-8?q?=D0=B5=20=D0=B2=20=D1=81=D1=86=D0=B5=D0=BD=D0=B0=D1=80=D0=B8?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/classes/IoTItem.cpp | 3 ++- src/classes/IoTScenario.cpp | 19 +++++++++++-------- src/modules/sensors/UART/Uart.cpp | 19 +++++++++++-------- 3 files changed, 24 insertions(+), 17 deletions(-) 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 + "\"");