great changes

This commit is contained in:
Dmitry Borisenko
2020-08-25 19:25:54 +03:00
parent 532925756f
commit 7f7bad305c
10 changed files with 108 additions and 89 deletions

View File

@@ -87,6 +87,11 @@ enum TimerTask_t { WIFI_SCAN,
enum notAsincActions {
ZERO,
do_UPGRADE,
do_GETLASTVERSION,
do_UDPDATAPARSE,
do_MQTTUDP,
do_BUSSCAN,
do_MQTTPARAMSCHANGED,
};
enum ErrorType_t {

View File

@@ -153,7 +153,7 @@ extern void setConfigParam(const char* param, const String& value);
extern String getURL(const String& urls);
extern void do_fscheck();
extern void do_scan_bus();
extern void doBusScan();
extern void servo_();
extern void clock_init();
@@ -223,7 +223,7 @@ extern void createChart(String widget_name, String page_name, String page_number
extern void pushControl();
// UDP
extern void udp_init();
extern void udpInit();
extern void do_udp_data_parse();
extern void do_mqtt_send_settings_to_udp();

View File

@@ -1,5 +1,8 @@
#pragma once
void getLastVersion();
#include <Arduino.h>
void do_update();
const String getAvailableUrl(const char* mcu);
void getLastVersion();
void upgradeInit();
void upgrade_firmware();

9
include/udp_.h Normal file
View File

@@ -0,0 +1,9 @@
#pragma once
extern void udpInit();
extern bool isUdpEnabled();
extern void loopUdp();
extern void handleUdp_esp32();
extern void do_udp_data_parse();
extern void add_dev_in_list(String filename, String id, String dev_name, String ip);
extern void send_mqtt_to_udp();

View File

@@ -1,8 +1,10 @@
#include "MqttClient.h"
#include <LittleFS.h>
#include "Class/NotAsinc.h"
#include "Global.h"
#include "Init.h"
#include <LittleFS.h>
#include "Class/NotAsinc.h"
static const char* MODULE = "Mqtt";
@@ -18,6 +20,13 @@ String mqttPrefix;
String mqttRootDevice;
void init() {
myNotAsincActions->add(
do_MQTTPARAMSCHANGED, [&](void*) {
reconnect();
},
nullptr);
mqtt.setCallback(handleSubscribedUpdates);
ts.add(
@@ -133,7 +142,6 @@ void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) {
#endif
} else if (topicStr.indexOf("control")) {
//iotTeam/12882830-1458415/light 1
String key = selectFromMarkerToMarker(topicStr, "/", 3);
@@ -144,27 +152,22 @@ void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) {
order_loop += ",";
} else if (topicStr.indexOf("order")) {
payloadStr.replace("_", " ");
order_loop += payloadStr;
order_loop += ",";
} else if (topicStr.indexOf("update")) {
if (payloadStr == "1") {
myNotAsincActions->make(do_UPGRADE);
}
} else if (topicStr.indexOf("devc")) {
writeFile(String(DEVICE_CONFIG_FILE), payloadStr);
Device_init();
} else if (topicStr.indexOf("devs")) {
writeFile(String(DEVICE_SCENARIO_FILE), payloadStr);
loadScenario();
}
}

View File

@@ -1,37 +1,22 @@
#include "Upgrade.h"
#include "Class/NotAsinc.h"
#include "Global.h"
#include "ESP8266.h"
#include "Global.h"
static const char* MODULE = "Update";
static const char* check_update_url PROGMEM = "http://91.204.228.124:1100/update/%s/version.txt";
const String getAvailableUrl(const char* mcu) {
char buf[128];
sprintf_P(buf, check_update_url, mcu);
return buf;
}
void getLastVersion() {
if (checkUpdatesFlag) {
String url;
#ifdef ESP8266
url = getAvailableUrl("esp8266");
#else
url = getAvailableUrl("esp32");
#endif
lastVersion = getURL(url);
jsonWriteStr(configSetupJson, "last_version", lastVersion);
checkUpdatesFlag = false;
}
}
void upgradeInit() {
myNotAsincActions->add(
do_UPGRADE, [&](void*) {
upgrade_firmware();
upgrade_firmware();
},
nullptr);
myNotAsincActions->add(
do_GETLASTVERSION, [&](void*) {
getLastVersion();
},
nullptr);
@@ -43,6 +28,23 @@ void upgradeInit() {
};
}
const String getAvailableUrl(const char* mcu) {
char buf[128];
sprintf_P(buf, check_update_url, mcu);
return buf;
}
void getLastVersion() {
String url;
#ifdef ESP8266
url = getAvailableUrl("esp8266");
#else
url = getAvailableUrl("esp32");
#endif
lastVersion = getURL(url);
jsonWriteStr(configSetupJson, "last_version", lastVersion);
}
void upgrade_firmware() {
String scanerioBackup, configBackup, setupBackup;

View File

@@ -167,37 +167,37 @@ void web_init() {
if (request->hasArg("mqttServer")) {
jsonWriteStr(configSetupJson, "mqttServer", request->getParam("mqttServer")->value());
saveConfig();
mqttParamsChanged = true;
myNotAsincActions->make(do_MQTTPARAMSCHANGED);
request->send(200);
}
if (request->hasArg("mqttPort")) {
int port = (request->getParam("mqttPort")->value()).toInt();
jsonWriteInt(configSetupJson, "mqttPort", port);
saveConfig();
mqttParamsChanged = true;
myNotAsincActions->make(do_MQTTPARAMSCHANGED);
request->send(200);
}
if (request->hasArg("mqttPrefix")) {
jsonWriteStr(configSetupJson, "mqttPrefix", request->getParam("mqttPrefix")->value());
saveConfig();
mqttParamsChanged = true;
myNotAsincActions->make(do_MQTTPARAMSCHANGED);
request->send(200);
}
if (request->hasArg("mqttUser")) {
jsonWriteStr(configSetupJson, "mqttUser", request->getParam("mqttUser")->value());
saveConfig();
mqttParamsChanged = true;
myNotAsincActions->make(do_MQTTPARAMSCHANGED);
request->send(200);
}
if (request->hasArg("mqttPass")) {
jsonWriteStr(configSetupJson, "mqttPass", request->getParam("mqttPass")->value());
saveConfig();
mqttParamsChanged = true;
myNotAsincActions->make(do_MQTTPARAMSCHANGED);
request->send(200);
}
//--------------------------------------------------------------------------------
if (request->hasArg("mqttsend")) {
mqtt_send_settings_to_udp = true;
myNotAsincActions->make(do_MQTTUDP);
request->send(200);
}
@@ -256,7 +256,7 @@ void web_init() {
* Check
*/
server.on("/check", HTTP_GET, [](AsyncWebServerRequest* request) {
checkUpdatesFlag = true;
myNotAsincActions->make(do_GETLASTVERSION);
pm.info("firmware version: " + lastVersion);
if (!FLASH_4MB) {

18
src/bus.cpp Normal file
View File

@@ -0,0 +1,18 @@
#include "Bus/BusScannerFactory.h"
#include "Class/NotAsinc.h"
#include "Global.h"
void busInit() {
myNotAsincActions->add(
do_BUSSCAN, [&](void*) {
doBusScan();
},
nullptr);
}
void doBusScan() {
String res = "";
BusScanner* scanner = BusScannerFactory::get(configSetupJson, busToScan, res);
scanner->scan();
jsonWriteStr(configLiveJson, String(scanner->tag()), res);
}

View File

@@ -1,4 +1,4 @@
#include "Bus/BusScannerFactory.h"
#include "Class/CallBackTest.h"
#include "Class/NotAsinc.h"
#include "Class/Switch.h"
@@ -67,7 +67,7 @@ void setup() {
#ifdef UDP_ENABLED
pm.info("Broadcast UDP");
udp_init();
udpInit();
#endif
ts.add(
@@ -96,31 +96,17 @@ void loop() {
loopUdp();
#endif
timeNow->loop();
myNotAsincActions->loop();
not_async_actions();
MqttClient::loop();
loopCmd();
mySwitch->loop();
loopScenario();
loopSerial();
myNotAsincActions->loop();
ts.update();
}
void not_async_actions() {
#ifdef UDP_ENABLED
do_udp_data_parse();
do_mqtt_send_settings_to_udp();
#endif
if (mqttParamsChanged) {
MqttClient::reconnect();
mqttParamsChanged = false;
}
getLastVersion();
do_scan_bus();
}
String getURL(const String& urls) {
String res = "";
@@ -205,12 +191,4 @@ void clock_init() {
nullptr, true);
}
void do_scan_bus() {
if (busScanFlag) {
String res = "";
BusScanner* scanner = BusScannerFactory::get(configSetupJson, busToScan, res);
scanner->scan();
jsonWriteStr(configLiveJson, String(scanner->tag()), res);
busScanFlag = false;
}
}

View File

@@ -1,3 +1,6 @@
#include "Class/NotAsinc.h"
#include "udp.h"
#include "udp_.h"
#include "Global.h"
static const char* MODULE = "Udp";
@@ -16,13 +19,21 @@ int udp_period;
boolean udp_busy = false;
unsigned int udp_port = 4210;
//TODO Помомему тут ошибка в define'ах
void handleUdp_esp32();
void add_dev_in_list(String fileName, String id, String dev_name, String ip);
#ifdef UDP_ENABLED
void udp_init() {
void udpInit() {
myNotAsincActions->add(
do_UDPDATAPARSE, [&](void*) {
do_udp_data_parse();
},
nullptr);
myNotAsincActions->add(
do_MQTTUDP, [&](void*) {
send_mqtt_to_udp();
},
nullptr);
removeFile("dev.csv");
addFileLn("dev.csv", "device id;device name;ip address");
@@ -82,7 +93,7 @@ void loopUdp() {
}
received = String(udp_packet);
if (received.indexOf("iotm;") >= 0 || received.indexOf("mqttServer") >= 0) {
udp_data_parse = true;
myNotAsincActions->make(do_UDPDATAPARSE);
}
#endif
;
@@ -96,10 +107,10 @@ void handleUdp_esp32() {
remote_ip = packet.remoteIP().toString();
if (jsonReadStr(configSetupJson, "udponoff") == "1") {
if (received.indexOf("iotm;") >= 0) {
udp_data_parse = true;
myNotAsincActions->make(do_UDPDATAPARSE);
}
if (received.indexOf("mqttServer") >= 0) {
udp_data_parse = true;
myNotAsincActions->make(do_UDPDATAPARSE);
}
}
});
@@ -108,9 +119,6 @@ void handleUdp_esp32() {
}
void do_udp_data_parse() {
if (!udp_data_parse) {
return;
}
if (received.indexOf("mqttServer") >= 0) {
pm.info("received setting");
jsonWriteStr(configSetupJson, "mqttServer", jsonReadStr(received, "mqttServer"));
@@ -119,12 +127,11 @@ void do_udp_data_parse() {
jsonWriteStr(configSetupJson, "mqttUser", jsonReadStr(received, "mqttUser"));
jsonWriteStr(configSetupJson, "mqttPass", jsonReadStr(received, "mqttPass"));
saveConfig();
mqttParamsChanged = true;
myNotAsincActions->make(do_MQTTPARAMSCHANGED);
}
if (received.indexOf("iotm;") >= 0) {
add_dev_in_list("dev.csv", selectFromMarkerToMarker(received, ";", 1), selectFromMarkerToMarker(received, ";", 2), received);
}
udp_data_parse = false;
}
void add_dev_in_list(String filename, String id, String dev_name, String ip) {
@@ -157,10 +164,4 @@ void send_mqtt_to_udp() {
udp_busy = false;
}
void do_mqtt_send_settings_to_udp() {
if (mqtt_send_settings_to_udp) {
mqtt_send_settings_to_udp = false;
send_mqtt_to_udp();
}
}
#endif