diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..37c9ae2c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "files.associations": { + "*.tcc": "cpp", + "string": "cpp" + } +} \ No newline at end of file diff --git a/data/items/uptime.txt b/data/items/uptime.txt new file mode 100644 index 00000000..9672a6f3 --- /dev/null +++ b/data/items/uptime.txt @@ -0,0 +1 @@ +0;uptime;id;anydataTime;Системные;Uptime#(ver#%ver%);order \ No newline at end of file diff --git a/data/set.device.json b/data/set.device.json index a0a1b3b0..47b03164 100644 --- a/data/set.device.json +++ b/data/set.device.json @@ -43,7 +43,7 @@ }, { "type": "h4", - "title": "LittleFS version: 259" + "title": "LittleFS version: 260" }, { "type": "hr" @@ -74,7 +74,8 @@ "/set?addItem=bme280-press": "17.Датчик давления bme280", "/set?addItem=bmp280-temp": "18.Датчик температуры bmp280", "/set?addItem=bmp280-press": "19.Датчик давления bmp280", - "/set?addItem=modbus": "20.Прочитать регистр modbus устройства" + "/set?addItem=modbus": "20.Прочитать регистр modbus устройства", + "/set?addItem=uptime": "a.Отобразить время работы устройства" } }, { diff --git a/data/widgets/anydataTime.json b/data/widgets/anydataTime.json new file mode 100644 index 00000000..888a40f6 --- /dev/null +++ b/data/widgets/anydataTime.json @@ -0,0 +1,5 @@ +{ + "widget": "anydata", + "after": "", + "icon": "speedometer" + } \ No newline at end of file diff --git a/include/Class/LineParsing.h b/include/Class/LineParsing.h index f6e3d858..05b55aa0 100644 --- a/include/Class/LineParsing.h +++ b/include/Class/LineParsing.h @@ -91,6 +91,8 @@ class LineParsing { _descr.replace("#", " "); + _descr.replace("%ver%", String(FIRMWARE_VERSION)); + createWidgetClass(_descr, _page, _order, _file, _key); } @@ -201,3 +203,5 @@ class LineParsing { // return json; //} }; + +extern LineParsing myLineParsing; diff --git a/include/Consts.h b/include/Consts.h index a316d6be..b931e4a7 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -5,12 +5,13 @@ // #ifdef ESP8266 #define FIRMWARE_NAME "esp8266-iotm" +#define FIRMWARE_VERSION 260 #endif #ifdef ESP32 #define FIRMWARE_NAME "esp32-iotm" +#define FIRMWARE_VERSION 259 #endif -#define FIRMWARE_VERSION 259 #define FLASH_4MB true // diff --git a/include/ItemsCmd.h b/include/ItemsCmd.h index d949a0f8..4330993f 100644 --- a/include/ItemsCmd.h +++ b/include/ItemsCmd.h @@ -46,3 +46,6 @@ extern void bmp280ReadingPress(); //extern void modbus(); //extern void modbusReading(); + +extern void sysUptime(); +extern void uptimeReading(); diff --git a/src/Class/LineParsing.cpp b/src/Class/LineParsing.cpp new file mode 100644 index 00000000..9e9e7ac0 --- /dev/null +++ b/src/Class/LineParsing.cpp @@ -0,0 +1,2 @@ +#include "Class/LineParsing.h" +LineParsing myLineParsing; \ No newline at end of file diff --git a/src/ItemsCmd.cpp b/src/ItemsCmd.cpp index af43621e..678aa11c 100644 --- a/src/ItemsCmd.cpp +++ b/src/ItemsCmd.cpp @@ -45,6 +45,8 @@ void cmd_init() { //sCmd.addCommand("modbus", modbus); + sCmd.addCommand("uptime", sysUptime); + handle_time_init(); } diff --git a/src/items/SensorAnalogClass.cpp b/src/items/SensorAnalogClass.cpp index f7368ce6..b335cc01 100644 --- a/src/items/SensorAnalogClass.cpp +++ b/src/items/SensorAnalogClass.cpp @@ -2,7 +2,6 @@ #include "items/SensorAnalogClass.h" #ifdef ANALOG_ENABLED //==============================================Модуль аналогового сенсора=========================================================================================== -//analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin-adc;map[1,1024,1,100];c[1] //=================================================================================================================================================================== SensorAnalogClass mySensorAnalog; void analogAdc() { diff --git a/src/items/sysUptime.cpp b/src/items/sysUptime.cpp new file mode 100644 index 00000000..d52868ac --- /dev/null +++ b/src/items/sysUptime.cpp @@ -0,0 +1,22 @@ +#include "Class/LineParsing.h" +#include "ItemsCmd.h" +#include "Global.h" +#include + +void sysUptime() { + myLineParsing.update(); + String key = myLineParsing.gkey(); + sCmd.addCommand(key.c_str(), uptimeReading); + sensorReadingMap += 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); +} \ No newline at end of file