mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
Меняем тип переменной с элементами на list для ускорения операций удаления эдементов спсика
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
#include "Global.h"
|
||||
#include "classes/IoTItem.h"
|
||||
|
||||
extern std::vector<IoTItem*> IoTItems; // вектор ссылок базового класса IoTItem - список всех запущенных сенсоров
|
||||
extern std::list<IoTItem*> IoTItems; // вектор ссылок базового класса IoTItem - список всех запущенных сенсоров
|
||||
|
||||
extern void configure(String path);
|
||||
void clearConfigure();
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <TickerScheduler.h>
|
||||
#include <PubSubClient.h>
|
||||
#include <StringCommand.h>
|
||||
#include <list>
|
||||
|
||||
#ifdef ESP32
|
||||
#include "WiFi.h"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
extern IoTGpio IoTgpio;
|
||||
|
||||
std::vector<IoTItem*> IoTItems;
|
||||
std::list<IoTItem*> IoTItems;
|
||||
void* getAPI(String subtype, String params);
|
||||
|
||||
void configure(String path) {
|
||||
@@ -38,8 +38,8 @@ void configure(String path) {
|
||||
|
||||
void clearConfigure() {
|
||||
Serial.printf("Start clearing config\n");
|
||||
for (unsigned int i = 0; i < IoTItems.size(); i++) {
|
||||
if (IoTItems[i]) delete IoTItems[i];
|
||||
for (std::list<IoTItem*>::iterator it=IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||
if (*it) delete *it;
|
||||
}
|
||||
IoTItems.clear();
|
||||
}
|
||||
@@ -94,8 +94,10 @@ void loop() {
|
||||
//обновление mqtt
|
||||
mqttLoop();
|
||||
|
||||
for (unsigned int i = 0; i < IoTItems.size(); i++) {
|
||||
IoTItems[i]->loop();
|
||||
// передаем управление каждому элементу конфигурации для выполнения своих функций
|
||||
for (std::list<IoTItem*>::iterator it=IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||
(*it)->loop();
|
||||
//if ((*it)->iAmDead) delete *it;
|
||||
}
|
||||
|
||||
handleOrder();
|
||||
|
||||
@@ -86,8 +86,8 @@ void IoTItem::doByInterval() {}
|
||||
IoTValue IoTItem::execute(String command, std::vector<IoTValue>& param) { return {}; }
|
||||
|
||||
IoTItem* findIoTItem(String name) { // поиск элемента модуля в существующей конфигурации
|
||||
for (unsigned int i = 0; i < IoTItems.size(); i++) {
|
||||
if (IoTItems[i]->getID() == name) return IoTItems[i];
|
||||
for (std::list<IoTItem*>::iterator it=IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||
if ((*it)->getID() == name) return *it;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
|
||||
Reference in New Issue
Block a user