mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
55 lines
1.3 KiB
C++
55 lines
1.3 KiB
C++
|
|
#include "Global.h"
|
||
|
|
#include "classes/IoTItem.h"
|
||
|
|
|
||
|
|
extern IoTGpio IoTgpio;
|
||
|
|
|
||
|
|
|
||
|
|
class AnalogBtn : public IoTItem {
|
||
|
|
private:
|
||
|
|
int _pin, _aValue, _delta;
|
||
|
|
int _oldVal, _newVal;
|
||
|
|
|
||
|
|
public:
|
||
|
|
AnalogBtn(String parameters) : IoTItem(parameters) {
|
||
|
|
_pin = 0;
|
||
|
|
_aValue = 0;
|
||
|
|
_delta = 50;
|
||
|
|
jsonRead(parameters, "pin", _pin);
|
||
|
|
jsonRead(parameters, "aValue", _aValue);
|
||
|
|
jsonRead(parameters, "delta", _delta);
|
||
|
|
_round = 0;
|
||
|
|
setInterval(-100);
|
||
|
|
}
|
||
|
|
|
||
|
|
void doByInterval() {
|
||
|
|
_newVal = IoTgpio.analogRead(_pin);
|
||
|
|
if (_aValue == -1 && _oldVal != _newVal) {
|
||
|
|
_oldVal = _newVal;
|
||
|
|
SerialPrint("i", "AnalogBtn", (String)_newVal);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ((_newVal > _aValue - _delta) && (_newVal < _aValue + _delta)) {
|
||
|
|
if (value.valD == 0) {
|
||
|
|
value.valD = 1;
|
||
|
|
regEvent(value.valD, "AnalogBtn");
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
if (value.valD == 1) {
|
||
|
|
value.valD = 0;
|
||
|
|
regEvent(value.valD, "AnalogBtn");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
~AnalogBtn() {};
|
||
|
|
};
|
||
|
|
|
||
|
|
void* getAPI_AnalogBtn(String subtype, String param) {
|
||
|
|
if (subtype == F("AnalogBtn")) {
|
||
|
|
return new AnalogBtn(param);
|
||
|
|
} else {
|
||
|
|
return nullptr;
|
||
|
|
}
|
||
|
|
}
|