Округляем значения элемента используемые в сценарии

This commit is contained in:
2022-12-02 13:56:31 +03:00
parent d4c2eeb752
commit 4d1ef99939
3 changed files with 24 additions and 17 deletions

View File

@@ -122,7 +122,8 @@ String IoTItem::getRoundValue() {
char buf[15]; char buf[15];
sprintf(buf, ("%1." + (String)_round + "f").c_str(), value.valD); sprintf(buf, ("%1." + (String)_round + "f").c_str(), value.valD);
return (String)buf; value.valS = (String)buf;
return value.valS;
} else { } else {
return (String)value.valD; return (String)value.valD;
} }

View File

@@ -112,6 +112,7 @@ class VariableExprAST : public ExprAST {
// if (Item->value.isDecimal) // if (Item->value.isDecimal)
// Serial.printf("Call from VariableExprAST: %s = %f\n", Name.c_str(), Item->value.valD); // 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()); // else Serial.printf("Call from VariableExprAST: %s = %s\n", Name.c_str(), Item->value.valS.c_str());
Item->getRoundValue();
return &(Item->value); return &(Item->value);
} }
@@ -222,14 +223,16 @@ class BinaryExprAST : public ExprAST {
} }
if (!lhs->isDecimal || !rhs->isDecimal) { if (!lhs->isDecimal || !rhs->isDecimal) {
if (lhs->isDecimal) // if (lhs->isDecimal)
lhsStr = (String)lhs->valD; // lhsStr = (String)lhs->valD;
else // else
lhsStr = lhs->valS; // lhsStr = lhs->valS;
if (rhs->isDecimal) // if (rhs->isDecimal)
rhsStr = (String)rhs->valD; // rhsStr = (String)rhs->valD;
else // else
// rhsStr = rhs->valS;
lhsStr = lhs->valS;
rhsStr = rhs->valS; rhsStr = rhs->valS;
switch (Op) { switch (Op) {

View File

@@ -169,13 +169,15 @@ class UART : public IoTItem {
IoTValue execute(String command, std::vector<IoTValue> &param) { IoTValue execute(String command, std::vector<IoTValue> &param) {
if (command == "println") { if (command == "println") {
if (param.size() == 1) { if (param.size() == 1) {
if (param[0].isDecimal) uartPrintln((String)param[0].valD); //if (param[0].isDecimal) uartPrintln((String)param[0].valD);
else uartPrintln(param[0].valS); //else uartPrintln(param[0].valS);
uartPrintln(param[0].valS);
} }
} else if (command == "print") { } else if (command == "print") {
if (param.size() == 1) { if (param.size() == 1) {
if (param[0].isDecimal) uartPrint((String)param[0].valD); //if (param[0].isDecimal) uartPrint((String)param[0].valD);
else uartPrint(param[0].valS); //else uartPrint(param[0].valS);
uartPrintln(param[0].valS);
} }
} else if (command == "printHex") { } else if (command == "printHex") {
if (param.size() == 1) { if (param.size() == 1) {
@@ -184,9 +186,10 @@ class UART : public IoTItem {
} else if (command == "printFFF") { } else if (command == "printFFF") {
if (param.size() == 2) { if (param.size() == 2) {
String strToUart = ""; String strToUart = "";
if (param[0].isDecimal) // if (param[0].isDecimal)
strToUart = param[0].valD; // strToUart = param[0].valD;
else // else
// strToUart = param[0].valS;
strToUart = param[0].valS; strToUart = param[0].valS;
if (param[1].valD) if (param[1].valD)