mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
исправлена конфигурация виртуальных элементов
This commit is contained in:
@@ -61,7 +61,7 @@
|
||||
"name": "5. Кнопка",
|
||||
"type": "Reading",
|
||||
"subtype": "VButton",
|
||||
"id": "btn",
|
||||
"id": "vbtn",
|
||||
"widget": "button",
|
||||
"page": "Кнопки",
|
||||
"descr": "Кнопка1",
|
||||
@@ -207,7 +207,7 @@
|
||||
"num": 15
|
||||
},
|
||||
{
|
||||
"name": "15. Cенсор температуры ds18b20",
|
||||
"name": "16. Cенсор температуры ds18b20",
|
||||
"type": "Reading",
|
||||
"subtype": "Ds18b20",
|
||||
"id": "dstmp",
|
||||
@@ -222,7 +222,7 @@
|
||||
"num": 16
|
||||
},
|
||||
{
|
||||
"name": "16. Cенсор температуры GY21",
|
||||
"name": "17. Cенсор температуры GY21",
|
||||
"type": "Reading",
|
||||
"subtype": "GY21t",
|
||||
"id": "tmp4",
|
||||
@@ -234,7 +234,7 @@
|
||||
"num": 17
|
||||
},
|
||||
{
|
||||
"name": "17. Cенсор влажности GY21",
|
||||
"name": "18. Cенсор влажности GY21",
|
||||
"type": "Reading",
|
||||
"subtype": "GY21h",
|
||||
"id": "Hum4",
|
||||
@@ -246,7 +246,7 @@
|
||||
"num": 18
|
||||
},
|
||||
{
|
||||
"name": "18. Cенсор температуры HDC1080",
|
||||
"name": "19. Cенсор температуры HDC1080",
|
||||
"type": "Reading",
|
||||
"subtype": "Hdc1080t",
|
||||
"id": "Temp1080",
|
||||
@@ -259,7 +259,7 @@
|
||||
"num": 19
|
||||
},
|
||||
{
|
||||
"name": "19. Cенсор влажности HDC1080",
|
||||
"name": "20. Cенсор влажности HDC1080",
|
||||
"type": "Reading",
|
||||
"subtype": "Hdc1080h",
|
||||
"id": "Hum1080",
|
||||
@@ -272,7 +272,7 @@
|
||||
"num": 20
|
||||
},
|
||||
{
|
||||
"name": "20. Cенсор температуры MAX6675",
|
||||
"name": "21. Cенсор температуры MAX6675",
|
||||
"type": "Reading",
|
||||
"subtype": "Max6675t",
|
||||
"id": "maxtmp",
|
||||
@@ -286,7 +286,7 @@
|
||||
"num": 21
|
||||
},
|
||||
{
|
||||
"name": "21. Сканер кнопок 433 MHz",
|
||||
"name": "22. Сканер кнопок 433 MHz",
|
||||
"num": 22,
|
||||
"type": "Reading",
|
||||
"subtype": "RCswitch",
|
||||
@@ -296,7 +296,7 @@
|
||||
"pinTx": 12
|
||||
},
|
||||
{
|
||||
"name": "22. Cенсор температуры Sht20",
|
||||
"name": "23. Cенсор температуры Sht20",
|
||||
"type": "Reading",
|
||||
"subtype": "Sht20t",
|
||||
"id": "tmp2",
|
||||
@@ -308,7 +308,7 @@
|
||||
"num": 23
|
||||
},
|
||||
{
|
||||
"name": "23. Cенсор влажности Sht20",
|
||||
"name": "24. Cенсор влажности Sht20",
|
||||
"type": "Reading",
|
||||
"subtype": "Sht20h",
|
||||
"id": "Hum2",
|
||||
@@ -320,7 +320,7 @@
|
||||
"num": 24
|
||||
},
|
||||
{
|
||||
"name": "24. Cенсор температуры Sht30",
|
||||
"name": "25. Cенсор температуры Sht30",
|
||||
"type": "Reading",
|
||||
"subtype": "Sht30t",
|
||||
"id": "tmp30",
|
||||
@@ -332,7 +332,7 @@
|
||||
"num": 25
|
||||
},
|
||||
{
|
||||
"name": "25. Cенсор влажности Sht30",
|
||||
"name": "26. Cенсор влажности Sht30",
|
||||
"type": "Reading",
|
||||
"subtype": "Sht30h",
|
||||
"id": "Hum30",
|
||||
@@ -344,7 +344,7 @@
|
||||
"num": 26
|
||||
},
|
||||
{
|
||||
"name": "26. Сонар HC-SR04",
|
||||
"name": "27. Сонар HC-SR04",
|
||||
"num": 27,
|
||||
"type": "Reading",
|
||||
"subtype": "Sonar",
|
||||
@@ -360,7 +360,7 @@
|
||||
"header": "Исполнительные устройства"
|
||||
},
|
||||
{
|
||||
"name": "27. Кнопка подключенная к пину",
|
||||
"name": "28. Кнопка подключенная к пину",
|
||||
"type": "Writing",
|
||||
"subtype": "ButtonIn",
|
||||
"id": "btn",
|
||||
@@ -376,7 +376,7 @@
|
||||
"num": 28
|
||||
},
|
||||
{
|
||||
"name": "28. Кнопка управляющая пином (Реле)",
|
||||
"name": "29. Кнопка управляющая пином (Реле)",
|
||||
"type": "Writing",
|
||||
"subtype": "ButtonOut",
|
||||
"id": "btn",
|
||||
@@ -389,7 +389,7 @@
|
||||
"num": 29
|
||||
},
|
||||
{
|
||||
"name": "29. Поддержка DS1302(1), DS1307(2), DS3231(3), RX8025(4)",
|
||||
"name": "30. Поддержка DS1302(1), DS1307(2), DS3231(3), RX8025(4)",
|
||||
"type": "Reading",
|
||||
"subtype": "IarduinoRTC",
|
||||
"id": "RTC",
|
||||
@@ -406,7 +406,7 @@
|
||||
"num": 30
|
||||
},
|
||||
{
|
||||
"name": "30. Сервопривод",
|
||||
"name": "31. Сервопривод",
|
||||
"type": "Writing",
|
||||
"subtype": "IoTServo",
|
||||
"id": "servo",
|
||||
@@ -420,7 +420,7 @@
|
||||
"num": 31
|
||||
},
|
||||
{
|
||||
"name": "31. Расширитель портов Mcp23017",
|
||||
"name": "32. Расширитель портов Mcp23017",
|
||||
"type": "Reading",
|
||||
"subtype": "Mcp23017",
|
||||
"id": "Mcp",
|
||||
@@ -433,7 +433,7 @@
|
||||
"num": 32
|
||||
},
|
||||
{
|
||||
"name": "32. MP3 плеер",
|
||||
"name": "33. MP3 плеер",
|
||||
"type": "Reading",
|
||||
"subtype": "Mp3",
|
||||
"id": "mp3",
|
||||
@@ -446,7 +446,7 @@
|
||||
"num": 33
|
||||
},
|
||||
{
|
||||
"name": "33. PWM ESP8266",
|
||||
"name": "34. PWM ESP8266",
|
||||
"type": "Writing",
|
||||
"subtype": "Pwm8266",
|
||||
"id": "pwm",
|
||||
@@ -461,7 +461,7 @@
|
||||
"num": 34
|
||||
},
|
||||
{
|
||||
"name": "34. Доп. функции системы",
|
||||
"name": "35. Доп. функции системы",
|
||||
"type": "Reading",
|
||||
"subtype": "SysExt",
|
||||
"id": "SysExt",
|
||||
@@ -475,7 +475,7 @@
|
||||
"header": "Экраны"
|
||||
},
|
||||
{
|
||||
"name": "35. LCD экран 2004",
|
||||
"name": "36. LCD экран 2004",
|
||||
"type": "Reading",
|
||||
"subtype": "Lcd2004",
|
||||
"id": "Lcd",
|
||||
@@ -490,7 +490,7 @@
|
||||
"num": 36
|
||||
},
|
||||
{
|
||||
"name": "36. LCD экран 1602",
|
||||
"name": "37. LCD экран 1602",
|
||||
"type": "Reading",
|
||||
"subtype": "Lcd2004",
|
||||
"id": "Lcd",
|
||||
|
||||
@@ -5,10 +5,11 @@
|
||||
struct IoTValue {
|
||||
float valD = 0;
|
||||
String valS = "";
|
||||
|
||||
bool isDecimal = true;
|
||||
|
||||
uint8_t *extBinInfo = NULL; // дополнительные бинарные данные из модуля
|
||||
size_t extBinInfoSize = 0; // размер дополнительных данных в байтах
|
||||
uint8_t* extBinInfo = NULL; // дополнительные бинарные данные из модуля
|
||||
size_t extBinInfoSize = 0; // размер дополнительных данных в байтах
|
||||
};
|
||||
|
||||
class IoTItem {
|
||||
@@ -17,7 +18,7 @@ class IoTItem {
|
||||
virtual ~IoTItem() {}
|
||||
virtual void loop();
|
||||
virtual void doByInterval();
|
||||
virtual IoTValue execute(String command, std::vector<IoTValue> ¶m);
|
||||
virtual IoTValue execute(String command, std::vector<IoTValue>& param);
|
||||
|
||||
void regEvent(String value, String consoleInfo);
|
||||
void regEvent(float value, String consoleInfo);
|
||||
@@ -34,8 +35,8 @@ class IoTItem {
|
||||
|
||||
IoTValue value; // хранение основного значения, которое обновляется из сценария, execute(), loop() или doByInterval()
|
||||
|
||||
bool iAmDead = false; // признак необходимости удалить объект из базы
|
||||
bool iAmLocal = true; // признак локальной переменной
|
||||
bool iAmDead = false; // признак необходимости удалить объект из базы
|
||||
bool iAmLocal = true; // признак локальной переменной
|
||||
|
||||
bool needSave = false;
|
||||
bool enableDoByInt = true;
|
||||
@@ -51,7 +52,7 @@ class IoTItem {
|
||||
unsigned long _interval;
|
||||
|
||||
float _multiply; // умножаем на значение
|
||||
float _plus; // увеличиваем на значение
|
||||
float _plus; // увеличиваем на значение
|
||||
int _map1;
|
||||
int _map2;
|
||||
int _map3;
|
||||
@@ -59,16 +60,14 @@ class IoTItem {
|
||||
int _round; // 1, 10, 100, 1000, 10000
|
||||
};
|
||||
|
||||
IoTItem* findIoTItem(String name); // поиск экземпляра элемента модуля по имени
|
||||
String getItemValue(String name); // поиск плюс получение значения
|
||||
IoTItem* findIoTItem(String name); // поиск экземпляра элемента модуля по имени
|
||||
String getItemValue(String name); // поиск плюс получение значения
|
||||
StaticJsonDocument<JSON_BUFFER_SIZE>* getLocalItemsAsJSON(); // сбор всех локальных занчений Items
|
||||
|
||||
class externalVariable : IoTItem { // объект, создаваемый при получении информации о событии на другом контроллере для хранения информации о событии указанное время
|
||||
|
||||
class externalVariable: IoTItem { // объект, создаваемый при получении информации о событии на другом контроллере для хранения информации о событии указанное время
|
||||
|
||||
public:
|
||||
externalVariable(String parameters);
|
||||
~externalVariable();
|
||||
void doByInterval(); // для данного класса doByInterval+int выполняет роль счетчика обратного отсчета до уничтожения
|
||||
|
||||
public:
|
||||
externalVariable(String parameters);
|
||||
~externalVariable();
|
||||
void doByInterval(); // для данного класса doByInterval+int выполняет роль счетчика обратного отсчета до уничтожения
|
||||
};
|
||||
@@ -70,10 +70,11 @@ void IoTItem::setValue(String valStr) {
|
||||
|
||||
void IoTItem::setValue(IoTValue Value) {
|
||||
value = Value;
|
||||
if (value.isDecimal)
|
||||
if (value.isDecimal) {
|
||||
regEvent(value.valD, "");
|
||||
else
|
||||
} else {
|
||||
regEvent(value.valS, "");
|
||||
}
|
||||
}
|
||||
|
||||
//когда событие случилось
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
{
|
||||
"menuSection": "Виртуальные элементы",
|
||||
|
||||
"configItem": [{
|
||||
"name": "Таймер",
|
||||
"type": "Writing",
|
||||
"subtype": "Timer",
|
||||
"id": "timer",
|
||||
"widget": "",
|
||||
"page": "",
|
||||
"descr": "",
|
||||
|
||||
"int": 1,
|
||||
"countDown": 15,
|
||||
"ticker": 0,
|
||||
"repeat": 0,
|
||||
"needSave": 0
|
||||
}],
|
||||
|
||||
"configItem": [
|
||||
{
|
||||
"name": "Таймер",
|
||||
"type": "Writing",
|
||||
"subtype": "Timer",
|
||||
"id": "timer",
|
||||
"widget": "anydataDef",
|
||||
"page": "Таймеры",
|
||||
"descr": "Таймер",
|
||||
"int": 1,
|
||||
"countDown": 15,
|
||||
"ticker": 0,
|
||||
"repeat": 0,
|
||||
"needSave": 0,
|
||||
"num": 1
|
||||
}
|
||||
],
|
||||
"about": {
|
||||
"authorName": "Ilya Belyakov",
|
||||
"authorContact": "https://t.me/Biveraxe",
|
||||
@@ -33,9 +33,7 @@
|
||||
"needSave": "Требуется сохранять(1) или нет(0) состояние в энерго независимую память. Функция находится в разработке."
|
||||
}
|
||||
},
|
||||
|
||||
"defActive": true,
|
||||
|
||||
"devices": {
|
||||
"esp32_4mb": [],
|
||||
"esp8266_4mb": []
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
#include "Global.h"
|
||||
#include "classes/IoTItem.h"
|
||||
|
||||
|
||||
//дочь - родитель
|
||||
class Variable : public IoTItem {
|
||||
private:
|
||||
|
||||
public:
|
||||
Variable(String parameters): IoTItem(parameters) {
|
||||
|
||||
Variable(String parameters) : IoTItem(parameters) {
|
||||
}
|
||||
|
||||
// особенность данного модуля - просто хранение значения для сценария, нет событий
|
||||
@@ -16,7 +14,6 @@ class Variable : public IoTItem {
|
||||
// }
|
||||
|
||||
void doByInterval() {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,44 +1,43 @@
|
||||
{
|
||||
"menuSection": "Виртуальные элементы",
|
||||
|
||||
"configItem": [
|
||||
{
|
||||
"name": "Окно ввода цифры",
|
||||
"type": "Reading",
|
||||
"subtype": "Variable",
|
||||
"id": "dedit",
|
||||
"widget": "",
|
||||
"page": "",
|
||||
"descr": "",
|
||||
|
||||
"int": "0",
|
||||
"val": "0"
|
||||
},
|
||||
{
|
||||
"name": "Окно ввода времени",
|
||||
"type": "Reading",
|
||||
"subtype": "Variable",
|
||||
"id": "tedit",
|
||||
"widget": "",
|
||||
"page": "",
|
||||
"descr": "",
|
||||
|
||||
"int": "0",
|
||||
"val": "0"
|
||||
},
|
||||
{
|
||||
"name": "Переменная",
|
||||
"type": "Reading",
|
||||
"subtype": "Variable",
|
||||
"id": "var",
|
||||
"widget": "",
|
||||
"page": "",
|
||||
"descr": "",
|
||||
|
||||
"int": "0",
|
||||
"val": "0"
|
||||
}],
|
||||
|
||||
{
|
||||
"name": "Окно ввода цифры (переменная)",
|
||||
"type": "Reading",
|
||||
"subtype": "Variable",
|
||||
"id": "value",
|
||||
"widget": "inputDgt",
|
||||
"page": "Ввод",
|
||||
"descr": "Введите цифру",
|
||||
"int": "0",
|
||||
"val": "0",
|
||||
"num": 2
|
||||
},
|
||||
{
|
||||
"name": "Окно ввода времени",
|
||||
"type": "Reading",
|
||||
"subtype": "Variable",
|
||||
"id": "time",
|
||||
"widget": "inputTm",
|
||||
"page": "Ввод",
|
||||
"descr": "Введите время",
|
||||
"int": "0",
|
||||
"val": "0",
|
||||
"num": 3
|
||||
},
|
||||
{
|
||||
"name": "Окно ввода даты",
|
||||
"type": "Reading",
|
||||
"subtype": "Variable",
|
||||
"id": "time",
|
||||
"widget": "inputDate",
|
||||
"page": "Ввод",
|
||||
"descr": "Введите дату",
|
||||
"int": "0",
|
||||
"val": "0",
|
||||
"num": 4
|
||||
}
|
||||
],
|
||||
"about": {
|
||||
"authorName": "Ilya Belyakov",
|
||||
"authorContact": "https://t.me/Biveraxe",
|
||||
@@ -52,9 +51,7 @@
|
||||
"val": "Не используется"
|
||||
}
|
||||
},
|
||||
|
||||
"defActive": true,
|
||||
|
||||
"devices": {
|
||||
"esp32_4mb": [],
|
||||
"esp8266_4mb": []
|
||||
|
||||
Reference in New Issue
Block a user