Files
IoTManager/src/BufferExecute.cpp

95 lines
2.7 KiB
C++
Raw Normal View History

2020-09-04 18:58:03 +03:00
#include "BufferExecute.h"
2020-10-20 22:55:45 +03:00
2020-09-04 18:58:03 +03:00
#include "Global.h"
#include "Module/Terminal.h"
2020-11-02 01:21:51 +03:00
void loopCmdAdd(const String& cmdStr) {
2020-09-04 18:58:03 +03:00
orderBuf += cmdStr;
if (!cmdStr.endsWith(",")) {
orderBuf += ",";
}
}
2020-11-02 01:21:51 +03:00
void fileCmdExecute(const String& filename) {
2020-10-10 12:04:40 +03:00
String cmdStr = readFile(filename, 4096);
2020-09-04 18:58:03 +03:00
csvCmdExecute(cmdStr);
}
2020-11-02 01:21:51 +03:00
void csvCmdExecute(String& cmdStr) {
2020-09-04 18:58:03 +03:00
cmdStr.replace(";", " ");
cmdStr += "\r\n";
cmdStr.replace("\r\n", "\n");
cmdStr.replace("\r", "\n");
int count = 0;
while (cmdStr.length()) {
String buf = selectToMarker(cmdStr, "\n");
2020-10-20 22:55:45 +03:00
buf = deleteBeforeDelimiter(buf, " "); //отсечка чекбокса
2020-09-04 18:58:03 +03:00
count++;
if (count > 1) sCmd.readStr(buf);
cmdStr = deleteBeforeDelimiter(cmdStr, "\n");
}
}
2020-11-02 01:21:51 +03:00
void spaceCmdExecute(String& cmdStr) {
2020-09-04 18:58:03 +03:00
cmdStr += "\r\n";
cmdStr.replace("\r\n", "\n");
cmdStr.replace("\r", "\n");
while (cmdStr.length()) {
String buf = selectToMarker(cmdStr, "\n");
sCmd.readStr(buf);
cmdStr = deleteBeforeDelimiter(cmdStr, "\n");
}
}
void loopCmdExecute() {
if (orderBuf.length()) {
String tmp = selectToMarker(orderBuf, ","); //выделяем первую команду rel 5 1,
2020-10-20 22:55:45 +03:00
SerialPrint("I", "CMD", "do: " + tmp);
sCmd.readStr(tmp); //выполняем
2020-09-04 18:58:03 +03:00
orderBuf = deleteBeforeDelimiter(orderBuf, ","); //осекаем
}
}
void sensorsInit() {
ts.add(
2020-11-02 01:21:51 +03:00
SENSORS10SEC, 10000, [&](void*) {
2020-10-20 22:55:45 +03:00
String buf = sensorReadingMap10sec;
while (buf.length()) {
String tmp = selectToMarker(buf, ",");
sCmd.readStr(tmp);
buf = deleteBeforeDelimiter(buf, ",");
}
},
nullptr, true);
ts.add(
2020-11-02 01:21:51 +03:00
SENSORS30SEC, 30000, [&](void*) {
2020-10-20 23:58:23 +03:00
String buf = sensorReadingMap30sec;
2020-09-04 18:58:03 +03:00
while (buf.length()) {
String tmp = selectToMarker(buf, ",");
sCmd.readStr(tmp);
buf = deleteBeforeDelimiter(buf, ",");
}
},
nullptr, true);
}
2020-11-02 15:20:04 +03:00
void addKey(String& key, String& keyNumberTable, int number) {
keyNumberTable += key + " " + String(number) + ",";
2020-11-02 01:21:51 +03:00
}
2020-11-02 15:20:04 +03:00
int getKeyNum(String& key, String& keyNumberTable) {
String keyNumberTableBuf = keyNumberTable;
//SerialPrint("","",keyNumberTable);
2020-11-02 01:21:51 +03:00
int number = -1;
while (keyNumberTableBuf.length()) {
String tmp = selectToMarker(keyNumberTableBuf, ",");
String keyIncomming = selectToMarker(tmp, " ");
if (keyIncomming == key) {
number = selectToMarkerLast(tmp, " ").toInt();
}
keyNumberTableBuf = deleteBeforeDelimiter(keyNumberTableBuf, ",");
}
return number;
}