исправлена конфигурация виртуальных элементов

This commit is contained in:
Dmitry Borisenko
2022-08-12 17:53:08 +02:00
parent 8011609092
commit 027dc16ba1
6 changed files with 100 additions and 108 deletions

View File

@@ -61,7 +61,7 @@
"name": "5. Кнопка", "name": "5. Кнопка",
"type": "Reading", "type": "Reading",
"subtype": "VButton", "subtype": "VButton",
"id": "btn", "id": "vbtn",
"widget": "button", "widget": "button",
"page": "Кнопки", "page": "Кнопки",
"descr": "Кнопка1", "descr": "Кнопка1",
@@ -207,7 +207,7 @@
"num": 15 "num": 15
}, },
{ {
"name": "15. Cенсор температуры ds18b20", "name": "16. Cенсор температуры ds18b20",
"type": "Reading", "type": "Reading",
"subtype": "Ds18b20", "subtype": "Ds18b20",
"id": "dstmp", "id": "dstmp",
@@ -222,7 +222,7 @@
"num": 16 "num": 16
}, },
{ {
"name": "16. Cенсор температуры GY21", "name": "17. Cенсор температуры GY21",
"type": "Reading", "type": "Reading",
"subtype": "GY21t", "subtype": "GY21t",
"id": "tmp4", "id": "tmp4",
@@ -234,7 +234,7 @@
"num": 17 "num": 17
}, },
{ {
"name": "17. Cенсор влажности GY21", "name": "18. Cенсор влажности GY21",
"type": "Reading", "type": "Reading",
"subtype": "GY21h", "subtype": "GY21h",
"id": "Hum4", "id": "Hum4",
@@ -246,7 +246,7 @@
"num": 18 "num": 18
}, },
{ {
"name": "18. Cенсор температуры HDC1080", "name": "19. Cенсор температуры HDC1080",
"type": "Reading", "type": "Reading",
"subtype": "Hdc1080t", "subtype": "Hdc1080t",
"id": "Temp1080", "id": "Temp1080",
@@ -259,7 +259,7 @@
"num": 19 "num": 19
}, },
{ {
"name": "19. Cенсор влажности HDC1080", "name": "20. Cенсор влажности HDC1080",
"type": "Reading", "type": "Reading",
"subtype": "Hdc1080h", "subtype": "Hdc1080h",
"id": "Hum1080", "id": "Hum1080",
@@ -272,7 +272,7 @@
"num": 20 "num": 20
}, },
{ {
"name": "20. Cенсор температуры MAX6675", "name": "21. Cенсор температуры MAX6675",
"type": "Reading", "type": "Reading",
"subtype": "Max6675t", "subtype": "Max6675t",
"id": "maxtmp", "id": "maxtmp",
@@ -286,7 +286,7 @@
"num": 21 "num": 21
}, },
{ {
"name": "21. Сканер кнопок 433 MHz", "name": "22. Сканер кнопок 433 MHz",
"num": 22, "num": 22,
"type": "Reading", "type": "Reading",
"subtype": "RCswitch", "subtype": "RCswitch",
@@ -296,7 +296,7 @@
"pinTx": 12 "pinTx": 12
}, },
{ {
"name": "22. Cенсор температуры Sht20", "name": "23. Cенсор температуры Sht20",
"type": "Reading", "type": "Reading",
"subtype": "Sht20t", "subtype": "Sht20t",
"id": "tmp2", "id": "tmp2",
@@ -308,7 +308,7 @@
"num": 23 "num": 23
}, },
{ {
"name": "23. Cенсор влажности Sht20", "name": "24. Cенсор влажности Sht20",
"type": "Reading", "type": "Reading",
"subtype": "Sht20h", "subtype": "Sht20h",
"id": "Hum2", "id": "Hum2",
@@ -320,7 +320,7 @@
"num": 24 "num": 24
}, },
{ {
"name": "24. Cенсор температуры Sht30", "name": "25. Cенсор температуры Sht30",
"type": "Reading", "type": "Reading",
"subtype": "Sht30t", "subtype": "Sht30t",
"id": "tmp30", "id": "tmp30",
@@ -332,7 +332,7 @@
"num": 25 "num": 25
}, },
{ {
"name": "25. Cенсор влажности Sht30", "name": "26. Cенсор влажности Sht30",
"type": "Reading", "type": "Reading",
"subtype": "Sht30h", "subtype": "Sht30h",
"id": "Hum30", "id": "Hum30",
@@ -344,7 +344,7 @@
"num": 26 "num": 26
}, },
{ {
"name": "26. Сонар HC-SR04", "name": "27. Сонар HC-SR04",
"num": 27, "num": 27,
"type": "Reading", "type": "Reading",
"subtype": "Sonar", "subtype": "Sonar",
@@ -360,7 +360,7 @@
"header": "Исполнительные устройства" "header": "Исполнительные устройства"
}, },
{ {
"name": "27. Кнопка подключенная к пину", "name": "28. Кнопка подключенная к пину",
"type": "Writing", "type": "Writing",
"subtype": "ButtonIn", "subtype": "ButtonIn",
"id": "btn", "id": "btn",
@@ -376,7 +376,7 @@
"num": 28 "num": 28
}, },
{ {
"name": "28. Кнопка управляющая пином (Реле)", "name": "29. Кнопка управляющая пином (Реле)",
"type": "Writing", "type": "Writing",
"subtype": "ButtonOut", "subtype": "ButtonOut",
"id": "btn", "id": "btn",
@@ -389,7 +389,7 @@
"num": 29 "num": 29
}, },
{ {
"name": "29. Поддержка DS1302(1), DS1307(2), DS3231(3), RX8025(4)", "name": "30. Поддержка DS1302(1), DS1307(2), DS3231(3), RX8025(4)",
"type": "Reading", "type": "Reading",
"subtype": "IarduinoRTC", "subtype": "IarduinoRTC",
"id": "RTC", "id": "RTC",
@@ -406,7 +406,7 @@
"num": 30 "num": 30
}, },
{ {
"name": "30. Сервопривод", "name": "31. Сервопривод",
"type": "Writing", "type": "Writing",
"subtype": "IoTServo", "subtype": "IoTServo",
"id": "servo", "id": "servo",
@@ -420,7 +420,7 @@
"num": 31 "num": 31
}, },
{ {
"name": "31. Расширитель портов Mcp23017", "name": "32. Расширитель портов Mcp23017",
"type": "Reading", "type": "Reading",
"subtype": "Mcp23017", "subtype": "Mcp23017",
"id": "Mcp", "id": "Mcp",
@@ -433,7 +433,7 @@
"num": 32 "num": 32
}, },
{ {
"name": "32. MP3 плеер", "name": "33. MP3 плеер",
"type": "Reading", "type": "Reading",
"subtype": "Mp3", "subtype": "Mp3",
"id": "mp3", "id": "mp3",
@@ -446,7 +446,7 @@
"num": 33 "num": 33
}, },
{ {
"name": "33. PWM ESP8266", "name": "34. PWM ESP8266",
"type": "Writing", "type": "Writing",
"subtype": "Pwm8266", "subtype": "Pwm8266",
"id": "pwm", "id": "pwm",
@@ -461,7 +461,7 @@
"num": 34 "num": 34
}, },
{ {
"name": "34. Доп. функции системы", "name": "35. Доп. функции системы",
"type": "Reading", "type": "Reading",
"subtype": "SysExt", "subtype": "SysExt",
"id": "SysExt", "id": "SysExt",
@@ -475,7 +475,7 @@
"header": "Экраны" "header": "Экраны"
}, },
{ {
"name": "35. LCD экран 2004", "name": "36. LCD экран 2004",
"type": "Reading", "type": "Reading",
"subtype": "Lcd2004", "subtype": "Lcd2004",
"id": "Lcd", "id": "Lcd",
@@ -490,7 +490,7 @@
"num": 36 "num": 36
}, },
{ {
"name": "36. LCD экран 1602", "name": "37. LCD экран 1602",
"type": "Reading", "type": "Reading",
"subtype": "Lcd2004", "subtype": "Lcd2004",
"id": "Lcd", "id": "Lcd",

View File

@@ -5,9 +5,10 @@
struct IoTValue { struct IoTValue {
float valD = 0; float valD = 0;
String valS = ""; String valS = "";
bool isDecimal = true; bool isDecimal = true;
uint8_t *extBinInfo = NULL; // дополнительные бинарные данные из модуля uint8_t* extBinInfo = NULL; // дополнительные бинарные данные из модуля
size_t extBinInfoSize = 0; // размер дополнительных данных в байтах size_t extBinInfoSize = 0; // размер дополнительных данных в байтах
}; };
@@ -17,7 +18,7 @@ class IoTItem {
virtual ~IoTItem() {} virtual ~IoTItem() {}
virtual void loop(); virtual void loop();
virtual void doByInterval(); virtual void doByInterval();
virtual IoTValue execute(String command, std::vector<IoTValue> &param); virtual IoTValue execute(String command, std::vector<IoTValue>& param);
void regEvent(String value, String consoleInfo); void regEvent(String value, String consoleInfo);
void regEvent(float value, String consoleInfo); void regEvent(float value, String consoleInfo);
@@ -63,12 +64,10 @@ IoTItem* findIoTItem(String name); // поиск экземпляра элем
String getItemValue(String name); // поиск плюс получение значения String getItemValue(String name); // поиск плюс получение значения
StaticJsonDocument<JSON_BUFFER_SIZE>* getLocalItemsAsJSON(); // сбор всех локальных занчений Items StaticJsonDocument<JSON_BUFFER_SIZE>* getLocalItemsAsJSON(); // сбор всех локальных занчений Items
class externalVariable : IoTItem { // объект, создаваемый при получении информации о событии на другом контроллере для хранения информации о событии указанное время
class externalVariable: IoTItem { // объект, создаваемый при получении информации о событии на другом контроллере для хранения информации о событии указанное время
public: public:
externalVariable(String parameters); externalVariable(String parameters);
~externalVariable(); ~externalVariable();
void doByInterval(); // для данного класса doByInterval+int выполняет роль счетчика обратного отсчета до уничтожения void doByInterval(); // для данного класса doByInterval+int выполняет роль счетчика обратного отсчета до уничтожения
}; };

View File

@@ -70,10 +70,11 @@ void IoTItem::setValue(String valStr) {
void IoTItem::setValue(IoTValue Value) { void IoTItem::setValue(IoTValue Value) {
value = Value; value = Value;
if (value.isDecimal) if (value.isDecimal) {
regEvent(value.valD, ""); regEvent(value.valD, "");
else } else {
regEvent(value.valS, ""); regEvent(value.valS, "");
}
} }
//когда событие случилось //когда событие случилось

View File

@@ -1,22 +1,22 @@
{ {
"menuSection": "Виртуальные элементы", "menuSection": "Виртуальные элементы",
"configItem": [
"configItem": [{ {
"name": "Таймер", "name": "Таймер",
"type": "Writing", "type": "Writing",
"subtype": "Timer", "subtype": "Timer",
"id": "timer", "id": "timer",
"widget": "", "widget": "anydataDef",
"page": "", "page": "Таймеры",
"descr": "", "descr": "Таймер",
"int": 1, "int": 1,
"countDown": 15, "countDown": 15,
"ticker": 0, "ticker": 0,
"repeat": 0, "repeat": 0,
"needSave": 0 "needSave": 0,
}], "num": 1
}
],
"about": { "about": {
"authorName": "Ilya Belyakov", "authorName": "Ilya Belyakov",
"authorContact": "https://t.me/Biveraxe", "authorContact": "https://t.me/Biveraxe",
@@ -33,9 +33,7 @@
"needSave": "Требуется сохранять(1) или нет(0) состояние в энерго независимую память. Функция находится в разработке." "needSave": "Требуется сохранять(1) или нет(0) состояние в энерго независимую память. Функция находится в разработке."
} }
}, },
"defActive": true, "defActive": true,
"devices": { "devices": {
"esp32_4mb": [], "esp32_4mb": [],
"esp8266_4mb": [] "esp8266_4mb": []

View File

@@ -1,13 +1,11 @@
#include "Global.h" #include "Global.h"
#include "classes/IoTItem.h" #include "classes/IoTItem.h"
//дочь - родитель
class Variable : public IoTItem { class Variable : public IoTItem {
private: private:
public: public:
Variable(String parameters): IoTItem(parameters) { Variable(String parameters) : IoTItem(parameters) {
} }
// особенность данного модуля - просто хранение значения для сценария, нет событий // особенность данного модуля - просто хранение значения для сценария, нет событий
@@ -16,7 +14,6 @@ class Variable : public IoTItem {
// } // }
void doByInterval() { void doByInterval() {
} }
}; };

View File

@@ -1,44 +1,43 @@
{ {
"menuSection": "Виртуальные элементы", "menuSection": "Виртуальные элементы",
"configItem": [ "configItem": [
{ {
"name": "Окно ввода цифры", "name": "Окно ввода цифры (переменная)",
"type": "Reading", "type": "Reading",
"subtype": "Variable", "subtype": "Variable",
"id": "dedit", "id": "value",
"widget": "", "widget": "inputDgt",
"page": "", "page": "Ввод",
"descr": "", "descr": "Введите цифру",
"int": "0", "int": "0",
"val": "0" "val": "0",
"num": 2
}, },
{ {
"name": "Окно ввода времени", "name": "Окно ввода времени",
"type": "Reading", "type": "Reading",
"subtype": "Variable", "subtype": "Variable",
"id": "tedit", "id": "time",
"widget": "", "widget": "inputTm",
"page": "", "page": "Ввод",
"descr": "", "descr": "Введите время",
"int": "0", "int": "0",
"val": "0" "val": "0",
"num": 3
}, },
{ {
"name": "Переменная", "name": "Окно ввода даты",
"type": "Reading", "type": "Reading",
"subtype": "Variable", "subtype": "Variable",
"id": "var", "id": "time",
"widget": "", "widget": "inputDate",
"page": "", "page": "Ввод",
"descr": "", "descr": "Введите дату",
"int": "0", "int": "0",
"val": "0" "val": "0",
}], "num": 4
}
],
"about": { "about": {
"authorName": "Ilya Belyakov", "authorName": "Ilya Belyakov",
"authorContact": "https://t.me/Biveraxe", "authorContact": "https://t.me/Biveraxe",
@@ -52,9 +51,7 @@
"val": "Не используется" "val": "Не используется"
} }
}, },
"defActive": true, "defActive": true,
"devices": { "devices": {
"esp32_4mb": [], "esp32_4mb": [],
"esp8266_4mb": [] "esp8266_4mb": []