2022-01-14 21:48:43 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
2022-02-14 12:48:59 +03:00
|
|
|
struct IoTValue {
|
|
|
|
|
float valD = 0;
|
|
|
|
|
String valS = "";
|
|
|
|
|
bool isDecimal = true;
|
|
|
|
|
};
|
2022-01-14 21:48:43 +01:00
|
|
|
|
2022-02-06 09:11:07 +03:00
|
|
|
class IoTItem {
|
2022-01-15 16:30:34 +01:00
|
|
|
public:
|
2022-02-06 09:11:07 +03:00
|
|
|
IoTItem(String parameters);
|
|
|
|
|
~IoTItem();
|
2022-01-14 21:48:43 +01:00
|
|
|
|
2022-01-15 16:30:34 +01:00
|
|
|
void loop();
|
|
|
|
|
virtual void doByInterval();
|
2022-02-14 12:48:59 +03:00
|
|
|
virtual IoTValue execute(String command, std::vector<IoTValue> ¶m);
|
2022-02-06 09:32:28 +03:00
|
|
|
|
2022-01-15 16:30:34 +01:00
|
|
|
void regEvent(String value, String consoleInfo);
|
2022-02-01 23:04:06 +03:00
|
|
|
void regEvent(float value, String consoleInfo);
|
2022-01-14 21:48:43 +01:00
|
|
|
|
2022-02-01 12:30:13 +03:00
|
|
|
String getSubtype();
|
2022-01-15 16:30:34 +01:00
|
|
|
String getID();
|
2022-01-14 21:48:43 +01:00
|
|
|
|
2022-01-15 16:30:34 +01:00
|
|
|
unsigned long currentMillis;
|
|
|
|
|
unsigned long prevMillis;
|
|
|
|
|
unsigned long difference;
|
|
|
|
|
|
2022-02-14 12:48:59 +03:00
|
|
|
IoTValue value; // хранение основного значения, котрое обновляется из сценария, execute(), loop() или doByInterval()
|
|
|
|
|
|
2022-01-15 16:30:34 +01:00
|
|
|
protected:
|
2022-02-01 12:30:13 +03:00
|
|
|
String _subtype;
|
2022-01-15 16:30:34 +01:00
|
|
|
String _id;
|
|
|
|
|
unsigned long _interval;
|
2022-02-01 23:04:06 +03:00
|
|
|
|
|
|
|
|
float _multiply; // умножаем на значение
|
|
|
|
|
float _plus; // увеличиваем на значение
|
|
|
|
|
int _map1;
|
|
|
|
|
int _map2;
|
|
|
|
|
int _map3;
|
|
|
|
|
int _map4;
|
|
|
|
|
int _round; // 1, 10, 100, 1000, 10000
|
2022-01-15 16:30:34 +01:00
|
|
|
};
|
2022-02-14 12:48:59 +03:00
|
|
|
|
|
|
|
|
IoTItem* findIoTItem(String name); // поиск экземпляра элемента модуля по имени
|