mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-31 04:19:15 +03:00
Добавляем механизм очистки суецидных внешних переменных
This commit is contained in:
@@ -10,8 +10,7 @@ struct IoTValue {
|
|||||||
class IoTItem {
|
class IoTItem {
|
||||||
public:
|
public:
|
||||||
IoTItem(String parameters);
|
IoTItem(String parameters);
|
||||||
~IoTItem();
|
virtual ~IoTItem() {}
|
||||||
|
|
||||||
void loop();
|
void loop();
|
||||||
virtual void doByInterval();
|
virtual void doByInterval();
|
||||||
virtual IoTValue execute(String command, std::vector<IoTValue> ¶m);
|
virtual IoTValue execute(String command, std::vector<IoTValue> ¶m);
|
||||||
|
|||||||
13
src/Main.cpp
13
src/Main.cpp
@@ -56,12 +56,17 @@ void setup() {
|
|||||||
|
|
||||||
//загрузка сценария
|
//загрузка сценария
|
||||||
iotScen.loadScenario("/scenario.txt");
|
iotScen.loadScenario("/scenario.txt");
|
||||||
iotScen.ExecScenario("");
|
//iotScen.ExecScenario("");
|
||||||
|
|
||||||
// test
|
// test
|
||||||
Serial.println("-------test start--------");
|
Serial.println("-------test start--------");
|
||||||
Serial.println("--------test end---------");
|
Serial.println("--------test end---------");
|
||||||
|
|
||||||
|
// симуляция добавления внешних событий
|
||||||
|
IoTItems.push_back((IoTItem*) new externalVariable("{\"id\":\"rel1\",\"val\":10,\"int\":20}"));
|
||||||
|
IoTItems.push_back((IoTItem*) new externalVariable("{\"id\":\"rel4\",\"val\":34,\"int\":30}"));
|
||||||
|
|
||||||
|
|
||||||
//тест перебора пинов из расширения
|
//тест перебора пинов из расширения
|
||||||
// for (int i = 109; i < 112; i++) {
|
// for (int i = 109; i < 112; i++) {
|
||||||
// IoTgpio.pinMode(i, OUTPUT);
|
// IoTgpio.pinMode(i, OUTPUT);
|
||||||
@@ -97,7 +102,11 @@ void loop() {
|
|||||||
// передаем управление каждому элементу конфигурации для выполнения своих функций
|
// передаем управление каждому элементу конфигурации для выполнения своих функций
|
||||||
for (std::list<IoTItem*>::iterator it=IoTItems.begin(); it != IoTItems.end(); ++it) {
|
for (std::list<IoTItem*>::iterator it=IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||||
(*it)->loop();
|
(*it)->loop();
|
||||||
//if ((*it)->iAmDead) delete *it;
|
if ((*it)->iAmDead) {
|
||||||
|
delete *it;
|
||||||
|
IoTItems.erase(it);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
handleOrder();
|
handleOrder();
|
||||||
|
|||||||
@@ -31,7 +31,8 @@ IoTItem::IoTItem(String parameters) {
|
|||||||
_map4 = selectFromMarkerToMarker(map, ",", 3).toInt();
|
_map4 = selectFromMarkerToMarker(map, ",", 3).toInt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
IoTItem::~IoTItem() {}
|
|
||||||
|
// IoTItem::~IoTItem() {}
|
||||||
|
|
||||||
String IoTItem::getSubtype() {
|
String IoTItem::getSubtype() {
|
||||||
return _subtype;
|
return _subtype;
|
||||||
@@ -107,7 +108,8 @@ void IoTItem::setValue(IoTValue Value) {
|
|||||||
|
|
||||||
|
|
||||||
externalVariable::externalVariable(String parameters) : IoTItem(parameters) {
|
externalVariable::externalVariable(String parameters) : IoTItem(parameters) {
|
||||||
Serial.printf("Call from externalVariable: parameters %s\n", parameters.c_str());
|
prevMillis = millis(); // запоминаем текущее значение таймера для выполения doByInterval после int сек
|
||||||
|
Serial.printf("Call from externalVariable: parameters %s %d\n", parameters.c_str(), _interval);
|
||||||
}
|
}
|
||||||
|
|
||||||
externalVariable::~externalVariable() {
|
externalVariable::~externalVariable() {
|
||||||
|
|||||||
Reference in New Issue
Block a user