mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
great changes
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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
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 <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();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
14
src/Web.cpp
14
src/Web.cpp
@@ -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
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/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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user