Добавляем в ядро реакцию одного элемента от другого

Необходимо просто добавить в конфигурацию элемента поле trackingID с указанием ИД отслеживаемого элемента
важное требование - такие следящие элементы должны располагаться ниже отслеживаемых
This commit is contained in:
2023-09-03 11:42:21 +03:00
parent 646128b999
commit a1d053c37d
3 changed files with 31 additions and 7 deletions

View File

@@ -60,6 +60,7 @@ class IoTItem {
virtual void onMqttRecive(String& topic, String& msg);
virtual void onMqttWsAppConnectEvent();
virtual void onModuleOrder(String& key, String& value);
virtual void onTrackingValue(IoTItem* item); // момент, когда ядро заметило изменение отслеживаемого значения
// делаем доступным модулям отправку сообщений в телеграм
virtual void sendTelegramMsg(bool often, String msg);
@@ -71,6 +72,8 @@ class IoTItem {
virtual void clearHistory();
virtual void setTodayDate();
bool isTracking(IoTItem* item); // проверка на отслеживание
protected:
bool _needSave = false; // признак необходимости сохранять и загружать значение элемента на flash
String _subtype = "";
@@ -90,6 +93,8 @@ class IoTItem {
int _numDigits = 1; // количество целых значений, не значимые позиции заменяются нулем в строковом формате
bool _global = false; // характеристика айтема, что ему нужно слать и принимать события из внешнего мира
IoTValue* _trackingValue = nullptr; // указатель на значение родительского элемента изменение которого отслеживается
};
IoTItem* findIoTItem(const String& name); // поиск экземпляра элемента модуля по имени