mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-30 11:59:12 +03:00
great changes
This commit is contained in:
@@ -87,6 +87,11 @@ enum TimerTask_t { WIFI_SCAN,
|
|||||||
enum notAsincActions {
|
enum notAsincActions {
|
||||||
ZERO,
|
ZERO,
|
||||||
do_UPGRADE,
|
do_UPGRADE,
|
||||||
|
do_GETLASTVERSION,
|
||||||
|
do_UDPDATAPARSE,
|
||||||
|
do_MQTTUDP,
|
||||||
|
do_BUSSCAN,
|
||||||
|
do_MQTTPARAMSCHANGED,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ErrorType_t {
|
enum ErrorType_t {
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ extern void setConfigParam(const char* param, const String& value);
|
|||||||
|
|
||||||
extern String getURL(const String& urls);
|
extern String getURL(const String& urls);
|
||||||
extern void do_fscheck();
|
extern void do_fscheck();
|
||||||
extern void do_scan_bus();
|
extern void doBusScan();
|
||||||
extern void servo_();
|
extern void servo_();
|
||||||
extern void clock_init();
|
extern void clock_init();
|
||||||
|
|
||||||
@@ -223,7 +223,7 @@ extern void createChart(String widget_name, String page_name, String page_number
|
|||||||
extern void pushControl();
|
extern void pushControl();
|
||||||
|
|
||||||
// UDP
|
// UDP
|
||||||
extern void udp_init();
|
extern void udpInit();
|
||||||
extern void do_udp_data_parse();
|
extern void do_udp_data_parse();
|
||||||
extern void do_mqtt_send_settings_to_udp();
|
extern void do_mqtt_send_settings_to_udp();
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
#pragma once
|
#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
9
include/udp_.h
Normal 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();
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
#include "MqttClient.h"
|
#include "MqttClient.h"
|
||||||
|
|
||||||
|
#include <LittleFS.h>
|
||||||
|
|
||||||
|
#include "Class/NotAsinc.h"
|
||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
#include "Init.h"
|
#include "Init.h"
|
||||||
#include <LittleFS.h>
|
|
||||||
#include "Class/NotAsinc.h"
|
|
||||||
|
|
||||||
static const char* MODULE = "Mqtt";
|
static const char* MODULE = "Mqtt";
|
||||||
|
|
||||||
@@ -18,6 +20,13 @@ String mqttPrefix;
|
|||||||
String mqttRootDevice;
|
String mqttRootDevice;
|
||||||
|
|
||||||
void init() {
|
void init() {
|
||||||
|
|
||||||
|
myNotAsincActions->add(
|
||||||
|
do_MQTTPARAMSCHANGED, [&](void*) {
|
||||||
|
reconnect();
|
||||||
|
},
|
||||||
|
nullptr);
|
||||||
|
|
||||||
mqtt.setCallback(handleSubscribedUpdates);
|
mqtt.setCallback(handleSubscribedUpdates);
|
||||||
|
|
||||||
ts.add(
|
ts.add(
|
||||||
@@ -133,7 +142,6 @@ 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);
|
||||||
@@ -144,27 +152,22 @@ void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) {
|
|||||||
order_loop += ",";
|
order_loop += ",";
|
||||||
|
|
||||||
} else if (topicStr.indexOf("order")) {
|
} else if (topicStr.indexOf("order")) {
|
||||||
|
|
||||||
payloadStr.replace("_", " ");
|
payloadStr.replace("_", " ");
|
||||||
order_loop += payloadStr;
|
order_loop += payloadStr;
|
||||||
order_loop += ",";
|
order_loop += ",";
|
||||||
|
|
||||||
} else if (topicStr.indexOf("update")) {
|
} else if (topicStr.indexOf("update")) {
|
||||||
|
|
||||||
if (payloadStr == "1") {
|
if (payloadStr == "1") {
|
||||||
myNotAsincActions->make(do_UPGRADE);
|
myNotAsincActions->make(do_UPGRADE);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (topicStr.indexOf("devc")) {
|
} else if (topicStr.indexOf("devc")) {
|
||||||
|
|
||||||
writeFile(String(DEVICE_CONFIG_FILE), payloadStr);
|
writeFile(String(DEVICE_CONFIG_FILE), payloadStr);
|
||||||
Device_init();
|
Device_init();
|
||||||
|
|
||||||
} else if (topicStr.indexOf("devs")) {
|
} else if (topicStr.indexOf("devs")) {
|
||||||
|
|
||||||
writeFile(String(DEVICE_SCENARIO_FILE), payloadStr);
|
writeFile(String(DEVICE_SCENARIO_FILE), payloadStr);
|
||||||
loadScenario();
|
loadScenario();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,40 +1,25 @@
|
|||||||
#include "Upgrade.h"
|
#include "Upgrade.h"
|
||||||
|
|
||||||
#include "Class/NotAsinc.h"
|
#include "Class/NotAsinc.h"
|
||||||
#include "Global.h"
|
|
||||||
#include "ESP8266.h"
|
#include "ESP8266.h"
|
||||||
|
#include "Global.h"
|
||||||
|
|
||||||
static const char* MODULE = "Update";
|
static const char* MODULE = "Update";
|
||||||
|
|
||||||
static const char* check_update_url PROGMEM = "http://91.204.228.124:1100/update/%s/version.txt";
|
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() {
|
void upgradeInit() {
|
||||||
|
|
||||||
myNotAsincActions->add(
|
myNotAsincActions->add(
|
||||||
do_UPGRADE, [&](void*) {
|
do_UPGRADE, [&](void*) {
|
||||||
upgrade_firmware();
|
upgrade_firmware();
|
||||||
},
|
},
|
||||||
nullptr);
|
nullptr);
|
||||||
|
|
||||||
|
myNotAsincActions->add(
|
||||||
|
do_GETLASTVERSION, [&](void*) {
|
||||||
|
getLastVersion();
|
||||||
|
},
|
||||||
|
nullptr);
|
||||||
|
|
||||||
if (isNetworkActive()) {
|
if (isNetworkActive()) {
|
||||||
getLastVersion();
|
getLastVersion();
|
||||||
if (lastVersion.length()) {
|
if (lastVersion.length()) {
|
||||||
@@ -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() {
|
void upgrade_firmware() {
|
||||||
String scanerioBackup, configBackup, setupBackup;
|
String scanerioBackup, configBackup, setupBackup;
|
||||||
|
|
||||||
|
|||||||
14
src/Web.cpp
14
src/Web.cpp
@@ -167,37 +167,37 @@ void web_init() {
|
|||||||
if (request->hasArg("mqttServer")) {
|
if (request->hasArg("mqttServer")) {
|
||||||
jsonWriteStr(configSetupJson, "mqttServer", request->getParam("mqttServer")->value());
|
jsonWriteStr(configSetupJson, "mqttServer", request->getParam("mqttServer")->value());
|
||||||
saveConfig();
|
saveConfig();
|
||||||
mqttParamsChanged = true;
|
myNotAsincActions->make(do_MQTTPARAMSCHANGED);
|
||||||
request->send(200);
|
request->send(200);
|
||||||
}
|
}
|
||||||
if (request->hasArg("mqttPort")) {
|
if (request->hasArg("mqttPort")) {
|
||||||
int port = (request->getParam("mqttPort")->value()).toInt();
|
int port = (request->getParam("mqttPort")->value()).toInt();
|
||||||
jsonWriteInt(configSetupJson, "mqttPort", port);
|
jsonWriteInt(configSetupJson, "mqttPort", port);
|
||||||
saveConfig();
|
saveConfig();
|
||||||
mqttParamsChanged = true;
|
myNotAsincActions->make(do_MQTTPARAMSCHANGED);
|
||||||
request->send(200);
|
request->send(200);
|
||||||
}
|
}
|
||||||
if (request->hasArg("mqttPrefix")) {
|
if (request->hasArg("mqttPrefix")) {
|
||||||
jsonWriteStr(configSetupJson, "mqttPrefix", request->getParam("mqttPrefix")->value());
|
jsonWriteStr(configSetupJson, "mqttPrefix", request->getParam("mqttPrefix")->value());
|
||||||
saveConfig();
|
saveConfig();
|
||||||
mqttParamsChanged = true;
|
myNotAsincActions->make(do_MQTTPARAMSCHANGED);
|
||||||
request->send(200);
|
request->send(200);
|
||||||
}
|
}
|
||||||
if (request->hasArg("mqttUser")) {
|
if (request->hasArg("mqttUser")) {
|
||||||
jsonWriteStr(configSetupJson, "mqttUser", request->getParam("mqttUser")->value());
|
jsonWriteStr(configSetupJson, "mqttUser", request->getParam("mqttUser")->value());
|
||||||
saveConfig();
|
saveConfig();
|
||||||
mqttParamsChanged = true;
|
myNotAsincActions->make(do_MQTTPARAMSCHANGED);
|
||||||
request->send(200);
|
request->send(200);
|
||||||
}
|
}
|
||||||
if (request->hasArg("mqttPass")) {
|
if (request->hasArg("mqttPass")) {
|
||||||
jsonWriteStr(configSetupJson, "mqttPass", request->getParam("mqttPass")->value());
|
jsonWriteStr(configSetupJson, "mqttPass", request->getParam("mqttPass")->value());
|
||||||
saveConfig();
|
saveConfig();
|
||||||
mqttParamsChanged = true;
|
myNotAsincActions->make(do_MQTTPARAMSCHANGED);
|
||||||
request->send(200);
|
request->send(200);
|
||||||
}
|
}
|
||||||
//--------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------
|
||||||
if (request->hasArg("mqttsend")) {
|
if (request->hasArg("mqttsend")) {
|
||||||
mqtt_send_settings_to_udp = true;
|
myNotAsincActions->make(do_MQTTUDP);
|
||||||
request->send(200);
|
request->send(200);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -256,7 +256,7 @@ void web_init() {
|
|||||||
* Check
|
* Check
|
||||||
*/
|
*/
|
||||||
server.on("/check", HTTP_GET, [](AsyncWebServerRequest* request) {
|
server.on("/check", HTTP_GET, [](AsyncWebServerRequest* request) {
|
||||||
checkUpdatesFlag = true;
|
myNotAsincActions->make(do_GETLASTVERSION);
|
||||||
pm.info("firmware version: " + lastVersion);
|
pm.info("firmware version: " + lastVersion);
|
||||||
|
|
||||||
if (!FLASH_4MB) {
|
if (!FLASH_4MB) {
|
||||||
|
|||||||
18
src/bus.cpp
Normal file
18
src/bus.cpp
Normal 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);
|
||||||
|
}
|
||||||
32
src/main.cpp
32
src/main.cpp
@@ -1,4 +1,4 @@
|
|||||||
#include "Bus/BusScannerFactory.h"
|
|
||||||
#include "Class/CallBackTest.h"
|
#include "Class/CallBackTest.h"
|
||||||
#include "Class/NotAsinc.h"
|
#include "Class/NotAsinc.h"
|
||||||
#include "Class/Switch.h"
|
#include "Class/Switch.h"
|
||||||
@@ -67,7 +67,7 @@ void setup() {
|
|||||||
|
|
||||||
#ifdef UDP_ENABLED
|
#ifdef UDP_ENABLED
|
||||||
pm.info("Broadcast UDP");
|
pm.info("Broadcast UDP");
|
||||||
udp_init();
|
udpInit();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ts.add(
|
ts.add(
|
||||||
@@ -96,31 +96,17 @@ void loop() {
|
|||||||
loopUdp();
|
loopUdp();
|
||||||
#endif
|
#endif
|
||||||
timeNow->loop();
|
timeNow->loop();
|
||||||
myNotAsincActions->loop();
|
|
||||||
not_async_actions();
|
|
||||||
MqttClient::loop();
|
MqttClient::loop();
|
||||||
loopCmd();
|
loopCmd();
|
||||||
mySwitch->loop();
|
mySwitch->loop();
|
||||||
loopScenario();
|
loopScenario();
|
||||||
loopSerial();
|
loopSerial();
|
||||||
|
|
||||||
|
myNotAsincActions->loop();
|
||||||
ts.update();
|
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 getURL(const String& urls) {
|
||||||
String res = "";
|
String res = "";
|
||||||
@@ -205,12 +191,4 @@ void clock_init() {
|
|||||||
nullptr, true);
|
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
#include "Class/NotAsinc.h"
|
||||||
|
#include "udp.h"
|
||||||
|
#include "udp_.h"
|
||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
|
|
||||||
static const char* MODULE = "Udp";
|
static const char* MODULE = "Udp";
|
||||||
@@ -16,13 +19,21 @@ int udp_period;
|
|||||||
boolean udp_busy = false;
|
boolean udp_busy = false;
|
||||||
unsigned int udp_port = 4210;
|
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
|
#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");
|
removeFile("dev.csv");
|
||||||
addFileLn("dev.csv", "device id;device name;ip address");
|
addFileLn("dev.csv", "device id;device name;ip address");
|
||||||
|
|
||||||
@@ -82,7 +93,7 @@ void loopUdp() {
|
|||||||
}
|
}
|
||||||
received = String(udp_packet);
|
received = String(udp_packet);
|
||||||
if (received.indexOf("iotm;") >= 0 || received.indexOf("mqttServer") >= 0) {
|
if (received.indexOf("iotm;") >= 0 || received.indexOf("mqttServer") >= 0) {
|
||||||
udp_data_parse = true;
|
myNotAsincActions->make(do_UDPDATAPARSE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
@@ -96,10 +107,10 @@ void handleUdp_esp32() {
|
|||||||
remote_ip = packet.remoteIP().toString();
|
remote_ip = packet.remoteIP().toString();
|
||||||
if (jsonReadStr(configSetupJson, "udponoff") == "1") {
|
if (jsonReadStr(configSetupJson, "udponoff") == "1") {
|
||||||
if (received.indexOf("iotm;") >= 0) {
|
if (received.indexOf("iotm;") >= 0) {
|
||||||
udp_data_parse = true;
|
myNotAsincActions->make(do_UDPDATAPARSE);
|
||||||
}
|
}
|
||||||
if (received.indexOf("mqttServer") >= 0) {
|
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() {
|
void do_udp_data_parse() {
|
||||||
if (!udp_data_parse) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (received.indexOf("mqttServer") >= 0) {
|
if (received.indexOf("mqttServer") >= 0) {
|
||||||
pm.info("received setting");
|
pm.info("received setting");
|
||||||
jsonWriteStr(configSetupJson, "mqttServer", jsonReadStr(received, "mqttServer"));
|
jsonWriteStr(configSetupJson, "mqttServer", jsonReadStr(received, "mqttServer"));
|
||||||
@@ -119,12 +127,11 @@ void do_udp_data_parse() {
|
|||||||
jsonWriteStr(configSetupJson, "mqttUser", jsonReadStr(received, "mqttUser"));
|
jsonWriteStr(configSetupJson, "mqttUser", jsonReadStr(received, "mqttUser"));
|
||||||
jsonWriteStr(configSetupJson, "mqttPass", jsonReadStr(received, "mqttPass"));
|
jsonWriteStr(configSetupJson, "mqttPass", jsonReadStr(received, "mqttPass"));
|
||||||
saveConfig();
|
saveConfig();
|
||||||
mqttParamsChanged = true;
|
myNotAsincActions->make(do_MQTTPARAMSCHANGED);
|
||||||
}
|
}
|
||||||
if (received.indexOf("iotm;") >= 0) {
|
if (received.indexOf("iotm;") >= 0) {
|
||||||
add_dev_in_list("dev.csv", selectFromMarkerToMarker(received, ";", 1), selectFromMarkerToMarker(received, ";", 2), received);
|
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) {
|
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;
|
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
|
#endif
|
||||||
Reference in New Issue
Block a user