diff --git a/data_svelte/items.json b/data_svelte/items.json index abcd51b9..90f6527a 100644 --- a/data_svelte/items.json +++ b/data_svelte/items.json @@ -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", diff --git a/include/classes/IoTItem.h b/include/classes/IoTItem.h index bda22c1f..eb1d4154 100644 --- a/include/classes/IoTItem.h +++ b/include/classes/IoTItem.h @@ -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 ¶m); + virtual IoTValue execute(String command, std::vector& param); void regEvent(String value, String consoleInfo); void regEvent(float value, String consoleInfo); @@ -33,9 +34,9 @@ class IoTItem { unsigned long difference; IoTValue value; // хранение основного значения, которое обновляется из сценария, execute(), loop() или doByInterval() - - bool iAmDead = false; // признак необходимости удалить объект из базы - bool iAmLocal = true; // признак локальной переменной + + bool iAmDead = false; // признак необходимости удалить объект из базы + bool iAmLocal = true; // признак локальной переменной bool needSave = false; bool enableDoByInt = true; @@ -49,9 +50,9 @@ class IoTItem { String _subtype; String _id; 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* 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 выполняет роль счетчика обратного отсчета до уничтожения }; \ No newline at end of file diff --git a/src/classes/IoTItem.cpp b/src/classes/IoTItem.cpp index 173c4101..2c073450 100644 --- a/src/classes/IoTItem.cpp +++ b/src/classes/IoTItem.cpp @@ -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, ""); + } } //когда событие случилось diff --git a/src/modules/virtual/Timer/modinfo.json b/src/modules/virtual/Timer/modinfo.json index 3c9244af..f2256166 100644 --- a/src/modules/virtual/Timer/modinfo.json +++ b/src/modules/virtual/Timer/modinfo.json @@ -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": [] diff --git a/src/modules/virtual/Variable/Variable.cpp b/src/modules/virtual/Variable/Variable.cpp index 4b97b22e..c921bb64 100644 --- a/src/modules/virtual/Variable/Variable.cpp +++ b/src/modules/virtual/Variable/Variable.cpp @@ -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() { - } }; diff --git a/src/modules/virtual/Variable/modinfo.json b/src/modules/virtual/Variable/modinfo.json index 2cdd34f9..5f2bb91f 100644 --- a/src/modules/virtual/Variable/modinfo.json +++ b/src/modules/virtual/Variable/modinfo.json @@ -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": []