добавление возможности управления виджетами из модулей

This commit is contained in:
Dmitry Borisenko
2022-12-04 01:37:27 +01:00
parent 3285a70a88
commit 08ffc74e8d
9 changed files with 147 additions and 68 deletions

View File

@@ -10,7 +10,7 @@ struct IoTValue {
class IoTItem {
public:
IoTItem(const String &parameters);
IoTItem(const String& parameters);
virtual ~IoTItem() {}
virtual void loop();
virtual void doByInterval();
@@ -28,7 +28,10 @@ class IoTItem {
virtual String getValue();
long getInterval();
bool isGlobal();
void sendSubWidgetsValues(String& id, String& json);
virtual void handleSendSubWidgetsValues();
void setInterval(long interval);
void setIntFromNet(int interval);
@@ -38,7 +41,7 @@ class IoTItem {
IoTValue value; // хранение основного значения, которое обновляется из сценария, execute(), loop() или doByInterval()
//bool iAmDead = false; // признак необходимости удалить объект из базы
// bool iAmDead = false; // признак необходимости удалить объект из базы
bool iAmLocal = true; // признак того, что айтем был создан локально
bool enableDoByInt = true;
@@ -63,11 +66,11 @@ class IoTItem {
protected:
bool _needSave = false; // признак необходимости сохранять и загружать значение элемента на flash
String _subtype = "";
String _id = "errorId"; // если будет попытка создания Item без указания id, то элемент оставит это значение
String _id = "errorId"; // если будет попытка создания Item без указания id, то элемент оставит это значение
long _interval = 0;
int _intFromNet = -2; // количество секунд доверия, пришедших из сети вместе с данными для текущего ИД
// -2 - данные не приходили, скорее всего, элемент локальный, доверие есть
// -1 - данные приходили и обратный отсчет дошел до нуля, значит доверия нет
int _intFromNet = -2; // количество секунд доверия, пришедших из сети вместе с данными для текущего ИД
// -2 - данные не приходили, скорее всего, элемент локальный, доверие есть
// -1 - данные приходили и обратный отсчет дошел до нуля, значит доверия нет
float _multiply; // умножаем на значение
float _plus; // увеличиваем на значение
@@ -80,9 +83,9 @@ class IoTItem {
bool _global = false; // характеристика айтема, что ему нужно слать и принимать события из внешнего мира
};
IoTItem* findIoTItem(const String& name); // поиск экземпляра элемента модуля по имени
String getItemValue(const String& name); // поиск плюс получение значения
bool isItemExist(const String& name); // существует ли айтем
IoTItem* findIoTItem(const String& name); // поиск экземпляра элемента модуля по имени
String getItemValue(const String& name); // поиск плюс получение значения
bool isItemExist(const String& name); // существует ли айтем
StaticJsonDocument<JSON_BUFFER_SIZE>* getLocalItemsAsJSON(); // сбор всех локальных значений Items
IoTItem* createItemFromNet(const String& itemId, const String& value, int interval);