Files
IoTManager/src/Main.cpp

123 lines
3.4 KiB
C++
Raw Normal View History

#include "Main.h"
2021-12-22 14:09:50 +01:00
IoTScenario iotScen; // объект управления сценарием
2021-12-22 14:09:50 +01:00
void setup() {
Serial.begin(115200);
Serial.flush();
Serial.println();
Serial.println(F("--------------started----------------"));
//создание экземпляров классов
myNotAsyncActions = new NotAsync(do_LAST);
//инициализация файловой системы
2021-12-22 14:09:50 +01:00
fileSystemInit();
//получение chip id
setChipId();
//синхронизация глобальных переменных с flash
globalVarsSync();
//подключаемся к роутеру
routerConnect();
//инициализация асинхронного веб сервера и веб сокетов
#ifdef ASYNC_WEB_SERVER
asyncWebServerInit();
#endif
#ifdef ASYNC_WEB_SOCKETS
asyncWebSocketsInit();
#endif
//инициализация стандартного веб сервера и веб сокетов
#ifdef STANDARD_WEB_SERVER
standWebServerInit();
#endif
#ifdef STANDARD_WEB_SOCKETS
standWebSocketsInit();
#endif
2022-01-15 19:11:01 +01:00
//инициализация mqtt
mqttInit();
2022-01-15 19:11:01 +01:00
//настраиваем микроконтроллер
configure("/config.json");
//инициализация задач переодического выполнения
periodicTasksInit();
//синхронизация списка устройств
addThisDeviceToList();
//запуск работы udp
asyncUdpInit();
//загрузка сценария
iotScen.loadScenario("/scenario.txt");
// iotScen.ExecScenario("");
// test
Serial.println("-------test start--------");
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}"));
// пример получения JSON всех Items
// Serial.println(getParamsJson());
//чтение одного параметра
// Serial.println(findIoTItem("t1")->getValue());
//тест перебора пинов из расширения
// for (int i = 109; i < 112; i++) {
// IoTgpio.pinMode(i, OUTPUT);
// IoTgpio.digitalWrite(i, !IoTgpio.digitalRead(i));
// delay(1000);
// IoTgpio.digitalWrite(i, !IoTgpio.digitalRead(i));
// delay(1000);
// }
2021-12-22 14:09:50 +01:00
}
void loop() {
2021-12-23 17:55:46 +01:00
//обновление задач таскера
ts.update();
2022-01-20 13:36:00 +01:00
//отправка json
#ifdef QUEUE_FROM_STR
if (sendJsonFiles) sendJsonFiles->loop();
#endif
#ifdef STANDARD_WEB_SERVER
//обработка web сервера
HTTP.handleClient();
#endif
#ifdef STANDARD_WEB_SOCKETS
//обработка web сокетов
standWebSocket.loop();
#endif
2022-01-15 19:11:01 +01:00
//обновление mqtt
mqttLoop();
// передаем управление каждому элементу конфигурации для выполнения своих функций
for (std::list<IoTItem*>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
(*it)->loop();
if ((*it)->iAmDead) {
delete *it;
IoTItems.erase(it);
break;
}
}
handleOrder();
handleEvent();
// iotScen.ExecScenario();
2021-12-22 14:09:50 +01:00
}