mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-28 07:02:17 +03:00
Разделяем понятия регистрации и генерации события
регистрация подразумевает фиксацию изменений и уведомление WS и MQTT интерфейса генерация подразумевает добавление факта события в очередь сценария и отправку на другие устройства
This commit is contained in:
@@ -171,14 +171,14 @@ public:
|
||||
return {};
|
||||
}
|
||||
|
||||
void setValue(IoTValue Value, bool generateEvent = true){
|
||||
void setValue(const IoTValue& Value, bool genEvent = true){
|
||||
if (!_strip) return;
|
||||
|
||||
value = Value;
|
||||
int b = map(value.valD, 1,1024,1,255);
|
||||
_strip->setBrightness(b);
|
||||
_strip->show();
|
||||
if (generateEvent) regEvent(value.valD, "Ws2812b");
|
||||
regEvent(value.valD, "Ws2812b", false, genEvent);
|
||||
}
|
||||
|
||||
~Ws2812b(){};
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
//=======================================================================================================
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
//=======================================================================================================
|
||||
|
||||
|
||||
@@ -263,7 +263,7 @@ class Loging : public IoTItem {
|
||||
}
|
||||
}
|
||||
|
||||
void regEvent(const String& value, const String& consoleInfo, bool error = false) {
|
||||
void regEvent(const String& value, const String& consoleInfo, bool error = false, bool genEvent = true) {
|
||||
String userDate = getItemValue(id + "-date");
|
||||
String currentDate = getTodayDateDotFormated();
|
||||
//отправляем в график данные только когда выбран сегодняшний день
|
||||
@@ -306,14 +306,14 @@ class Date : public IoTItem {
|
||||
value.isDecimal = false;
|
||||
}
|
||||
|
||||
void setValue(const String& valStr) {
|
||||
void setValue(const String& valStr, bool genEvent = true) {
|
||||
value.valS = valStr;
|
||||
setValue(value);
|
||||
setValue(value, genEvent);
|
||||
}
|
||||
|
||||
void setValue(const IoTValue& Value, bool generateEvent = true) {
|
||||
void setValue(const IoTValue& Value, bool genEvent = true) {
|
||||
value = Value;
|
||||
if (generateEvent) regEvent(value.valS, "");
|
||||
regEvent(value.valS, "", false, genEvent);
|
||||
//отправка данных при изменении даты
|
||||
for (std::list<IoTItem *>::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||
if ((*it)->getSubtype() == "Loging") {
|
||||
|
||||
@@ -6,9 +6,9 @@ class VButton : public IoTItem {
|
||||
public:
|
||||
VButton(String parameters): IoTItem(parameters) { }
|
||||
|
||||
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, "VButton");
|
||||
regEvent((String)(int)value.valD, "VButton", false, genEvent);
|
||||
}
|
||||
|
||||
String getValue() {
|
||||
|
||||
@@ -8,11 +8,6 @@ class Variable : public IoTItem {
|
||||
Variable(String parameters) : IoTItem(parameters) {
|
||||
}
|
||||
|
||||
// особенность данного модуля - просто хранение значения для сценария, нет событий
|
||||
// void setValue(const IoTValue& Value, bool generateEvent = true) {
|
||||
// value = Value;
|
||||
// }
|
||||
|
||||
void doByInterval() {
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user