Working version with NotAsinc class

This commit is contained in:
Dmitry Borisenko
2020-08-26 01:03:45 +03:00
parent 7f7bad305c
commit abbfcec92c
10 changed files with 123 additions and 28 deletions

View File

@@ -21,6 +21,33 @@
{ {
"type": "hr" "type": "hr"
}, },
{
"type": "h4",
"title": "Device ID: {{chipID}}"
},
{
"type": "h4",
"title": "IP address: {{ip}}"
},
{
"type": "h4",
"title": "Time: {{time}}"
},
{
"type": "h4",
"title": "Uptime: {{uptime}}"
},
{
"type": "h4",
"title": "Build version: {{firmware_version}}"
},
{
"type": "h4",
"title": "LittleFS version: 2.3.5"
},
{
"type": "hr"
},
{ {
"type": "dropdown", "type": "dropdown",
"name": "help-url", "name": "help-url",
@@ -52,14 +79,61 @@
"action": "/set?saveItems", "action": "/set?saveItems",
"class": "btn btn-block btn-default" "class": "btn btn-block btn-default"
}, },
{
"type": "hr"
},
{ {
"type": "link", "type": "link",
"title": "Удалить все", "title": "Удалить все",
"action": "/set?delAllItems", "action": "/set?delAllItems",
"class": "btn btn-block btn-default" "class": "btn btn-block btn-default"
}, },
{
"type": "h2",
"title": "Сценарии"
},
{
"type": "checkbox",
"name": "scen",
"title": "Включить сценарии",
"action": "/set?scen=[[scen]]",
"state": "{{scen}}"
},
{
"type": "file",
"state": "dev_scen.txt",
"style": "width:100%;height:350px",
"title": "Сохранить",
"action": "/set?sceninit",
"class": "btn btn-block btn-default"
},
{
"type": "link",
"title": "Инструкция к системе автоматизации",
"action": "https://github.com/IoTManagerProject/IoTManager/wiki",
"class": "btn btn-block btn-default"
},
{
"type": "link",
"title": "Очистить логи сенсоров",
"action": "/set?cleanlog",
"class": "btn btn-block btn-default"
},
{ {
"type": "hr" "type": "hr"
},
{
"type": "h3",
"name": "my-block",
"style": "position:fixed;top:50%;left:50%;width:400px;margin-left:-200px;text-align:center;",
"class": "hidden"
},
{
"type": "button",
"title": "Обновить прошивку устройства",
"action": "/check",
"response": "[[my-block]]",
"class": "btn btn-block btn-default"
} }
] ]
} }

View File

@@ -42,4 +42,5 @@ extern void firmwareUpdate();
extern void loadScenario(); extern void loadScenario();
extern void fileExecute(const String& filename); extern void fileExecute(const String& filename);
extern void stringExecute(String& cmdStr); extern void csvExecute(String& cmdStr);
extern void spaceExecute(String& cmdStr);

View File

