Merge pull request #228 from biveraxe/ver4dev

Корректируем алгоритм приема сообщений по UART
This commit is contained in:
2022-11-04 18:59:46 +03:00
committed by GitHub
2 changed files with 13 additions and 6 deletions

View File

@@ -106,7 +106,7 @@ void setup() {
for (std::list<IoTItem *>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
(*it)->checkIntFromNet();
Serial.printf("[ITEM] size: %d, id: %s, int: %d, intnet: %d\n", sizeof(**it), (*it)->getID(), (*it)->getInterval(), (*it)->getIntFromNet());
//Serial.printf("[ITEM] size: %d, id: %s, int: %d, intnet: %d\n", sizeof(**it), (*it)->getID(), (*it)->getInterval(), (*it)->getIntFromNet());
}
},
nullptr, true);

View File

@@ -54,11 +54,9 @@ class UART : public IoTItem {
case 2: // формат команд от Nextion ID=Value
String id = selectToMarker(msg, "=");
IoTItem *item = findIoTItem(id);
if (!item) return;
String valStr = selectToMarkerLast(msg, "=");
valStr.replace("\"", "");
item->setValue(valStr);
generateOrder(id, valStr);
break;
}
}
@@ -69,12 +67,21 @@ class UART : public IoTItem {
if (_myUART->available()) {
static String inStr = "";
char inc;
inc = _myUART->read();
inStr += inc;
if (inc == 0xFF) {
inc = _myUART->read();
inc = _myUART->read();
inStr = "";
return;
}
if (inc == '\r') return;
if (inc == '\n') {
analyzeString(inStr);
inStr = "";
}
} else inStr += inc;
}
}