Разделяем понятия регистрации и генерации события

регистрация подразумевает фиксацию изменений и уведомление
WS и MQTT интерфейса
генерация подразумевает добавление факта события в очередь сценария
и отправку на другие устройства
This commit is contained in:
2022-10-29 20:04:02 +03:00
parent 4ddbd97999
commit d9788f96bd
11 changed files with 68 additions and 69 deletions

View File

@@ -68,9 +68,9 @@ class ButtonIn : public IoTItem {
_lastButtonState = _reading;
}
void setValue(const IoTValue& Value, bool generateEvent = true) {
void setValue(const IoTValue& Value, bool genEvent = true) {
value = Value;
if (generateEvent) regEvent((String)(int)value.valD, "ButtonIn");
regEvent((String)(int)value.valD, "ButtonIn", false, genEvent);
}
String getValue() {

View File

@@ -37,10 +37,10 @@ class ButtonOut : public IoTItem {
return {}; // команда поддерживает возвращаемое значения. Т.е. по итогу выполнения команды или общения с внешней системой, можно вернуть значение в сценарий для дальнейшей обработки
}
void setValue(const IoTValue& Value, bool generateEvent = true) {
void setValue(const IoTValue& Value, bool genEvent = true) {
value = Value;
IoTgpio.digitalWrite(_pin, _inv?!value.valD:value.valD);
if (generateEvent) regEvent((String)(int)value.valD, "ButtonOut");
regEvent((String)(int)value.valD, "ButtonOut", false, genEvent);
}
String getValue() {

View File

@@ -52,12 +52,12 @@ class IoTServo : public IoTItem {
return {};
}
void setValue(const IoTValue& Value, bool generateEvent = true) {
void setValue(const IoTValue& Value, bool genEvent = true) {
value = Value;
if (value.isDecimal & (_oldValue != value.valD)) {
_oldValue = value.valD;
servObj.write(_oldValue);
if (generateEvent) regEvent(value.valD, "IoTServo");
regEvent(value.valD, "IoTServo", false, genEvent);
}
}

View File

@@ -54,10 +54,10 @@ class Pwm32 : public IoTItem {
}
}
void setValue(const IoTValue& Value, bool generateEvent = true) {
void setValue(const IoTValue& Value, bool genEvent = true) {
value = Value;
ledcWrite(_ledChannel, value.valD);
if (generateEvent) regEvent(value.valD, "Pwm32");
regEvent(value.valD, "Pwm32", false, genEvent);
}
//=======================================================================================================

View File

@@ -44,10 +44,10 @@ class Pwm8266 : public IoTItem {
}
}
void setValue(const IoTValue& Value, bool generateEvent = true) {
void setValue(const IoTValue& Value, bool genEvent = true) {
value = Value;
IoTgpio.analogWrite(_pin, value.valD);
if (generateEvent) regEvent(value.valD, "Pwm8266");
regEvent(value.valD, "Pwm8266", false, genEvent);
}
//=======================================================================================================