From ff84a18fd02218133574530a73e41c568fb6060a Mon Sep 17 00:00:00 2001 From: biver Date: Sun, 26 Mar 2023 13:23:46 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=20=D1=8D=D0=BB?= =?UTF-8?q?=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=20=D0=BF=D0=BE=20=D1=87?= =?UTF-8?q?=D0=B0=D1=81=D1=82=D0=B8=20=D0=98=D0=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/classes/IoTItem.h | 2 ++ src/classes/IoTItem.cpp | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/classes/IoTItem.h b/include/classes/IoTItem.h index 342bc02f..794dae73 100644 --- a/include/classes/IoTItem.h +++ b/include/classes/IoTItem.h @@ -24,6 +24,7 @@ class IoTItem { String getSubtype(); String getID(); + bool isStrInID(const String& str); int getIntFromNet(); virtual String getValue(); long getInterval(); @@ -91,6 +92,7 @@ class IoTItem { }; IoTItem* findIoTItem(const String& name); // поиск экземпляра элемента модуля по имени +IoTItem* findIoTItemByPartOfName(const String& partName); // поиск элемента модуля в существующей конфигурации по части имени String getItemValue(const String& name); // поиск плюс получение значения bool isItemExist(const String& name); // существует ли айтем //StaticJsonDocument* getLocalItemsAsJSON(); // сбор всех локальных значений Items diff --git a/src/classes/IoTItem.cpp b/src/classes/IoTItem.cpp index 26fb41d1..3a5c9a7d 100644 --- a/src/classes/IoTItem.cpp +++ b/src/classes/IoTItem.cpp @@ -200,6 +200,10 @@ String IoTItem::getID() { return _id; }; +bool IoTItem::isStrInID(const String& str) { + return _id.indexOf(str) != -1; +} + void IoTItem::setInterval(long interval) { _interval = interval; } @@ -245,6 +249,17 @@ IoTItem* findIoTItem(const String& name) { return nullptr; } + +// поиск элемента модуля в существующей конфигурации по части имени +IoTItem* findIoTItemByPartOfName(const String& partName) { + if (partName == "") return nullptr; + for (std::list::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) { + if ((*it)->isStrInID(partName)) return *it; + } + + return nullptr; +} + // поиск плюс получение значения String getItemValue(const String& name) { IoTItem* tmp = findIoTItem(name);