diff --git a/include/Class/Switch.h b/include/items/ButtonInClass.h similarity index 92% rename from include/Class/Switch.h rename to include/items/ButtonInClass.h index 57e9f450..78df0cee 100644 --- a/include/Class/Switch.h +++ b/include/items/ButtonInClass.h @@ -1,17 +1,15 @@ #pragma once - #include - #include "Class/LineParsing.h" #include "Global.h" -class Switch : public LineParsing { +class ButtonInClass : public LineParsing { protected: int numberEntering = 0; int state = _state.toInt(); public: - Switch() : LineParsing(){}; + ButtonInClass() : LineParsing(){}; void init() { if (_pin != "") { @@ -53,4 +51,4 @@ class Switch : public LineParsing { } }; -extern Switch* mySwitch; \ No newline at end of file +extern ButtonInClass* myButtonIn; \ No newline at end of file diff --git a/include/Class/button.h b/include/items/ButtonOutClass.h similarity index 88% rename from include/Class/button.h rename to include/items/ButtonOutClass.h index 4287720a..ec99ba17 100644 --- a/include/Class/button.h +++ b/include/items/ButtonOutClass.h @@ -1,12 +1,11 @@ #pragma once - #include #include "Class/LineParsing.h" #include "Global.h" -class Button1 : public LineParsing { +class ButtonOutClass : public LineParsing { public: - Button1() : LineParsing(){}; + ButtonOutClass() : LineParsing(){}; void pinModeSet() { if (_pin != "") { @@ -40,4 +39,4 @@ class Button1 : public LineParsing { } }; -extern Button1* myButton; \ No newline at end of file +extern ButtonOutClass* myButtonOut; \ No newline at end of file diff --git a/include/Class/Input.h b/include/items/InputClass.h similarity index 85% rename from include/Class/Input.h rename to include/items/InputClass.h index 4f5bdec0..c2ca73fa 100644 --- a/include/Class/Input.h +++ b/include/items/InputClass.h @@ -1,13 +1,11 @@ #pragma once - #include - #include "Class/LineParsing.h" #include "Global.h" -class Input : public LineParsing { +class InputClass : public LineParsing { public: - Input() : LineParsing(){}; + InputClass() : LineParsing(){}; void inputSetDefaultFloat() { inputSetFloat(_key, _state); @@ -30,4 +28,4 @@ class Input : public LineParsing { } }; -extern Input* myInput; \ No newline at end of file +extern InputClass* myInput; \ No newline at end of file diff --git a/include/Class/OutputModule.h b/include/items/OutputTextClass.h similarity index 78% rename from include/Class/OutputModule.h rename to include/items/OutputTextClass.h index 7e4adc68..d71af0f5 100644 --- a/include/Class/OutputModule.h +++ b/include/items/OutputTextClass.h @@ -1,12 +1,11 @@ #pragma once - #include #include "Class/LineParsing.h" #include "Global.h" -class OutputModule : public LineParsing { +class OutputTextClass : public LineParsing { public: - OutputModule() : LineParsing(){}; + OutputTextClass() : LineParsing(){}; void OutputModuleStateSetDefault() { if (_state != "") { @@ -21,4 +20,4 @@ class OutputModule : public LineParsing { MqttClient::publishStatus(key, state); } }; -extern OutputModule* myText; \ No newline at end of file +extern OutputTextClass* myOutputText; \ No newline at end of file diff --git a/include/Class/Pwm.h b/include/items/PwmOutClass.h similarity index 84% rename from include/Class/Pwm.h rename to include/items/PwmOutClass.h index 15353b32..bfbf4520 100644 --- a/include/Class/Pwm.h +++ b/include/items/PwmOutClass.h @@ -1,13 +1,11 @@ #pragma once - #include - #include "Class/LineParsing.h" #include "Global.h" -class Pwm : public LineParsing { +class PwmOutClass : public LineParsing { public: - Pwm() : LineParsing(){}; + PwmOutClass() : LineParsing(){}; void pwmModeSet() { if (_pin != "") { @@ -30,4 +28,4 @@ class Pwm : public LineParsing { } }; -extern Pwm* myPwm; \ No newline at end of file +extern PwmOutClass* myPwmOut; \ No newline at end of file diff --git a/include/Class/SensorAnalog.h b/include/items/SensorAnalogClass.h similarity index 73% rename from include/Class/SensorAnalog.h rename to include/items/SensorAnalogClass.h index 918086f0..837f695b 100644 --- a/include/Class/SensorAnalog.h +++ b/include/items/SensorAnalogClass.h @@ -1,35 +1,32 @@ #pragma once #include #include "Class/LineParsing.h" -#include "Class/SensorConverting.h" +#include "items/SensorConvertingClass.h" #include "Global.h" -class SensorAnalog : public SensorConverting { +class SensorAnalogClass : public SensorConvertingClass { public: - SensorAnalog() : SensorConverting(){}; - - void SensorAnalogInit(String key) { - } + SensorAnalogClass() : SensorConvertingClass(){}; int SensorAnalogRead(String key, String pin) { + int pinInt = pin.toInt(); int value; + #ifdef ESP32 value = analogRead(pinInt); #endif #ifdef ESP8266 - pinInt = pinInt; value = analogRead(A0); #endif + value = this->mapping(key, value); float valueFl = this->correction(key, value); - eventGen(key, ""); jsonWriteStr(configLiveJson, key, String(valueFl)); MqttClient::publishStatus(key, String(valueFl)); - Serial.println("[I] sensor '" + key + "' data: " + String(valueFl)); return value; } }; -extern SensorAnalog* mySensorAnalog; \ No newline at end of file +extern SensorAnalogClass* mySensorAnalog; \ No newline at end of file diff --git a/include/Class/SensorConverting.h b/include/items/SensorConvertingClass.h similarity index 89% rename from include/Class/SensorConverting.h rename to include/items/SensorConvertingClass.h index d5d8d8ce..5ddf59c8 100644 --- a/include/Class/SensorConverting.h +++ b/include/items/SensorConvertingClass.h @@ -5,9 +5,9 @@ #include "Class/LineParsing.h" #include "Global.h" -class SensorConverting : public LineParsing { +class SensorConvertingClass : public LineParsing { public: - SensorConverting() : LineParsing(){}; + SensorConvertingClass() : LineParsing(){}; int mapping(String key, int input) { String map_ = jsonReadStr(configOptionJson, key + "_map"); diff --git a/include/items/SensorUltrasonicClass.h b/include/items/SensorUltrasonicClass.h new file mode 100644 index 00000000..e807e80f --- /dev/null +++ b/include/items/SensorUltrasonicClass.h @@ -0,0 +1,34 @@ +#pragma once +#include + +#include "Class/LineParsing.h" +#include "items/SensorConvertingClass.h" +#include "Global.h" + +class SensorUltrasonic : public SensorConvertingClass { + public: + SensorUltrasonic() : SensorConvertingClass(){}; + + int SensorUltrasonicRead(String key, String pin) { + int trig = selectFromMarkerToMarker(pin, ",", 0).toInt(); + int echo = selectFromMarkerToMarker(pin, ",", 1).toInt(); + int value; + + digitalWrite(trig, LOW); + delayMicroseconds(2); + digitalWrite(trig, HIGH); + delayMicroseconds(10); + digitalWrite(trig, LOW); + long duration_ = pulseIn(echo, HIGH, 30000); // 3000 µs = 50cm // 30000 µs = 5 m + value = duration_ / 29 / 2; + + value = this->mapping(key, value); + float valueFl = this->correction(key, value); + eventGen(key, ""); + jsonWriteStr(configLiveJson, key, String(valueFl)); + MqttClient::publishStatus(key, String(valueFl)); + Serial.println("[I] sensor '" + key + "' data: " + String(valueFl)); + return value; + } +}; +extern SensorUltrasonic* mySensorUltrasonic; \ No newline at end of file diff --git a/src/Class/Button.cpp b/src/Class/Button.cpp deleted file mode 100644 index 04afbd77..00000000 --- a/src/Class/Button.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "Class/Button.h" -Button1* myButton; \ No newline at end of file diff --git a/src/Class/Input.cpp b/src/Class/Input.cpp deleted file mode 100644 index 43f4df0a..00000000 --- a/src/Class/Input.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "Class/Input.h" -Input* myInput; \ No newline at end of file diff --git a/src/Class/LineParsing.cpp b/src/Class/LineParsing.cpp deleted file mode 100644 index d44476ef..00000000 --- a/src/Class/LineParsing.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "Class/LineParsing.h" \ No newline at end of file diff --git a/src/Class/OutputModule.cpp b/src/Class/OutputModule.cpp deleted file mode 100644 index d0496426..00000000 --- a/src/Class/OutputModule.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "Class/OutputModule.h" -OutputModule* myText; \ No newline at end of file diff --git a/src/Class/Pwm.cpp b/src/Class/Pwm.cpp deleted file mode 100644 index 5e2d6ce9..00000000 --- a/src/Class/Pwm.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "Class/Pwm.h" -Pwm* myPwm; \ No newline at end of file diff --git a/src/Class/SensorAnalog.cpp b/src/Class/SensorAnalog.cpp deleted file mode 100644 index e1963f5a..00000000 --- a/src/Class/SensorAnalog.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "Class/SensorAnalog.h" -SensorAnalog* mySensorAnalog; \ No newline at end of file diff --git a/src/Class/Switch.cpp b/src/Class/Switch.cpp deleted file mode 100644 index 9bbf7c4e..00000000 --- a/src/Class/Switch.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "Class/Switch.h" -Switch* mySwitch; \ No newline at end of file diff --git a/src/Sensors.cpp b/src/Sensors.cpp index 940e260e..9b0c5adb 100644 --- a/src/Sensors.cpp +++ b/src/Sensors.cpp @@ -1,4 +1,3 @@ -#include "Class/SensorAnalog.h" #include "Cmd.h" #include "Global.h" diff --git a/src/items/mButtonIn.cpp b/src/items/ButtonInClass.cpp similarity index 59% rename from src/items/mButtonIn.cpp rename to src/items/ButtonInClass.cpp index 174647d2..0fe422cf 100644 --- a/src/items/mButtonIn.cpp +++ b/src/items/ButtonInClass.cpp @@ -1,21 +1,22 @@ #include "items/itemsGlobal.h" -#include "Class/Switch.h" +#include "items/ButtonInClass.h" //==========================================Модуль физических кнопок======================================== //button-in switch1 toggle Кнопки Свет 1 pin[2] db[20] //========================================================================================================== +ButtonInClass* myButtonIn; void buttonIn() { - mySwitch = new Switch(); - mySwitch->update(); - String key = mySwitch->gkey(); - String pin = mySwitch->gpin(); + myButtonIn = new ButtonInClass(); + myButtonIn->update(); + String key = myButtonIn->gkey(); + String pin = myButtonIn->gpin(); sCmd.addCommand(key.c_str(), buttonInSet); - mySwitch->init(); - mySwitch->switchStateSetDefault(); - mySwitch->clear(); + myButtonIn->init(); + myButtonIn->switchStateSetDefault(); + myButtonIn->clear(); } void buttonInSet() { String key = sCmd.order(); String state = sCmd.next(); - mySwitch->switchChangeVirtual(key, state); + myButtonIn->switchChangeVirtual(key, state); } \ No newline at end of file diff --git a/src/items/mButtonOut.cpp b/src/items/ButtonOutClass.cpp similarity index 60% rename from src/items/mButtonOut.cpp rename to src/items/ButtonOutClass.cpp index 3607ae06..919975f5 100644 --- a/src/items/mButtonOut.cpp +++ b/src/items/ButtonOutClass.cpp @@ -1,21 +1,22 @@ #include "items/itemsGlobal.h" -#include "Class/Button.h" +#include "items/ButtonOutClass.h" //==========================================Модуль кнопок=================================================== //button-out light toggle Кнопки Свет 1 pin[12] inv[1] st[1] //========================================================================================================== +ButtonOutClass* myButtonOut; void buttonOut() { - myButton = new Button1(); - myButton->update(); - String key = myButton->gkey(); - String pin = myButton->gpin(); - String inv = myButton->ginv(); + myButtonOut = new ButtonOutClass(); + myButtonOut->update(); + String key = myButtonOut->gkey(); + String pin = myButtonOut->gpin(); + String inv = myButtonOut->ginv(); sCmd.addCommand(key.c_str(), buttonOutSet); jsonWriteStr(configOptionJson, key + "_pin", pin); jsonWriteStr(configOptionJson, key + "_inv", inv); - myButton->pinModeSet(); - myButton->pinStateSetDefault(); - myButton->pinStateSetInvDefault(); - myButton->clear(); + myButtonOut->pinModeSet(); + myButtonOut->pinStateSetDefault(); + myButtonOut->pinStateSetInvDefault(); + myButtonOut->clear(); } void buttonOutSet() { @@ -24,8 +25,8 @@ void buttonOutSet() { String pin = jsonReadStr(configOptionJson, key + "_pin"); String inv = jsonReadStr(configOptionJson, key + "_inv"); if (inv == "") { - myButton->pinChange(key, pin, state, true); + myButtonOut->pinChange(key, pin, state, true); } else { - myButton->pinChange(key, pin, state, false); + myButtonOut->pinChange(key, pin, state, false); } } diff --git a/src/items/mInputDigit.cpp b/src/items/InputDigitClass.cpp similarity index 64% rename from src/items/mInputDigit.cpp rename to src/items/InputDigitClass.cpp index 0c3dcf94..04702a81 100644 --- a/src/items/mInputDigit.cpp +++ b/src/items/InputDigitClass.cpp @@ -1,19 +1,20 @@ #include "items/itemsGlobal.h" -#include "Class/Input.h" +#include "items/InputClass.h" //==========================================Модуль ввода цифровых значений================================== //input-digit digit1 inputDigit Ввод Введите.цифру 4 st[60] //========================================================================================================== +InputClass* myInputDigit; void inputDigit() { - myInput = new Input(); - myInput->update(); - String key = myInput->gkey(); + myInputDigit = new InputClass(); + myInputDigit->update(); + String key = myInputDigit->gkey(); sCmd.addCommand(key.c_str(), inputDigitSet); - myInput->inputSetDefaultFloat(); - myInput->clear(); + myInputDigit->inputSetDefaultFloat(); + myInputDigit->clear(); } void inputDigitSet() { String key = sCmd.order(); String state = sCmd.next(); - myInput->inputSetFloat(key, state); + myInputDigit->inputSetFloat(key, state); } \ No newline at end of file diff --git a/src/items/mInputTime.cpp b/src/items/InputTimeClass.cpp similarity index 75% rename from src/items/mInputTime.cpp rename to src/items/InputTimeClass.cpp index 27da9248..7851688b 100644 --- a/src/items/mInputTime.cpp +++ b/src/items/InputTimeClass.cpp @@ -1,21 +1,22 @@ #include "items/itemsGlobal.h" -#include "Class/Input.h" +#include "items/InputClass.h" //==========================================Модуль ввода времени============================================ //input-time time1 inputTime Ввод Введите.время 4 st[10-00-00] //========================================================================================================== +InputClass* myInputTime; void inputTime() { - myInput = new Input(); - myInput->update(); - String key = myInput->gkey(); + myInputTime = new InputClass(); + myInputTime->update(); + String key = myInputTime->gkey(); sCmd.addCommand(key.c_str(), inputTimeSet); - myInput->inputSetDefaultStr(); - myInput->clear(); + myInputTime->inputSetDefaultStr(); + myInputTime->clear(); } void inputTimeSet() { String key = sCmd.order(); String state = sCmd.next(); - myInput->inputSetStr(key, state); + myInputTime->inputSetStr(key, state); } void handle_time_init() { diff --git a/src/items/mOutputText.cpp b/src/items/OutputTextClass.cpp similarity index 63% rename from src/items/mOutputText.cpp rename to src/items/OutputTextClass.cpp index e5a448fd..281f6b91 100644 --- a/src/items/mOutputText.cpp +++ b/src/items/OutputTextClass.cpp @@ -1,19 +1,20 @@ #include "items/itemsGlobal.h" -#include "Class/OutputModule.h" +#include "items/OutputTextClass.h" //===============================================Модуль вывода текста============================================ //output-text;id;anydata;Вывод;Сигнализация;order;st[Обнаружено.движение] //=============================================================================================================== +OutputTextClass* myOutputText; void textOut() { - myText = new OutputModule(); - myText->update(); - String key = myText->gkey(); + myOutputText = new OutputTextClass(); + myOutputText->update(); + String key = myOutputText->gkey(); sCmd.addCommand(key.c_str(), textOutSet); - myText->OutputModuleStateSetDefault(); - myText->clear(); + myOutputText->OutputModuleStateSetDefault(); + myOutputText->clear(); } void textOutSet() { String key = sCmd.order(); String state = sCmd.next(); - myText->OutputModuleChange(key, state); + myOutputText->OutputModuleChange(key, state); } \ No newline at end of file diff --git a/src/items/mPwmOut.cpp b/src/items/PwmOutClass.cpp similarity index 63% rename from src/items/mPwmOut.cpp rename to src/items/PwmOutClass.cpp index 87d70b38..c88d5711 100644 --- a/src/items/mPwmOut.cpp +++ b/src/items/PwmOutClass.cpp @@ -1,24 +1,25 @@ #include "items/itemsGlobal.h" -#include "Class/Pwm.h" +#include "items/PwmOutClass.h" //==========================================Модуль управления ШИМ=================================================== //pwm-out volume range Кнопки Свет 1 pin[12] st[500] //================================================================================================================== +PwmOutClass* myPwmOut; void pwmOut() { - myPwm = new Pwm(); - myPwm->update(); - String key = myPwm->gkey(); - String pin = myPwm->gpin(); - String inv = myPwm->ginv(); + myPwmOut = new PwmOutClass(); + myPwmOut->update(); + String key = myPwmOut->gkey(); + String pin = myPwmOut->gpin(); + String inv = myPwmOut->ginv(); sCmd.addCommand(key.c_str(), pwmOutSet); jsonWriteStr(configOptionJson, key + "_pin", pin); - myPwm->pwmModeSet(); - myPwm->pwmStateSetDefault(); - myPwm->clear(); + myPwmOut->pwmModeSet(); + myPwmOut->pwmStateSetDefault(); + myPwmOut->clear(); } void pwmOutSet() { String key = sCmd.order(); String state = sCmd.next(); String pin = jsonReadStr(configOptionJson, key + "_pin"); - myPwm->pwmChange(key, pin, state); + myPwmOut->pwmChange(key, pin, state); } \ No newline at end of file diff --git a/src/items/sAnalog.cpp b/src/items/SensorAnalogClass.cpp similarity index 90% rename from src/items/sAnalog.cpp rename to src/items/SensorAnalogClass.cpp index b8431529..aa857897 100644 --- a/src/items/sAnalog.cpp +++ b/src/items/SensorAnalogClass.cpp @@ -1,11 +1,12 @@ #include "items/itemsGlobal.h" -#include "Class/SensorAnalog.h" +#include "items/SensorAnalogClass.h" #ifdef ANALOG_ENABLED //==============================================Модуль аналогового сенсора=========================================================================================== //analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin-adc;map[1,1024,1,100];c[1] //=================================================================================================================================================================== +SensorAnalogClass* mySensorAnalog; void analogAdc() { - mySensorAnalog = new SensorAnalog(); + mySensorAnalog = new SensorAnalogClass(); mySensorAnalog->update(); String key = mySensorAnalog->gkey(); String pin = mySensorAnalog->gpin(); diff --git a/src/items/sUltrasonic.cpp b/src/items/SensorUltrasonicClass.cpp similarity index 74% rename from src/items/sUltrasonic.cpp rename to src/items/SensorUltrasonicClass.cpp index 26586cb7..6d182f5a 100644 --- a/src/items/sUltrasonic.cpp +++ b/src/items/SensorUltrasonicClass.cpp @@ -1,20 +1,35 @@ #include "items/itemsGlobal.h" -#include "Class/SensorAnalog.h" -#ifdef LEVEL_ENABLED +#include "items/SensorUltrasonicClass.h" +//#ifdef LEVEL_ENABLED //=========================================Модуль ультрозвукового дальномера================================================================== -//ultrasonic-cm;id;anydata;Сенсоры;Расстояние;order;pin;map[1,100,1,100];c[1] +//ultrasonic-cm;id;anydata;Сенсоры;Расстояние;order;pin[12,13];map[1,100,1,100];c[1] //========================================================================================================================================= void ultrasonicCm() { - - + mySensorUltrasonic = new SensorUltrasonic(); + mySensorUltrasonic->update(); + String key = mySensorUltrasonic->gkey(); + String pin = mySensorUltrasonic->gpin(); + String trig = selectFromMarkerToMarker(pin, ",", 0); + String echo = selectFromMarkerToMarker(pin, ",", 1); + sCmd.addCommand(key.c_str(), ultrasonicReading); + sensorReadingMap += key + ","; + jsonWriteStr(configOptionJson, key + "_trig", trig); + jsonWriteStr(configOptionJson, key + "_echo", echo); + jsonWriteStr(configOptionJson, key + "_map", mySensorUltrasonic->gmap()); + jsonWriteStr(configOptionJson, key + "_с", mySensorUltrasonic->gc()); + mySensorUltrasonic->clear(); } void ultrasonicReading() { - - + String key = sCmd.order(); + String trig = jsonReadStr(configOptionJson, key + "_trig"); + String echo = jsonReadStr(configOptionJson, key + "_echo"); + String pin = trig + "," + echo; + mySensorUltrasonic->SensorUltrasonicRead(key, pin); } +//#endif -void levelPr() { +//void levelPr() { // String value_name = sCmd.next(); // String trig = sCmd.next(); // String echo = sCmd.next(); @@ -33,7 +48,7 @@ void levelPr() { // pinMode(echo.toInt(), INPUT); // createWidgetByType(widget_name, page_name, page_number, type, value_name); // sensors_reading_map[0] = 1; -} +//} ////ultrasonicCm cm 14 12 Дистанция,#см Датчики fillgauge 1 //void ultrasonicCm() { // String value_name = sCmd.next(); @@ -54,20 +69,13 @@ void levelPr() { // sensors_reading_map[0] = 1; //} // -void ultrasonic_reading() { +//void ultrasonic_reading() { // long duration_; // int distance_cm; // int level; // static int counter; // int trig = jsonReadInt(configOptionJson, "trig"); // int echo = jsonReadInt(configOptionJson, "echo"); -// digitalWrite(trig, LOW); -// delayMicroseconds(2); -// digitalWrite(trig, HIGH); -// delayMicroseconds(10); -// digitalWrite(trig, LOW); -// duration_ = pulseIn(echo, HIGH, 30000); // 3000 µs = 50cm // 30000 µs = 5 m -// distance_cm = duration_ / 29 / 2; // distance_cm = medianFilter.filtered(distance_cm); //отсечение промахов медианным фильтром // counter++; // if (counter > TANK_LEVEL_SAMPLES) { @@ -90,5 +98,5 @@ void ultrasonic_reading() { // // Serial.println("[I] sensor '" + ultrasonicCm_value_name + "' data: " + String(distance_cm)); // } -} -#endif \ No newline at end of file +//} +// \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index c8c68db9..bf74cee7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,7 +3,7 @@ #include "Class/CallBackTest.h" #include "Class/NotAsinc.h" #include "Class/ScenarioClass.h" -#include "Class/Switch.h" +#include "items/ButtonInClass.h" #include "Cmd.h" #include "Global.h" #include "Init.h" @@ -101,7 +101,7 @@ void loop() { #endif timeNow->loop(); MqttClient::loop(); - mySwitch->loop(); + myButtonIn->loop(); myScenario->loop(); //loopScenario(); loopCmd();