mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-27 06:32:19 +03:00
Добавляем externalVariable для приема и фиксации на время значения события для использования в сценариях
This commit is contained in:
@@ -27,6 +27,8 @@ class IoTItem {
|
||||
unsigned long difference;
|
||||
|
||||
IoTValue value; // хранение основного значения, котрое обновляется из сценария, execute(), loop() или doByInterval()
|
||||
|
||||
bool iAmDead = false; // признак необходимости удалить объект из базы
|
||||
|
||||
virtual IoTGpio* getGpioDriver();
|
||||
virtual void setValue(IoTValue Value);
|
||||
@@ -46,3 +48,13 @@ class IoTItem {
|
||||
};
|
||||
|
||||
IoTItem* findIoTItem(String name); // поиск экземпляра элемента модуля по имени
|
||||
|
||||
|
||||
class externalVariable: IoTItem { // объект, создаваемый при получении информации о событии на другом контроллере для хранения информации о событии указанное время
|
||||
|
||||
public:
|
||||
externalVariable(String parameters);
|
||||
~externalVariable();
|
||||
void doByInterval(); // для данного класса doByInterval+int выполняет роль счетчика обратного отсчета до уничтожения
|
||||
|
||||
};
|
||||
@@ -15,6 +15,13 @@ IoTItem::IoTItem(String parameters) {
|
||||
jsonRead(parameters, F("plus"), _plus, false);
|
||||
jsonRead(parameters, F("round"), _round, false);
|
||||
|
||||
String valAsStr;
|
||||
if (jsonRead(parameters, F("val"), valAsStr, false)) // значение переменной или датчика при инициализации если есть в конфигурации
|
||||
if (value.isDecimal = isDigitDotCommaStr(valAsStr))
|
||||
value.valD = valAsStr.toFloat();
|
||||
else
|
||||
value.valS = valAsStr;
|
||||
|
||||
String map;
|
||||
jsonRead(parameters, F("map"), map, false);
|
||||
if (map != "") {
|
||||
@@ -96,4 +103,17 @@ void IoTItem::setValue(IoTValue Value) {
|
||||
value = Value;
|
||||
if (value.isDecimal) regEvent(value.valD, "");
|
||||
else regEvent(value.valS, "");
|
||||
}
|
||||
|
||||
|
||||
externalVariable::externalVariable(String parameters) : IoTItem(parameters) {
|
||||
Serial.printf("Call from externalVariable: parameters %s\n", parameters.c_str());
|
||||
}
|
||||
|
||||
externalVariable::~externalVariable() {
|
||||
Serial.printf("Call from ~externalVariable: Im dead\n");
|
||||
}
|
||||
|
||||
void externalVariable::doByInterval() { // для данного класса doByInterval+int выполняет роль счетчика обратного отсчета до уничтожения
|
||||
iAmDead = true;
|
||||
}
|
||||
Reference in New Issue
Block a user