Files
IoTManager/include/Class/button.h

44 lines
1.0 KiB
C
Raw Normal View History

2020-07-29 21:38:39 +02:00
#pragma once
#include <Arduino.h>
2020-07-31 00:56:10 +02:00
#include "Class/LineParsing.h"
2020-07-29 21:38:39 +02:00
#include "Global.h"
2020-07-31 00:56:10 +02:00
class Button : public LineParsing {
2020-07-29 21:38:39 +02:00
public:
2020-07-31 00:56:10 +02:00
Button() : LineParsing(){};
void pinModeSet() {
if (_pin != "") {
Serial.println(_pin);
pinMode(_pin.toInt(), OUTPUT);
}
}
2020-07-29 21:38:39 +02:00
2020-07-31 00:56:10 +02:00
void pinStateSetDefault() {
if (_inv == "" && _state != "") {
pinChange(_key, _pin, _state, true);
2020-07-29 21:38:39 +02:00
}
}
2020-07-31 00:56:10 +02:00
void pinStateSetInvDefault() {
if (_inv != "" && _state != "") {
pinChange(_key, _pin, _state, false);
2020-07-29 21:38:39 +02:00
}
}
2020-07-31 00:56:10 +02:00
void pinChange(String key, String pin, String state, bool rev) {
int pinInt = pin.toInt();
int stateInt;
if (rev) {
digitalWrite(pinInt, state.toInt());
} else {
digitalWrite(pinInt, !state.toInt());
2020-07-29 21:38:39 +02:00
}
2020-07-31 00:56:10 +02:00
eventGen(key, "");
jsonWriteInt(configLiveJson, key, state.toInt());
MqttClient::publishStatus(key, state);
2020-07-29 21:38:39 +02:00
}
};
2020-07-31 00:56:10 +02:00
extern Button* myButton;