mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-30 11:59:12 +03:00
Добавляем externalVariable для приема и фиксации на время значения события для использования в сценариях
This commit is contained in:
@@ -28,6 +28,8 @@ class IoTItem {
|
|||||||
|
|
||||||
IoTValue value; // хранение основного значения, котрое обновляется из сценария, execute(), loop() или doByInterval()
|
IoTValue value; // хранение основного значения, котрое обновляется из сценария, execute(), loop() или doByInterval()
|
||||||
|
|
||||||
|
bool iAmDead = false; // признак необходимости удалить объект из базы
|
||||||
|
|
||||||
virtual IoTGpio* getGpioDriver();
|
virtual IoTGpio* getGpioDriver();
|
||||||
virtual void setValue(IoTValue Value);
|
virtual void setValue(IoTValue Value);
|
||||||
|
|
||||||
@@ -46,3 +48,13 @@ class IoTItem {
|
|||||||
};
|
};
|
||||||
|
|
||||||
IoTItem* findIoTItem(String name); // поиск экземпляра элемента модуля по имени
|
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("plus"), _plus, false);
|
||||||
jsonRead(parameters, F("round"), _round, 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;
|
String map;
|
||||||
jsonRead(parameters, F("map"), map, false);
|
jsonRead(parameters, F("map"), map, false);
|
||||||
if (map != "") {
|
if (map != "") {
|
||||||
@@ -97,3 +104,16 @@ void IoTItem::setValue(IoTValue Value) {
|
|||||||
if (value.isDecimal) regEvent(value.valD, "");
|
if (value.isDecimal) regEvent(value.valD, "");
|
||||||
else regEvent(value.valS, "");
|
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