From ab65cda820c3afd3be86934db53456bcdf612293 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Thu, 3 Sep 2020 02:07:12 +0300 Subject: [PATCH] working version with optimization --- .vscode/extensions.json | 7 +++++++ include/items/ButtonInClass.h | 2 +- include/items/ButtonOutClass.h | 2 +- include/items/InputClass.h | 2 +- include/items/OutputTextClass.h | 2 +- include/items/PwmOutClass.h | 2 +- include/items/SensorAnalogClass.h | 2 +- include/items/SensorUltrasonicClass.h | 2 +- src/items/ButtonInClass.cpp | 17 ++++++++--------- src/items/ButtonOutClass.cpp | 23 +++++++++++------------ src/items/InputDigitClass.cpp | 13 ++++++------- src/items/InputTimeClass.cpp | 13 ++++++------- src/items/OutputTextClass.cpp | 13 ++++++------- src/items/PwmOutClass.cpp | 19 +++++++++---------- src/items/SensorAnalogClass.cpp | 17 ++++++++--------- src/items/SensorUltrasonicClass.cpp | 17 ++++++++--------- src/main.cpp | 7 +++---- 17 files changed, 79 insertions(+), 81 deletions(-) create mode 100644 .vscode/extensions.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..e80666bf --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "platformio.platformio-ide" + ] +} diff --git a/include/items/ButtonInClass.h b/include/items/ButtonInClass.h index 78df0cee..75575cd2 100644 --- a/include/items/ButtonInClass.h +++ b/include/items/ButtonInClass.h @@ -51,4 +51,4 @@ class ButtonInClass : public LineParsing { } }; -extern ButtonInClass* myButtonIn; \ No newline at end of file +extern ButtonInClass myButtonIn; \ No newline at end of file diff --git a/include/items/ButtonOutClass.h b/include/items/ButtonOutClass.h index ec99ba17..042a849f 100644 --- a/include/items/ButtonOutClass.h +++ b/include/items/ButtonOutClass.h @@ -39,4 +39,4 @@ class ButtonOutClass : public LineParsing { } }; -extern ButtonOutClass* myButtonOut; \ No newline at end of file +extern ButtonOutClass myButtonOut; \ No newline at end of file diff --git a/include/items/InputClass.h b/include/items/InputClass.h index c2ca73fa..4e7690fe 100644 --- a/include/items/InputClass.h +++ b/include/items/InputClass.h @@ -28,4 +28,4 @@ class InputClass : public LineParsing { } }; -extern InputClass* myInput; \ No newline at end of file +extern InputClass myInput; \ No newline at end of file diff --git a/include/items/OutputTextClass.h b/include/items/OutputTextClass.h index d71af0f5..b3220f5d 100644 --- a/include/items/OutputTextClass.h +++ b/include/items/OutputTextClass.h @@ -20,4 +20,4 @@ class OutputTextClass : public LineParsing { MqttClient::publishStatus(key, state); } }; -extern OutputTextClass* myOutputText; \ No newline at end of file +extern OutputTextClass myOutputText; \ No newline at end of file diff --git a/include/items/PwmOutClass.h b/include/items/PwmOutClass.h index bfbf4520..e56090eb 100644 --- a/include/items/PwmOutClass.h +++ b/include/items/PwmOutClass.h @@ -28,4 +28,4 @@ class PwmOutClass : public LineParsing { } }; -extern PwmOutClass* myPwmOut; \ No newline at end of file +extern PwmOutClass myPwmOut; \ No newline at end of file diff --git a/include/items/SensorAnalogClass.h b/include/items/SensorAnalogClass.h index 837f695b..36cf7b3d 100644 --- a/include/items/SensorAnalogClass.h +++ b/include/items/SensorAnalogClass.h @@ -29,4 +29,4 @@ class SensorAnalogClass : public SensorConvertingClass { return value; } }; -extern SensorAnalogClass* mySensorAnalog; \ No newline at end of file +extern SensorAnalogClass mySensorAnalog; \ No newline at end of file diff --git a/include/items/SensorUltrasonicClass.h b/include/items/SensorUltrasonicClass.h index e807e80f..130f9068 100644 --- a/include/items/SensorUltrasonicClass.h +++ b/include/items/SensorUltrasonicClass.h @@ -31,4 +31,4 @@ class SensorUltrasonic : public SensorConvertingClass { return value; } }; -extern SensorUltrasonic* mySensorUltrasonic; \ No newline at end of file +extern SensorUltrasonic mySensorUltrasonic; \ No newline at end of file diff --git a/src/items/ButtonInClass.cpp b/src/items/ButtonInClass.cpp index 0fe422cf..5528c607 100644 --- a/src/items/ButtonInClass.cpp +++ b/src/items/ButtonInClass.cpp @@ -3,20 +3,19 @@ //==========================================Модуль физических кнопок======================================== //button-in switch1 toggle Кнопки Свет 1 pin[2] db[20] //========================================================================================================== -ButtonInClass* myButtonIn; +ButtonInClass myButtonIn; void buttonIn() { - myButtonIn = new ButtonInClass(); - myButtonIn->update(); - String key = myButtonIn->gkey(); - String pin = myButtonIn->gpin(); + myButtonIn.update(); + String key = myButtonIn.gkey(); + String pin = myButtonIn.gpin(); sCmd.addCommand(key.c_str(), buttonInSet); - myButtonIn->init(); - myButtonIn->switchStateSetDefault(); - myButtonIn->clear(); + myButtonIn.init(); + myButtonIn.switchStateSetDefault(); + myButtonIn.clear(); } void buttonInSet() { String key = sCmd.order(); String state = sCmd.next(); - myButtonIn->switchChangeVirtual(key, state); + myButtonIn.switchChangeVirtual(key, state); } \ No newline at end of file diff --git a/src/items/ButtonOutClass.cpp b/src/items/ButtonOutClass.cpp index 919975f5..84add954 100644 --- a/src/items/ButtonOutClass.cpp +++ b/src/items/ButtonOutClass.cpp @@ -3,20 +3,19 @@ //==========================================Модуль кнопок=================================================== //button-out light toggle Кнопки Свет 1 pin[12] inv[1] st[1] //========================================================================================================== -ButtonOutClass* myButtonOut; +ButtonOutClass myButtonOut; void buttonOut() { - myButtonOut = new ButtonOutClass(); - myButtonOut->update(); - String key = myButtonOut->gkey(); - String pin = myButtonOut->gpin(); - String inv = myButtonOut->ginv(); + 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); - myButtonOut->pinModeSet(); - myButtonOut->pinStateSetDefault(); - myButtonOut->pinStateSetInvDefault(); - myButtonOut->clear(); + myButtonOut.pinModeSet(); + myButtonOut.pinStateSetDefault(); + myButtonOut.pinStateSetInvDefault(); + myButtonOut.clear(); } void buttonOutSet() { @@ -25,8 +24,8 @@ void buttonOutSet() { String pin = jsonReadStr(configOptionJson, key + "_pin"); String inv = jsonReadStr(configOptionJson, key + "_inv"); if (inv == "") { - myButtonOut->pinChange(key, pin, state, true); + myButtonOut.pinChange(key, pin, state, true); } else { - myButtonOut->pinChange(key, pin, state, false); + myButtonOut.pinChange(key, pin, state, false); } } diff --git a/src/items/InputDigitClass.cpp b/src/items/InputDigitClass.cpp index 04702a81..346129ab 100644 --- a/src/items/InputDigitClass.cpp +++ b/src/items/InputDigitClass.cpp @@ -3,18 +3,17 @@ //==========================================Модуль ввода цифровых значений================================== //input-digit digit1 inputDigit Ввод Введите.цифру 4 st[60] //========================================================================================================== -InputClass* myInputDigit; +InputClass myInputDigit; void inputDigit() { - myInputDigit = new InputClass(); - myInputDigit->update(); - String key = myInputDigit->gkey(); + myInputDigit.update(); + String key = myInputDigit.gkey(); sCmd.addCommand(key.c_str(), inputDigitSet); - myInputDigit->inputSetDefaultFloat(); - myInputDigit->clear(); + myInputDigit.inputSetDefaultFloat(); + myInputDigit.clear(); } void inputDigitSet() { String key = sCmd.order(); String state = sCmd.next(); - myInputDigit->inputSetFloat(key, state); + myInputDigit.inputSetFloat(key, state); } \ No newline at end of file diff --git a/src/items/InputTimeClass.cpp b/src/items/InputTimeClass.cpp index 7851688b..03f2c1fd 100644 --- a/src/items/InputTimeClass.cpp +++ b/src/items/InputTimeClass.cpp @@ -3,20 +3,19 @@ //==========================================Модуль ввода времени============================================ //input-time time1 inputTime Ввод Введите.время 4 st[10-00-00] //========================================================================================================== -InputClass* myInputTime; +InputClass myInputTime; void inputTime() { - myInputTime = new InputClass(); - myInputTime->update(); - String key = myInputTime->gkey(); + myInputTime.update(); + String key = myInputTime.gkey(); sCmd.addCommand(key.c_str(), inputTimeSet); - myInputTime->inputSetDefaultStr(); - myInputTime->clear(); + myInputTime.inputSetDefaultStr(); + myInputTime.clear(); } void inputTimeSet() { String key = sCmd.order(); String state = sCmd.next(); - myInputTime->inputSetStr(key, state); + myInputTime.inputSetStr(key, state); } void handle_time_init() { diff --git a/src/items/OutputTextClass.cpp b/src/items/OutputTextClass.cpp index 281f6b91..33795205 100644 --- a/src/items/OutputTextClass.cpp +++ b/src/items/OutputTextClass.cpp @@ -3,18 +3,17 @@ //===============================================Модуль вывода текста============================================ //output-text;id;anydata;Вывод;Сигнализация;order;st[Обнаружено.движение] //=============================================================================================================== -OutputTextClass* myOutputText; +OutputTextClass myOutputText; void textOut() { - myOutputText = new OutputTextClass(); - myOutputText->update(); - String key = myOutputText->gkey(); + myOutputText.update(); + String key = myOutputText.gkey(); sCmd.addCommand(key.c_str(), textOutSet); - myOutputText->OutputModuleStateSetDefault(); - myOutputText->clear(); + myOutputText.OutputModuleStateSetDefault(); + myOutputText.clear(); } void textOutSet() { String key = sCmd.order(); String state = sCmd.next(); - myOutputText->OutputModuleChange(key, state); + myOutputText.OutputModuleChange(key, state); } \ No newline at end of file diff --git a/src/items/PwmOutClass.cpp b/src/items/PwmOutClass.cpp index c88d5711..db176d5c 100644 --- a/src/items/PwmOutClass.cpp +++ b/src/items/PwmOutClass.cpp @@ -3,23 +3,22 @@ //==========================================Модуль управления ШИМ=================================================== //pwm-out volume range Кнопки Свет 1 pin[12] st[500] //================================================================================================================== -PwmOutClass* myPwmOut; +PwmOutClass myPwmOut; void pwmOut() { - myPwmOut = new PwmOutClass(); - myPwmOut->update(); - String key = myPwmOut->gkey(); - String pin = myPwmOut->gpin(); - String inv = myPwmOut->ginv(); + 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); - myPwmOut->pwmModeSet(); - myPwmOut->pwmStateSetDefault(); - myPwmOut->clear(); + myPwmOut.pwmModeSet(); + myPwmOut.pwmStateSetDefault(); + myPwmOut.clear(); } void pwmOutSet() { String key = sCmd.order(); String state = sCmd.next(); String pin = jsonReadStr(configOptionJson, key + "_pin"); - myPwmOut->pwmChange(key, pin, state); + myPwmOut.pwmChange(key, pin, state); } \ No newline at end of file diff --git a/src/items/SensorAnalogClass.cpp b/src/items/SensorAnalogClass.cpp index aa857897..91c10d21 100644 --- a/src/items/SensorAnalogClass.cpp +++ b/src/items/SensorAnalogClass.cpp @@ -4,23 +4,22 @@ //==============================================Модуль аналогового сенсора=========================================================================================== //analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin-adc;map[1,1024,1,100];c[1] //=================================================================================================================================================================== -SensorAnalogClass* mySensorAnalog; +SensorAnalogClass mySensorAnalog; void analogAdc() { - mySensorAnalog = new SensorAnalogClass(); - mySensorAnalog->update(); - String key = mySensorAnalog->gkey(); - String pin = mySensorAnalog->gpin(); + mySensorAnalog.update(); + String key = mySensorAnalog.gkey(); + String pin = mySensorAnalog.gpin(); sCmd.addCommand(key.c_str(), analogReading); sensorReadingMap += key + ","; jsonWriteStr(configOptionJson, key + "_pin", pin); - jsonWriteStr(configOptionJson, key + "_map", mySensorAnalog->gmap()); - jsonWriteStr(configOptionJson, key + "_с", mySensorAnalog->gc()); - mySensorAnalog->clear(); + jsonWriteStr(configOptionJson, key + "_map", mySensorAnalog.gmap()); + jsonWriteStr(configOptionJson, key + "_с", mySensorAnalog.gc()); + mySensorAnalog.clear(); } void analogReading() { String key = sCmd.order(); String pin = jsonReadStr(configOptionJson, key + "_pin"); - mySensorAnalog->SensorAnalogRead(key, pin); + mySensorAnalog.SensorAnalogRead(key, pin); } #endif \ No newline at end of file diff --git a/src/items/SensorUltrasonicClass.cpp b/src/items/SensorUltrasonicClass.cpp index ac8e84ac..c849ecc8 100644 --- a/src/items/SensorUltrasonicClass.cpp +++ b/src/items/SensorUltrasonicClass.cpp @@ -4,21 +4,20 @@ //=========================================Модуль ультрозвукового дальномера================================================================== //ultrasonic-cm;id;anydata;Сенсоры;Расстояние;order;pin[12,13];map[1,100,1,100];c[1] //========================================================================================================================================= -SensorUltrasonic* mySensorUltrasonic; +SensorUltrasonic mySensorUltrasonic; void ultrasonicCm() { - mySensorUltrasonic = new SensorUltrasonic(); - mySensorUltrasonic->update(); - String key = mySensorUltrasonic->gkey(); - String pin = mySensorUltrasonic->gpin(); + 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(); + jsonWriteStr(configOptionJson, key + "_map", mySensorUltrasonic.gmap()); + jsonWriteStr(configOptionJson, key + "_с", mySensorUltrasonic.gc()); + mySensorUltrasonic.clear(); } void ultrasonicReading() { @@ -26,7 +25,7 @@ void ultrasonicReading() { String trig = jsonReadStr(configOptionJson, key + "_trig"); String echo = jsonReadStr(configOptionJson, key + "_echo"); String pin = trig + "," + echo; - mySensorUltrasonic->SensorUltrasonicRead(key, pin); + mySensorUltrasonic.SensorUltrasonicRead(key, pin); } //#endif diff --git a/src/main.cpp b/src/main.cpp index bf74cee7..fec020bc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -73,8 +73,8 @@ void setup() { udpInit(); #endif - pm.info("Ssdp Init"); - SsdpInit(); + //pm.info("Ssdp Init"); + //SsdpInit(); ts.add( TEST, 1000 * 60, [&](void*) { @@ -101,9 +101,8 @@ void loop() { #endif timeNow->loop(); MqttClient::loop(); - myButtonIn->loop(); + myButtonIn.loop(); myScenario->loop(); - //loopScenario(); loopCmd(); loopSerial();