This commit is contained in:
Dmitry Borisenko
2020-07-29 21:38:39 +02:00
parent 832e6a36f1
commit 9fa3ec05c2
3 changed files with 42 additions and 2 deletions

View File

@@ -5,7 +5,8 @@
#include "Global.h"
class Item {
private:
protected:
String type;
String key;
String file;

34
include/Class/button.h Normal file
View File

@@ -0,0 +1,34 @@
#pragma once
#include <Arduino.h>
#include "Class/Item.h"
#include "Global.h"
class Button : public Item {
public:
void pinModeSet(int pinf) {
if (pin != "") {
pinMode(pinf, OUTPUT);
}
}
void pinStateSet(int pinf, int statef) {
if (state != "") {
digitalWrite(pinf, statef);
jsonWriteInt(configLiveJson, key, statef);
MqttClient::publishStatus(key, String(statef));
}
}
void pinStateSetInv(int pinf, int statef) {
if (inv != "" && state != "") {
digitalWrite(pinf, !statef);
jsonWriteInt(configLiveJson, key, !statef);
MqttClient::publishStatus(key, String(!statef));
}
}
};
extern Button* myButton;

View File

@@ -1,6 +1,7 @@
#include "Cmd.h"
#include "Class/Item.h"
#include "Class/Button.h"
#include "Global.h"
#include "Module/Terminal.h"
#include "Servo/Servos.h"
@@ -112,10 +113,13 @@ void button() {
String pin = myItem->gpin();
String inv = myItem->ginv();
String state = myItem->gstate();
myItem->clear();
sCmd.addCommand(key.c_str(), buttonSet);
myItem->pinModeSet(pin.toInt);
if (pin != "") {
pinMode(pin.toInt(), OUTPUT);
jsonWriteInt(configOptionJson, key + "_pin", pin.toInt());
@@ -132,6 +136,7 @@ void button() {
jsonWriteStr(configLiveJson, key, state);
MqttClient::publishStatus(key, state);
}
myItem->clear();
}
void buttonSet() {