mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-30 20:09:14 +03:00
Some changes
This commit is contained in:
@@ -43,7 +43,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "h4",
|
"type": "h4",
|
||||||
"title": "LittleFS version: 240"
|
"title": "LittleFS version: 241"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "hr"
|
"type": "hr"
|
||||||
|
|||||||
@@ -160,21 +160,23 @@ class LineParsing {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void createWidgetClass(String descr, String page, String order, String filename, String topic) {
|
void createWidgetClass(String descr, String page, String order, String filename, String topic) {
|
||||||
String buf = "{}";
|
if (filename != "na") {
|
||||||
if (!loadWidgetClass(filename, buf)) {
|
String buf = "{}";
|
||||||
return;
|
if (!loadWidgetClass(filename, buf)) {
|
||||||
}
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
jsonWriteStr(buf, "page", page);
|
jsonWriteStr(buf, "page", page);
|
||||||
jsonWriteStr(buf, "order", order);
|
jsonWriteStr(buf, "order", order);
|
||||||
jsonWriteStr(buf, "descr", descr);
|
jsonWriteStr(buf, "descr", descr);
|
||||||
jsonWriteStr(buf, "topic", prex + "/" + topic);
|
jsonWriteStr(buf, "topic", prex + "/" + topic);
|
||||||
|
|
||||||
#ifdef LAYOUT_IN_RAM
|
#ifdef LAYOUT_IN_RAM
|
||||||
all_widgets += widget + "\r\n";
|
all_widgets += widget + "\r\n";
|
||||||
#else
|
#else
|
||||||
addFileLn("layout.txt", buf);
|
addFileLn("layout.txt", buf);
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool loadWidgetClass(const String& filename, String& buf) {
|
bool loadWidgetClass(const String& filename, String& buf) {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
//=================Firmeare=================
|
//=================Firmeare=================
|
||||||
#define FIRMWARE_NAME "esp8266-iotm"
|
#define FIRMWARE_NAME "esp8266-iotm"
|
||||||
#define FIRMWARE_VERSION 240
|
#define FIRMWARE_VERSION 241
|
||||||
#define FLASH_4MB true
|
#define FLASH_4MB true
|
||||||
|
|
||||||
//=================System===================
|
//=================System===================
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
//#define WEBSOCKET_ENABLED
|
//#define WEBSOCKET_ENABLED
|
||||||
//#define LAYOUT_IN_RAM
|
//#define LAYOUT_IN_RAM
|
||||||
//#define UDP_ENABLED
|
//#define UDP_ENABLED
|
||||||
#define SSDP_EN
|
//#define SSDP_EN
|
||||||
|
|
||||||
//=========Sensors enable/disable===========
|
//=========Sensors enable/disable===========
|
||||||
#define TANK_LEVEL_SAMPLES 10
|
#define TANK_LEVEL_SAMPLES 10
|
||||||
|
|||||||
@@ -128,9 +128,9 @@ extern void createChart(String widget_name, String page_name, String page_number
|
|||||||
extern void pushControl();
|
extern void pushControl();
|
||||||
|
|
||||||
// UDP
|
// UDP
|
||||||
extern void udpInit();
|
//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();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,5 +44,5 @@ extern void bmp280ReadingTemp();
|
|||||||
extern void bmp280Press();
|
extern void bmp280Press();
|
||||||
extern void bmp280ReadingPress();
|
extern void bmp280ReadingPress();
|
||||||
|
|
||||||
extern void modbus();
|
//extern void modbus();
|
||||||
extern void modbusReading();
|
//extern void modbusReading();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
//#pragma once
|
||||||
#include "ESPAsyncUDP.h"
|
//#include "ESPAsyncUDP.h"
|
||||||
extern AsyncUDP asyncUdp;
|
//extern AsyncUDP asyncUdp;
|
||||||
extern void asyncUdpInit();
|
//extern void asyncUdpInit();
|
||||||
extern String uint8tToString(uint8_t* data, size_t len);
|
//extern String uint8tToString(uint8_t* data, size_t len);
|
||||||
extern bool udpPacketValidation(String& data);
|
//extern bool udpPacketValidation(String& data);
|
||||||
extern void udpPacketParse(String& data);
|
//extern void udpPacketParse(String& data);
|
||||||
@@ -1,83 +1,83 @@
|
|||||||
#pragma once
|
//#pragma once
|
||||||
#include <Arduino.h>
|
//#include <Arduino.h>
|
||||||
#include <ModbusMaster.h>
|
//#include <ModbusMaster.h>
|
||||||
#include <SoftwareSerial.h>
|
//#include <SoftwareSerial.h>
|
||||||
|
//
|
||||||
#include "Class/LineParsing.h"
|
//#include "Class/LineParsing.h"
|
||||||
#include "Global.h"
|
//#include "Global.h"
|
||||||
#include "items/SensorConvertingClass.h"
|
//#include "items/SensorConvertingClass.h"
|
||||||
|
//
|
||||||
ModbusMaster modbus1;
|
//ModbusMaster modbus1;
|
||||||
SoftwareSerial uart(13, 12); // RX, TX
|
//SoftwareSerial uart(13, 12); // RX, TX
|
||||||
|
//
|
||||||
class SensorModbusClass : public SensorConvertingClass {
|
//class SensorModbusClass : public SensorConvertingClass {
|
||||||
public:
|
// public:
|
||||||
SensorModbusClass() : SensorConvertingClass(){};
|
// SensorModbusClass() : SensorConvertingClass(){};
|
||||||
|
//
|
||||||
void SensorModbusInit() {
|
// void SensorModbusInit() {
|
||||||
uart.begin(9600);
|
// uart.begin(9600);
|
||||||
jsonWriteStr(configOptionJson, _key + "_map", _map);
|
// jsonWriteStr(configOptionJson, _key + "_map", _map);
|
||||||
jsonWriteStr(configOptionJson, _key + "_с", _c);
|
// jsonWriteStr(configOptionJson, _key + "_с", _c);
|
||||||
sensorReadingMap += _key + " " + _addr + " " + _reg + ",";
|
// sensorReadingMap += _key + " " + _addr + " " + _reg + ",";
|
||||||
Serial.println(sensorReadingMap);
|
// Serial.println(sensorReadingMap);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
void SensorModbusRead(String key, uint8_t slaveAddress, uint16_t regAddress) {
|
// void SensorModbusRead(String key, uint8_t slaveAddress, uint16_t regAddress) {
|
||||||
int value;
|
// int value;
|
||||||
|
//
|
||||||
modbus1.begin(slaveAddress, uart);
|
// modbus1.begin(slaveAddress, uart);
|
||||||
uint16_t reqisterValue = modbus1.readHoldingRegisters(regAddress, 1);
|
// uint16_t reqisterValue = modbus1.readHoldingRegisters(regAddress, 1);
|
||||||
if (getResultMsg(&modbus1, reqisterValue)) {
|
// if (getResultMsg(&modbus1, reqisterValue)) {
|
||||||
reqisterValue = modbus1.getResponseBuffer(0);
|
// reqisterValue = modbus1.getResponseBuffer(0);
|
||||||
value = reqisterValue;
|
// value = reqisterValue;
|
||||||
} else {
|
// } else {
|
||||||
value = NULL;
|
// value = NULL;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
int valueFl = this->correction(key, value);
|
// int valueFl = this->correction(key, value);
|
||||||
eventGen(key, "");
|
// eventGen(key, "");
|
||||||
jsonWriteStr(configLiveJson, key, String(valueFl));
|
// jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
MqttClient::publishStatus(key, String(valueFl));
|
// MqttClient::publishStatus(key, String(valueFl));
|
||||||
Serial.println("I sensor '" + key + "' data: " + String(valueFl) + ", Slave dev addr: " + String(slaveAddress) + ", Register: " + String(regAddress));
|
// Serial.println("I sensor '" + key + "' data: " + String(valueFl) + ", Slave dev addr: " + String(slaveAddress) + ", Register: " + String(regAddress));
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
bool getResultMsg(ModbusMaster* modbus1, uint16_t result) {
|
// bool getResultMsg(ModbusMaster* modbus1, uint16_t result) {
|
||||||
String tmpstr;
|
// String tmpstr;
|
||||||
switch (result) {
|
// switch (result) {
|
||||||
case modbus1->ku8MBSuccess:
|
// case modbus1->ku8MBSuccess:
|
||||||
return true;
|
// return true;
|
||||||
tmpstr += "Ok";
|
// tmpstr += "Ok";
|
||||||
break;
|
// break;
|
||||||
case modbus1->ku8MBIllegalFunction:
|
// case modbus1->ku8MBIllegalFunction:
|
||||||
tmpstr += "Illegal Function";
|
// tmpstr += "Illegal Function";
|
||||||
break;
|
// break;
|
||||||
case modbus1->ku8MBIllegalDataAddress:
|
// case modbus1->ku8MBIllegalDataAddress:
|
||||||
tmpstr += "Illegal Data Address";
|
// tmpstr += "Illegal Data Address";
|
||||||
break;
|
// break;
|
||||||
case modbus1->ku8MBIllegalDataValue:
|
// case modbus1->ku8MBIllegalDataValue:
|
||||||
tmpstr += "Illegal Data Value";
|
// tmpstr += "Illegal Data Value";
|
||||||
break;
|
// break;
|
||||||
case modbus1->ku8MBSlaveDeviceFailure:
|
// case modbus1->ku8MBSlaveDeviceFailure:
|
||||||
tmpstr += "Slave Device Failure";
|
// tmpstr += "Slave Device Failure";
|
||||||
break;
|
// break;
|
||||||
case modbus1->ku8MBInvalidSlaveID:
|
// case modbus1->ku8MBInvalidSlaveID:
|
||||||
tmpstr += "Invalid Slave ID";
|
// tmpstr += "Invalid Slave ID";
|
||||||
break;
|
// break;
|
||||||
case modbus1->ku8MBInvalidFunction:
|
// case modbus1->ku8MBInvalidFunction:
|
||||||
tmpstr += "Invalid Function";
|
// tmpstr += "Invalid Function";
|
||||||
break;
|
// break;
|
||||||
case modbus1->ku8MBResponseTimedOut:
|
// case modbus1->ku8MBResponseTimedOut:
|
||||||
tmpstr += "Response Timed Out";
|
// tmpstr += "Response Timed Out";
|
||||||
break;
|
// break;
|
||||||
case modbus1->ku8MBInvalidCRC:
|
// case modbus1->ku8MBInvalidCRC:
|
||||||
tmpstr += "Invalid CRC";
|
// tmpstr += "Invalid CRC";
|
||||||
break;
|
// break;
|
||||||
default:
|
// default:
|
||||||
tmpstr += "Unknown error: " + String(result);
|
// tmpstr += "Unknown error: " + String(result);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
SerialPrint("I", "Modbus", tmpstr);
|
// SerialPrint("I", "Modbus", tmpstr);
|
||||||
return false;
|
// return false;
|
||||||
}
|
// }
|
||||||
};
|
//};
|
||||||
extern SensorModbusClass mySensorModbus;
|
//extern SensorModbusClass mySensorModbus;
|
||||||
@@ -43,7 +43,7 @@ void cmd_init() {
|
|||||||
sCmd.addCommand("bmp280-temp", bmp280Temp);
|
sCmd.addCommand("bmp280-temp", bmp280Temp);
|
||||||
sCmd.addCommand("bmp280-press", bmp280Press);
|
sCmd.addCommand("bmp280-press", bmp280Press);
|
||||||
|
|
||||||
sCmd.addCommand("modbus", modbus);
|
//sCmd.addCommand("modbus", modbus);
|
||||||
|
|
||||||
handle_time_init();
|
handle_time_init();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,71 +1,71 @@
|
|||||||
#include "RemoteOrdersUdp.h"
|
//#include "RemoteOrdersUdp.h"
|
||||||
|
//
|
||||||
#include <Arduino.h>
|
//#include <Arduino.h>
|
||||||
|
//
|
||||||
#include "Global.h"
|
//#include "Global.h"
|
||||||
|
//
|
||||||
AsyncUDP asyncUdp;
|
//AsyncUDP asyncUdp;
|
||||||
|
//
|
||||||
void asyncUdpInit() {
|
//void asyncUdpInit() {
|
||||||
//if (asyncUdp.listen(1234)) {
|
// //if (asyncUdp.listen(1234)) {
|
||||||
if (asyncUdp.listenMulticast(IPAddress(239, 255, 255, 255), 1234)) {
|
// if (asyncUdp.listenMulticast(IPAddress(239, 255, 255, 255), 1234)) {
|
||||||
asyncUdp.onPacket([](AsyncUDPPacket packet) {
|
// asyncUdp.onPacket([](AsyncUDPPacket packet) {
|
||||||
|
//
|
||||||
//Serial.print("UDP Packet Type: ");
|
// //Serial.print("UDP Packet Type: ");
|
||||||
//Serial.print(packet.isBroadcast() ? "Broadcast" : packet.isMulticast() ? "Multicast" : "Unicast");
|
// //Serial.print(packet.isBroadcast() ? "Broadcast" : packet.isMulticast() ? "Multicast" : "Unicast");
|
||||||
//
|
// //
|
||||||
//Serial.print(", From: ");
|
// //Serial.print(", From: ");
|
||||||
//Serial.print(packet.remoteIP());
|
// //Serial.print(packet.remoteIP());
|
||||||
//Serial.print(":");
|
// //Serial.print(":");
|
||||||
//Serial.print(packet.remotePort());
|
// //Serial.print(packet.remotePort());
|
||||||
//
|
// //
|
||||||
//Serial.print(", To: ");
|
// //Serial.print(", To: ");
|
||||||
//Serial.print(packet.localIP());
|
// //Serial.print(packet.localIP());
|
||||||
//Serial.print(":");
|
// //Serial.print(":");
|
||||||
//Serial.print(packet.localPort());
|
// //Serial.print(packet.localPort());
|
||||||
//
|
// //
|
||||||
//Serial.print(", Length: ");
|
// //Serial.print(", Length: ");
|
||||||
//Serial.print(packet.length());
|
// //Serial.print(packet.length());
|
||||||
//
|
// //
|
||||||
//Serial.print(", Data: ");
|
// //Serial.print(", Data: ");
|
||||||
//Serial.write(packet.data(), packet.length());
|
// //Serial.write(packet.data(), packet.length());
|
||||||
|
//
|
||||||
String data = uint8tToString(packet.data(), packet.length());
|
// String data = uint8tToString(packet.data(), packet.length());
|
||||||
Serial.print("[i] [udp] Packet received: '");
|
// Serial.print("[i] [udp] Packet received: '");
|
||||||
Serial.print(data);
|
// Serial.print(data);
|
||||||
if (udpPacketValidation(data)) {
|
// if (udpPacketValidation(data)) {
|
||||||
udpPacketParse(data);
|
// udpPacketParse(data);
|
||||||
//Serial.println("', Packet valid");
|
// //Serial.println("', Packet valid");
|
||||||
} else {
|
// } else {
|
||||||
//Serial.println("', Packet invalid");
|
// //Serial.println("', Packet invalid");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
//reply to the client
|
// //reply to the client
|
||||||
|
//
|
||||||
packet.printf("Got %u bytes of data", packet.length());
|
// packet.printf("Got %u bytes of data", packet.length());
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
String uint8tToString(uint8_t* data, size_t len) {
|
//String uint8tToString(uint8_t* data, size_t len) {
|
||||||
String ret;
|
// String ret;
|
||||||
while (len--) {
|
// while (len--) {
|
||||||
ret += (char)*data++;
|
// ret += (char)*data++;
|
||||||
}
|
// }
|
||||||
return ret;
|
// return ret;
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
bool udpPacketValidation(String& data) {
|
//bool udpPacketValidation(String& data) {
|
||||||
if (data.indexOf("iotm;") != -1 && data.indexOf(getChipId()) != -1) {
|
// if (data.indexOf("iotm;") != -1 && data.indexOf(getChipId()) != -1) {
|
||||||
return true;
|
// return true;
|
||||||
} else {
|
// } else {
|
||||||
return false;
|
// return false;
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
//iotm;chipid;button-out-1_1
|
////iotm;chipid;button-out-1_1
|
||||||
void udpPacketParse(String& data) {
|
//void udpPacketParse(String& data) {
|
||||||
data = selectFromMarkerToMarker(data, ";", 2);
|
// data = selectFromMarkerToMarker(data, ";", 2);
|
||||||
data.replace("_", " ");
|
// data.replace("_", " ");
|
||||||
orderBuf += data + ",";
|
// orderBuf += data + ",";
|
||||||
}
|
//}
|
||||||
@@ -1,23 +1,23 @@
|
|||||||
#include "items/SensorModbusClass.h"
|
//#include "items/SensorModbusClass.h"
|
||||||
|
//
|
||||||
#include "ItemsCmd.h"
|
//#include "ItemsCmd.h"
|
||||||
//#ifdef SensorModbusEnabled
|
////#ifdef SensorModbusEnabled
|
||||||
//=========================================Модуль modbus===================================================================================
|
////=========================================Модуль modbus===================================================================================
|
||||||
//modbus;id;anydata;Сенсоры;Температура;order;addr[1];regaddr[0];c[1]
|
////modbus;id;anydata;Сенсоры;Температура;order;addr[1];regaddr[0];c[1]
|
||||||
//=========================================================================================================================================
|
////=========================================================================================================================================
|
||||||
SensorModbusClass mySensorModbus;
|
//SensorModbusClass mySensorModbus;
|
||||||
|
//
|
||||||
void modbus() {
|
//void modbus() {
|
||||||
mySensorModbus.update();
|
// mySensorModbus.update();
|
||||||
String key = mySensorModbus.gkey();
|
// String key = mySensorModbus.gkey();
|
||||||
sCmd.addCommand(key.c_str(), modbusReading);
|
// sCmd.addCommand(key.c_str(), modbusReading);
|
||||||
mySensorModbus.SensorModbusInit();
|
// mySensorModbus.SensorModbusInit();
|
||||||
mySensorModbus.clear();
|
// mySensorModbus.clear();
|
||||||
}
|
//}
|
||||||
void modbusReading() {
|
//void modbusReading() {
|
||||||
String key = sCmd.order();
|
// String key = sCmd.order();
|
||||||
String addr = sCmd.next();
|
// String addr = sCmd.next();
|
||||||
String regaddr = sCmd.next();
|
// String regaddr = sCmd.next();
|
||||||
mySensorModbus.SensorModbusRead(key, addr.toInt(), regaddr.toInt());
|
// mySensorModbus.SensorModbusRead(key, addr.toInt(), regaddr.toInt());
|
||||||
}
|
//}
|
||||||
//#endif
|
////#endif
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
#include "Utils/Timings.h"
|
#include "Utils/Timings.h"
|
||||||
#include "Utils\WebUtils.h"
|
#include "Utils\WebUtils.h"
|
||||||
#include "items/ButtonInClass.h"
|
#include "items/ButtonInClass.h"
|
||||||
#include "RemoteOrdersUdp.h"
|
//#include "RemoteOrdersUdp.h"
|
||||||
#include "Bus.h"
|
#include "Bus.h"
|
||||||
|
|
||||||
void not_async_actions();
|
void not_async_actions();
|
||||||
@@ -72,8 +72,8 @@ void setup() {
|
|||||||
SerialPrint("I","Stat","Stat Init");
|
SerialPrint("I","Stat","Stat Init");
|
||||||
initSt();
|
initSt();
|
||||||
|
|
||||||
SerialPrint("I","UDP","Udp Init");
|
//SerialPrint("I","UDP","Udp Init");
|
||||||
asyncUdpInit();
|
//asyncUdpInit();
|
||||||
|
|
||||||
SerialPrint("I","Bus","Bus Init");
|
SerialPrint("I","Bus","Bus Init");
|
||||||
busInit();
|
busInit();
|
||||||
|
|||||||
Reference in New Issue
Block a user