Optimization

This commit is contained in:
Dmitry Borisenko
2020-10-20 22:55:45 +03:00
parent 6064b9eac9
commit a5171f1178
25 changed files with 69 additions and 116 deletions

View File

@@ -1,6 +1,7 @@
{
"files.associations": {
"*.tcc": "cpp",
"string": "cpp"
"string": "cpp",
"functional": "cpp"
}
}

View File

@@ -1 +1 @@
0;input-time;id;inputTime;Ввод;Введите#время;order;st[10-00-00]
0;input-time;id;inputTime;Ввод;Введите#время;order;st[10:00:00]

View File

@@ -31,7 +31,7 @@
},
{
"type": "h4",
"title": "Time: {{time}}"
"title": "Time: {{timenow}}"
},
{
"type": "h4",

View File

@@ -85,7 +85,8 @@ struct Time_t {
enum TimerTask_t { WIFI_SCAN,
WIFI_MQTT_CONNECTION_CHECK,
SENSORS,
SENSORS10SEC,
SENSORS60SEC,
STEPPER1,
STEPPER2,
LOG1,

View File

@@ -1,52 +0,0 @@
#pragma once
#include <Arduino.h>
#include "Utils/StringUtils.h"
class Error : public Printable {
public:
static Error OK() {
return Error();
}
static Error InfoMessage(const char *message) {
return Error(EL_INFO, message);
}
static Error ErrorMessage(const char *message) {
return Error(EL_ERROR, message);
}
public:
Error() : _type{ET_NONE}, _level{EL_NONE} {};
Error(const ErrorLevel_t level, const char *message) : Error(ET_FUNCTION, level, message){};
Error(const ErrorType_t type, const ErrorLevel_t level, const char *message) : _type{type}, _level{level} {
strncpy(_message, message, sizeof(_message));
};
const ErrorLevel_t level() const { return _level; }
const ErrorType_t type() const { return _type; }
const char *message() const { return _message; }
operator bool() const { return _level != EL_NONE; }
const String toString() const {
char buf[128];
sprintf(buf, "[%c] %s", getErrorLevelStr(_level), _message);
return String(buf);
}
virtual size_t printTo(Print &p) const {
return p.println(toString().c_str());
}
private:
char _message[128];
ErrorType_t _type;
ErrorLevel_t _level;
};

View File

@@ -7,7 +7,6 @@
#include "ESP8266.h"
#include "Consts.h"
#include "Errors.h"
#include "GyverFilters.h"
#include "Upgrade.h"
#include "Clock.h"
@@ -74,7 +73,8 @@ extern String itemsFile;
extern String itemsLine;
// Sensors
extern String sensorReadingMap;
extern String sensorReadingMap10sec;
extern String sensorReadingMap60sec;
extern int8_t dallasEnterCounter;
extern String logging_value_names_list;

View File

@@ -3,7 +3,6 @@
#include "Arduino.h"
#include "Utils/StringUtils.h"
#include "Utils/TimeUtils.h"
#include "Errors.h"
#include "Global.h"
#define pm PrintMessage(MODULE)

View File

@@ -24,7 +24,7 @@ class InputClass : public LineParsing {
void inputSetStr(String key, String state) {
eventGen(key, "");
jsonWriteStr(configLiveJson, key, state);
publishStatus(key, state);
publishStatus(key, state);
}
};

View File

@@ -29,7 +29,7 @@ class SensorAnalogClass : public SensorConvertingClass {
eventGen(key, "");
jsonWriteStr(configLiveJson, key, String(valueFl));
publishStatus(key, String(valueFl));
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
SerialPrint("I", "Sensor", "'" + key + "' data: " + String(valueFl));
return value;
}
};

View File

@@ -18,7 +18,7 @@ class SensorBme280Class : public SensorConvertingClass {
bme.begin(hexStringToUint8(_addr));
jsonWriteStr(configOptionJson, _key + "_map", _map);
jsonWriteStr(configOptionJson, _key + "_с", _c);
sensorReadingMap += _key + ",";
sensorReadingMap10sec += _key + ",";
}
void SensorBme280ReadTmp(String key) {
@@ -28,7 +28,7 @@ class SensorBme280Class : public SensorConvertingClass {
eventGen(key, "");
jsonWriteStr(configLiveJson, key, String(valueFl));
publishStatus(key, String(valueFl));
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
SerialPrint("I", "Sensor", "'" + key + "' data: " + String(valueFl));
}
void SensorBme280ReadHum(String key) {
@@ -38,7 +38,7 @@ class SensorBme280Class : public SensorConvertingClass {
eventGen(key, "");
jsonWriteStr(configLiveJson, key, String(valueFl));
publishStatus(key, String(valueFl));
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
SerialPrint("I", "Sensor", "'" + key + "' data: " + String(valueFl));
}
void SensorBme280ReadPress(String key) {
@@ -49,7 +49,7 @@ class SensorBme280Class : public SensorConvertingClass {
eventGen(key, "");
jsonWriteStr(configLiveJson, key, String(valueFl));
publishStatus(key, String(valueFl));
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
SerialPrint("I", "Sensor", "'" + key + "' data: " + String(valueFl));
}
};
extern SensorBme280Class mySensorBme280;

View File

@@ -17,7 +17,7 @@ class SensorBmp280Class : public SensorConvertingClass {
bmp.begin(hexStringToUint8(_addr));
jsonWriteStr(configOptionJson, _key + "_map", _map);
jsonWriteStr(configOptionJson, _key + "_с", _c);
sensorReadingMap += _key + ",";
sensorReadingMap10sec += _key + ",";
}
void SensorBmp280ReadTmp(String key) {
@@ -29,7 +29,7 @@ class SensorBmp280Class : public SensorConvertingClass {
eventGen(key, "");
jsonWriteStr(configLiveJson, key, String(valueFl));
publishStatus(key, String(valueFl));
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
SerialPrint("I", "Sensor", "'" + key + "' data: " + String(valueFl));
}
void SensorBmp280ReadPress(String key) {
@@ -42,7 +42,7 @@ class SensorBmp280Class : public SensorConvertingClass {
eventGen(key, "");
jsonWriteStr(configLiveJson, key, String(valueFl));
publishStatus(key, String(valueFl));
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
SerialPrint("I", "Sensor", "'" + key + "' data: " + String(valueFl));
}
};
extern SensorBmp280Class mySensorBmp280;

View File

@@ -14,7 +14,7 @@ class SensorDallasClass : public SensorConvertingClass {
sensors.begin();
sensors.setResolution(48);
sensorReadingMap += _key + ",";
sensorReadingMap10sec += _key + ",";
dallasEnterCounter++;
jsonWriteInt(configOptionJson, _key + "_num", dallasEnterCounter);
@@ -37,7 +37,7 @@ class SensorDallasClass : public SensorConvertingClass {
eventGen(key, "");
jsonWriteStr(configLiveJson, key, String(valueFl));
publishStatus(key, String(valueFl));
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
SerialPrint("I", "Sensor", "'" + key + "' data: " + String(valueFl));
}
}
}

View File

@@ -17,7 +17,7 @@ class SensorDhtClass : public SensorConvertingClass {
if (_type == "dht22") {
dht.setup(_pin.toInt(), DHTesp::DHT22);
}
sensorReadingMap += _key + ",";
sensorReadingMap10sec += _key + ",";
//to do если надо будет читать несколько dht
//dhtEnterCounter++;
@@ -44,7 +44,7 @@ class SensorDhtClass : public SensorConvertingClass {
eventGen(key, "");
jsonWriteStr(configLiveJson, key, String(valueFl));
publishStatus(key, String(valueFl));
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
SerialPrint("I", "Sensor", "'" + key + "' data: " + String(valueFl));
} else {
Serial.println("[E] sensor '" + key);
}
@@ -68,7 +68,7 @@ class SensorDhtClass : public SensorConvertingClass {
eventGen(key, "");
jsonWriteStr(configLiveJson, key, String(valueFl));
publishStatus(key, String(valueFl));
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
SerialPrint("I", "Sensor", "'" + key + "' data: " + String(valueFl));
} else {
Serial.println("[E] sensor '" + key);
}

View File

@@ -18,8 +18,8 @@
// uart.begin(9600);
// jsonWriteStr(configOptionJson, _key + "_map", _map);
// jsonWriteStr(configOptionJson, _key + "_с", _c);
// sensorReadingMap += _key + " " + _addr + " " + _reg + ",";
// Serial.println(sensorReadingMap);
// sensorReadingMap10sec += _key + " " + _addr + " " + _reg + ",";
// Serial.println(sensorReadingMap10sec);
// }
//
// void SensorModbusRead(String key, uint8_t slaveAddress, uint16_t regAddress) {
@@ -38,7 +38,7 @@
// eventGen(key, "");
// jsonWriteStr(configLiveJson, key, String(valueFl));
// publishStatus(key, String(valueFl));
// Serial.println("I sensor '" + key + "' data: " + String(valueFl) + ", Slave dev addr: " + String(slaveAddress) + ", Register: " + String(regAddress));
// SerialPrint("I", "Sensor", "'" + key + "' data: " + String(valueFl) + ", Slave dev addr: " + String(slaveAddress) + ", Register: " + String(regAddress));
// }
//
// bool getResultMsg(ModbusMaster* modbus1, uint16_t result) {

View File

@@ -12,7 +12,7 @@ class SensorUltrasonic : public SensorConvertingClass {
public:
SensorUltrasonic() : SensorConvertingClass(){};
void init() {
sensorReadingMap += _key + ",";
sensorReadingMap10sec += _key + ",";
String trig = selectFromMarkerToMarker(_pin, ",", 0);
String echo = selectFromMarkerToMarker(_pin, ",", 1);
pinMode(trig.toInt(), OUTPUT);
@@ -43,7 +43,7 @@ class SensorUltrasonic : public SensorConvertingClass {
eventGen(key, "");
jsonWriteStr(configLiveJson, key, String(valueFl));
publishStatus(key, String(valueFl));
Serial.println("I sensor '" + key + "' data: " + String(valueFl));
SerialPrint("I", "Sensor", "'" + key + "' data: " + String(valueFl));
}
};
extern SensorUltrasonic mySensorUltrasonic;

View File

@@ -1,9 +1,7 @@
#include "BufferExecute.h"
#include "Global.h"
#include "Module/Terminal.h"
#include "Errors.h"
void loopCmdAdd(const String &cmdStr) {
orderBuf += cmdStr;
@@ -18,7 +16,6 @@ void fileCmdExecute(const String &filename) {
}
void csvCmdExecute(String &cmdStr) {
cmdStr.replace(";", " ");
cmdStr += "\r\n";
cmdStr.replace("\r\n", "\n");
@@ -26,7 +23,7 @@ void csvCmdExecute(String &cmdStr) {
int count = 0;
while (cmdStr.length()) {
String buf = selectToMarker(cmdStr, "\n");
buf = deleteBeforeDelimiter(buf, " "); //отсечка чекбокса
buf = deleteBeforeDelimiter(buf, " "); //отсечка чекбокса
count++;
if (count > 1) sCmd.readStr(buf);
cmdStr = deleteBeforeDelimiter(cmdStr, "\n");
@@ -47,16 +44,27 @@ void spaceCmdExecute(String &cmdStr) {
void loopCmdExecute() {
if (orderBuf.length()) {
String tmp = selectToMarker(orderBuf, ","); //выделяем первую команду rel 5 1,
SerialPrint("I","CMD","do: " + tmp);
sCmd.readStr(tmp); //выполняем
SerialPrint("I", "CMD", "do: " + tmp);
sCmd.readStr(tmp); //выполняем
orderBuf = deleteBeforeDelimiter(orderBuf, ","); //осекаем
}
}
void sensorsInit() {
ts.add(
SENSORS, 10000, [&](void *) {
String buf = sensorReadingMap;
SENSORS10SEC, 10000, [&](void *) {
String buf = sensorReadingMap10sec;
while (buf.length()) {
String tmp = selectToMarker(buf, ",");
sCmd.readStr(tmp);
buf = deleteBeforeDelimiter(buf, ",");
}
},
nullptr, true);
ts.add(
SENSORS60SEC, 60000, [&](void *) {
String buf = sensorReadingMap60sec;
while (buf.length()) {
String tmp = selectToMarker(buf, ",");
sCmd.readStr(tmp);

View File

@@ -39,7 +39,8 @@ String itemsLine = "";
// Sensors
int8_t dallasEnterCounter = -1;
String sensorReadingMap;
String sensorReadingMap10sec;
String sensorReadingMap60sec;
// Logging
String logging_value_names_list;

View File

@@ -24,7 +24,7 @@ void all_init() {
void Device_init() {
sensorReadingMap = "";
sensorReadingMap10sec = "";
dallasEnterCounter = -1;
//logging_value_names_list = "";

View File

@@ -231,9 +231,6 @@ void publishWidgets() {
void publishState() {
// берет строку json и ключи превращает в топики а значения колючей в них посылает
// {"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"}
// "name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"
// "name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1",
String str = configLiveJson;
str.replace("{", "");
str.replace("}", "");
@@ -242,13 +239,13 @@ void publishState() {
while (str.length()) {
String tmp = selectToMarker(str, ",");
String topic = selectToMarker(tmp, ":");
String topic = selectToMarker(tmp, "\":");
topic.replace("\"", "");
String state = selectToMarkerLast(tmp, ":");
String state = selectToMarkerLast(tmp, "\":");
state.replace("\"", "");
if ((topic != "time") && (topic != "name") && (topic != "lang") && (topic != "ip") && (topic.indexOf("_in") < 0)) {
if (topic != "timenow") {
publishStatus(topic, state);
}
str = deleteBeforeDelimiter(str, ",");

View File

@@ -57,7 +57,7 @@
// //eventGen(dhtT_value_name, "");
// //jsonWriteStr(configLiveJson, dhtT_value_name, String(value));
// // publishStatus(dhtT_value_name, String(value));
// //Serial.println("I sensor '" + dhtT_value_name + "' data: " + String(value));
// //SerialPrint("I", "Sensor", "'" + dhtT_value_name + "' data: " + String(value));
// }
// }
//}
@@ -95,7 +95,7 @@
// //eventGen(dhtH_value_name, "");
// //jsonWriteStr(configLiveJson, dhtH_value_name, String(value));
// // publishStatus(dhtH_value_name, String(value));
// //Serial.println("I sensor '" + dhtH_value_name + "' data: " + String(value));
// //SerialPrint("I", "Sensor", "'" + dhtH_value_name + "' data: " + String(value));
// }
// }
//}
@@ -120,7 +120,7 @@
// eventGen("dhtPerception", "");
// publishStatus("dhtPerception", final_line);
// if (mqtt.connected()) {
// Serial.println("I sensor 'dhtPerception' data: " + final_line);
// SerialPrint("I", "Sensor", "'dhtPerception' data: " + final_line);
// }
// }
//}
@@ -144,7 +144,7 @@
// jsonWriteStr(configLiveJson, "dhtComfort", final_line);
// eventGen("dhtComfort", "");
// publishStatus("dhtComfort", final_line);
// Serial.println("I sensor 'dhtComfort' send date " + final_line);
// SerialPrint("I", "Sensor", "'dhtComfort' send date " + final_line);
// }
//}
//
@@ -236,7 +236,7 @@
// jsonWriteInt(configLiveJson, "dhtDewpoint", value);
// eventGen("dhtDewpoint", "");
// publishStatus("dhtDewpoint", String(value));
// Serial.println("I sensor 'dhtDewpoint' data: " + String(value));
// SerialPrint("I", "Sensor", "'dhtDewpoint' data: " + String(value));
// }
//}
//#endif
@@ -272,7 +272,7 @@
// //jsonWriteStr(configLiveJson, bmp280T_value_name, String(value));
// //eventGen(bmp280T_value_name, "");
// // publishStatus(bmp280T_value_name, String(value));
// //Serial.println("I sensor '" + bmp280T_value_name + "' data: " + String(value));
// //SerialPrint("I", "Sensor", "'" + bmp280T_value_name + "' data: " + String(value));
//}
//
////bmp280P press1 0x76 Давление#bmp280 Датчики any-data 2
@@ -304,7 +304,7 @@
// //jsonWriteStr(configLiveJson, bmp280P_value_name, String(value));
// //eventGen(bmp280P_value_name, "");
// // publishStatus(bmp280P_value_name, String(value));
// //Serial.println("I sensor '" + bmp280P_value_name + "' data: " + String(value));
// //SerialPrint("I", "Sensor", "'" + bmp280P_value_name + "' data: " + String(value));
//}
//
////=========================================================================================================================================
@@ -329,7 +329,7 @@
// //jsonWriteStr(configLiveJson, bme280T_value_name, String(value));
// //eventGen(bme280T_value_name, "");
// // publishStatus(bme280T_value_name, String(value));
// //Serial.println("I sensor '" + bme280T_value_name + "' data: " + String(value));
// //SerialPrint("I", "Sensor", "'" + bme280T_value_name + "' data: " + String(value));
//}
//
////bme280P pres1 0x76 Давление#bmp280 Датчики any-data 1
@@ -353,7 +353,7 @@
// //jsonWriteStr(configLiveJson, bme280P_value_name, String(value));
// //eventGen(bme280P_value_name, "");
// // publishStatus(bme280P_value_name, String(value));
// //Serial.println("I sensor '" + bme280P_value_name + "' data: " + String(value));
// //SerialPrint("I", "Sensor", "'" + bme280P_value_name + "' data: " + String(value));
//}
//
////bme280H hum1 0x76 Влажность#bmp280 Датчики any-data 1
@@ -376,7 +376,7 @@
// //jsonWriteStr(configLiveJson, bme280H_value_name, String(value));
// //eventGen(bme280H_value_name, "");
// // publishStatus(bme280H_value_name, String(value));
// //Serial.println("I sensor '" + bme280H_value_name + "' data: " + String(value));
// //SerialPrint("I", "Sensor", "'" + bme280H_value_name + "' data: " + String(value));
//}
//
////bme280A altit1 0x76 Высота#bmp280 Датчики any-data 1
@@ -401,5 +401,5 @@
//
// // publishStatus(bme280A_value_name, String(value));
//
// //Serial.println("I sensor '" + bme280A_value_name + "' data: " + String(value));
// //SerialPrint("I", "Sensor", "'" + bme280A_value_name + "' data: " + String(value));
//}

View File

@@ -25,7 +25,7 @@ void upgradeInit() {
if (isNetworkActive()) {
getLastVersion();
if (lastVersion > 0) {
SerialPrint("I", "Update", "available version: " + lastVersion);
SerialPrint("I", "Update", "available version: " + String(lastVersion));
}
};
}

View File

@@ -3,7 +3,7 @@
#include "Global.h"
void SerialPrint(String errorLevel, String module, String msg) {
//if (module == "Stat" || module == "Update") {
//if (module == "Stat") {
Serial.println(prettyMillis(millis()) + " [" + errorLevel + "] [" + module + "] " + msg);
//}
}

View File

@@ -1,7 +1,6 @@
#include "ItemsCmd.h"
#include "items/InputClass.h"
//==========================================Модуль ввода времени============================================
//input-time time1 inputTime Ввод Введите.время 4 st[10-00-00]
//==========================================================================================================
InputClass myInputTime;
void inputTime() {
@@ -21,8 +20,9 @@ void inputTimeSet() {
void handle_time_init() {
ts.add(
TIME, 1000, [&](void *) {
jsonWriteStr(configLiveJson, "time", timeNow->getTime());
jsonWriteStr(configLiveJson, "timenow", timeNow->getTimeJson());
//jsonWriteStr(configLiveJson, "time", timeNow->getTime());
//jsonWriteStr(configLiveJson, "timenow", timeNow->getTimeJson());
jsonWriteStr(configLiveJson, "timenow", timeNow->getTime());
eventGen("timenow", "");
},
nullptr, true);

View File

@@ -8,7 +8,7 @@ void analogAdc() {
mySensorAnalog.update();
String key = mySensorAnalog.gkey();
sCmd.addCommand(key.c_str(), analogReading);
sensorReadingMap += key + ",";
sensorReadingMap10sec += key + ",";
mySensorAnalog.SensorAnalogInit();
mySensorAnalog.clear();
}

View File

@@ -7,16 +7,14 @@ void sysUptime() {
myLineParsing.update();
String key = myLineParsing.gkey();
sCmd.addCommand(key.c_str(), uptimeReading);
sensorReadingMap += key + ",";
sensorReadingMap60sec += key + ",";
myLineParsing.clear();
}
void uptimeReading() {
String key = sCmd.order();
eventGen(key, "");
String uptime = timeNow->getUptime();
uptime.replace(":", "-");
jsonWriteStr(configLiveJson, key, uptime);
publishStatus(key, uptime);
Serial.println("I sensor '" + key + "' data: " + uptime);
SerialPrint("I", "Sensor", "'" + key + "' data: " + uptime);
}