mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
Добавляем в приемник 433 интервал игнорирования повторов
Типа защиты от виртуального дребезга контактов
This commit is contained in:
@@ -9,11 +9,16 @@ class RCswitch : public IoTItem {
|
||||
private:
|
||||
int _pinRx; // Выход радио модуля
|
||||
int _pinTx; // Выход модуля передатчика
|
||||
int _intRepeat = 6;
|
||||
int _repeatCount = 0;
|
||||
unsigned long _oldValue = 0;
|
||||
unsigned long _newValue = 0;
|
||||
|
||||
public:
|
||||
RCswitch(String parameters): IoTItem(parameters) {
|
||||
jsonRead(parameters, "pinRx", _pinRx);
|
||||
jsonRead(parameters, "pinTx", _pinTx);
|
||||
jsonRead(parameters, "intRepeat", _intRepeat);
|
||||
_interval = _interval / 1000; // корректируем величину интервала int, теперь он в миллисекундах
|
||||
if (_pinRx >= 0) {
|
||||
Serial.printf("Protocol: %d", _pinRx);
|
||||
@@ -32,11 +37,19 @@ class RCswitch : public IoTItem {
|
||||
// Serial.print("bit ");
|
||||
// Serial.print("Protocol: ");
|
||||
// Serial.println( mySwitch.getReceivedProtocol() );
|
||||
value.valD = mySwitch.getReceivedValue();
|
||||
regEvent(value.valD, "RCswitch");
|
||||
|
||||
|
||||
_newValue = mySwitch.getReceivedValue();
|
||||
if (_newValue != _oldValue || _repeatCount > _intRepeat) {
|
||||
value.valD = _newValue;
|
||||
regEvent(value.valD, "RCswitch");
|
||||
_oldValue = _newValue;
|
||||
_repeatCount = 0;
|
||||
}
|
||||
|
||||
mySwitch.resetAvailable();
|
||||
}
|
||||
|
||||
if (_repeatCount <= _intRepeat) _repeatCount++;
|
||||
}
|
||||
|
||||
IoTValue execute(String command, std::vector<IoTValue> ¶m) {
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
"type": "Reading",
|
||||
"subtype": "RCswitch",
|
||||
"id": "rsw",
|
||||
"int": 500,
|
||||
"int": 100,
|
||||
"intRepeat": 6,
|
||||
"pinRx": 12,
|
||||
"pinTx": 12
|
||||
}
|
||||
@@ -29,7 +30,8 @@
|
||||
"propInfo": {
|
||||
"pinRx": "GPIO номер, к которому подключен радио приемник 433 MHz. Если < 0, то приемник выключен",
|
||||
"pinTx": "GPIO номер, к которому подключен радио передатчик 433 MHz. Если < 0, то передатчик выключен",
|
||||
"int": "Количество миллисекунд между опросами датчика. 0 - выключено. (устранение повторений при нажатой кнопке)"
|
||||
"int": "Количество миллисекунд между опросами датчика. 0 - выключено.",
|
||||
"intRepeat": "Количество интервалов int пропускаем повторы, т.е. при int=100 и intRepeat=6, первые 600мс игнорируем одинаковые значения."
|
||||
},
|
||||
"retInfo": "Содержит принятое значение",
|
||||
"funcInfo": [
|
||||
|
||||
Reference in New Issue
Block a user