#pragma once #include "classes/IoTGpio.h" struct IoTValue { float valD = 0; String valS = ""; bool isDecimal = true; }; class IoTItem { public: IoTItem(String parameters); ~IoTItem(); void loop(); virtual void doByInterval(); virtual IoTValue execute(String command, std::vector ¶m); void regEvent(String value, String consoleInfo); void regEvent(float value, String consoleInfo); String getSubtype(); String getID(); unsigned long currentMillis; unsigned long prevMillis; unsigned long difference; IoTValue value; // хранение основного значения, котрое обновляется из сценария, execute(), loop() или doByInterval() virtual IoTGpio* getGpioDriver(); virtual void setValue(IoTValue Value); protected: String _subtype; String _id; unsigned long _interval; float _multiply; // умножаем на значение float _plus; // увеличиваем на значение int _map1; int _map2; int _map3; int _map4; int _round; // 1, 10, 100, 1000, 10000 }; IoTItem* findIoTItem(String name); // поиск экземпляра элемента модуля по имени