@@ -85,13 +85,14 @@ enum TimerTask_t { WIFI_SCAN,
TEST }; TEST };
enum notAsincActions { enum notAsincActions {
ZERO, do_ZERO,
do_UPGRADE, do_UPGRADE,
do_GETLASTVERSION, do_GETLASTVERSION,
do_UDPDATAPARSE, do_UDPDATAPARSE,
do_MQTTUDP, do_MQTTUDP,
do_BUSSCAN, do_BUSSCAN,
do_MQTTPARAMSCHANGED, do_MQTTPARAMSCHANGED,
do_LAST,
}; };
enum ErrorType_t { enum ErrorType_t {

View File

@@ -47,6 +47,8 @@ extern Clock* timeNow;
extern TickerScheduler ts; extern TickerScheduler ts;
extern WiFiClient espClient; extern WiFiClient espClient;
extern PubSubClient mqtt; extern PubSubClient mqtt;

View File

@@ -12,6 +12,6 @@ class CmdRunner : public Runner {
public: public:
void run(const char* cmd, Print* out) override { void run(const char* cmd, Print* out) override {
String cmdStr{cmd}; String cmdStr{cmd};
stringExecute(cmdStr); csvExecute(cmdStr);
} }
}; };

View File

@@ -128,6 +128,12 @@ void buttonOut() {
void buttonOutSet() { void buttonOutSet() {
String key = sCmd.order(); String key = sCmd.order();
String state = sCmd.next(); String state = sCmd.next();
Serial.println("==");
Serial.println(key);
Serial.println(state);
Serial.println("==");
String pin = jsonReadStr(configOptionJson, key + "_pin"); String pin = jsonReadStr(configOptionJson, key + "_pin");
String inv = jsonReadStr(configOptionJson, key + "_inv"); String inv = jsonReadStr(configOptionJson, key + "_inv");
if (inv == "") { if (inv == "") {
@@ -461,11 +467,10 @@ void addCommandLoop(const String &cmdStr) {
void fileExecute(const String &filename) { void fileExecute(const String &filename) {
String cmdStr = readFile(filename, 2048); String cmdStr = readFile(filename, 2048);
stringExecute(cmdStr); csvExecute(cmdStr);
} }
void stringExecute(String &cmdStr) { void csvExecute(String &cmdStr) {
cmdStr.replace("x;","");
cmdStr.replace(";"," "); cmdStr.replace(";"," ");
cmdStr += "\r\n"; cmdStr += "\r\n";
cmdStr.replace("\r\n", "\n"); cmdStr.replace("\r\n", "\n");
@@ -479,6 +484,17 @@ void stringExecute(String &cmdStr) {
} }
} }
void spaceExecute(String &cmdStr) {
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 loopCmd() { void loopCmd() {
if (order_loop.length()) { if (order_loop.length()) {
String tmp = selectToMarker(order_loop, ","); //выделяем первую команду rel 5 1, String tmp = selectToMarker(order_loop, ","); //выделяем первую команду rel 5 1,

View File

@@ -122,6 +122,7 @@ boolean connect() {
void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) { void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) {
String topicStr = String(topic); String topicStr = String(topic);
pm.info(topicStr); pm.info(topicStr);
String payloadStr; String payloadStr;
@@ -142,6 +143,7 @@ void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) {
#endif #endif
} else if (topicStr.indexOf("control")) { } else if (topicStr.indexOf("control")) {
//iotTeam/12882830-1458415/light 1 //iotTeam/12882830-1458415/light 1
String key = selectFromMarkerToMarker(topicStr, "/", 3); String key = selectFromMarkerToMarker(topicStr, "/", 3);

View File

@@ -62,7 +62,7 @@ void loopScenario() {
block = deleteBeforeDelimiter(block, "\n"); block = deleteBeforeDelimiter(block, "\n");
pm.info("do: " + block); pm.info("do: " + block);
// выполняем все команды // выполняем все команды
stringExecute(block); spaceExecute(block);
} }
} }
} }

View File

@@ -29,37 +29,38 @@ void web_init() {
server.on("/set", HTTP_GET, [](AsyncWebServerRequest* request) { server.on("/set", HTTP_GET, [](AsyncWebServerRequest* request) {
//==============================presets=========================================================================================================== //==============================presets===========================================================================================================
uint8_t preset; //uint8_t preset;
if (parseRequestForPreset(request, preset)) { //if (parseRequestForPreset(request, preset)) {
pm.info("activate #" + String(preset, DEC)); // pm.info("activate #" + String(preset, DEC));
String configFile = DEVICE_CONFIG_FILE; // String configFile = DEVICE_CONFIG_FILE;
String scenarioFile = DEVICE_SCENARIO_FILE; // String scenarioFile = DEVICE_SCENARIO_FILE;
copyFile(getConfigFile(preset, CT_CONFIG), configFile); // copyFile(getConfigFile(preset, CT_CONFIG), configFile);
copyFile(getConfigFile(preset, CT_SCENARIO), scenarioFile); // copyFile(getConfigFile(preset, CT_SCENARIO), scenarioFile);
Device_init(); // Device_init();
loadScenario(); // loadScenario();
request->redirect("/?set.device"); // request->redirect("/?set.device");
} //}
//==============================list of items==================================================================================================== //==============================set.device.json====================================================================================================
if (request->hasArg("addItem")) { if (request->hasArg("addItem")) {
String name = request->getParam("addItem")->value(); String name = request->getParam("addItem")->value();
addItem(name); addItem(name);
Device_init(); Device_init();
request->redirect("/?setn.device"); request->redirect("/?set.device");
} }
if (request->hasArg("delAllItems")) { if (request->hasArg("delAllItems")) {
delAllItems(); delAllItems();
Device_init(); Device_init();
request->redirect("/?setn.device"); request->redirect("/?set.device");
} }
if (request->hasArg("saveItems")) { if (request->hasArg("saveItems")) {
Device_init(); Device_init();
request->redirect("/?setn.device"); request->redirect("/?set.device");
} }
//==============================init====================================================================================================
if (request->hasArg("devinit")) { if (request->hasArg("devinit")) {
Device_init(); Device_init();
request->send(200); request->send(200);

View File

@@ -27,6 +27,8 @@ void setup() {
setChipId(); setChipId();
myNotAsincActions = new NotAsinc(do_LAST);
pm.info("FS"); pm.info("FS");
fileSystemInit(); fileSystemInit();
@@ -51,9 +53,7 @@ void setup() {
pm.info("Uptime"); pm.info("Uptime");
uptime_init(); uptime_init();
if (!TELEMETRY_UPDATE_INTERVAL) { pm.info("telemetry");
pm.info("Telemetry: Disabled");
}
telemetry_init(); telemetry_init();
pm.info("Updater"); pm.info("Updater");
@@ -78,8 +78,6 @@ void setup() {
just_load = false; just_load = false;
initialized = true; initialized = true;
myNotAsincActions = new NotAsinc(5);
} }
void loop() { void loop() {
@@ -97,9 +95,9 @@ void loop() {
#endif #endif
timeNow->loop(); timeNow->loop();
MqttClient::loop(); MqttClient::loop();
loopCmd();
mySwitch->loop(); mySwitch->loop();
loopScenario(); loopScenario();
loopCmd();
loopSerial(); loopSerial();
myNotAsincActions->loop(); myNotAsincActions->loop();