working version with optimization

This commit is contained in:
Dmitry Borisenko
2020-09-03 02:07:12 +03:00
parent 89fed305c8
commit ab65cda820
17 changed files with 79 additions and 81 deletions

7
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,7 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"platformio.platformio-ide"
]
}

View File

@@ -51,4 +51,4 @@ class ButtonInClass : public LineParsing {
} }
}; };
extern ButtonInClass* myButtonIn; extern ButtonInClass myButtonIn;

View File

@@ -39,4 +39,4 @@ class ButtonOutClass : public LineParsing {
} }
}; };
extern ButtonOutClass* myButtonOut; extern ButtonOutClass myButtonOut;

View File

@@ -28,4 +28,4 @@ class InputClass : public LineParsing {
} }
}; };
extern InputClass* myInput; extern InputClass myInput;

View File

@@ -20,4 +20,4 @@ class OutputTextClass : public LineParsing {
MqttClient::publishStatus(key, state); MqttClient::publishStatus(key, state);
} }
}; };
extern OutputTextClass* myOutputText; extern OutputTextClass myOutputText;

View File

@@ -28,4 +28,4 @@ class PwmOutClass : public LineParsing {
} }
}; };
extern PwmOutClass* myPwmOut; extern PwmOutClass myPwmOut;

View File

@@ -29,4 +29,4 @@ class SensorAnalogClass : public SensorConvertingClass {
return value; return value;
} }
}; };
extern SensorAnalogClass* mySensorAnalog; extern SensorAnalogClass mySensorAnalog;

View File

@@ -31,4 +31,4 @@ class SensorUltrasonic : public SensorConvertingClass {
return value; return value;
} }
}; };
extern SensorUltrasonic* mySensorUltrasonic; extern SensorUltrasonic mySensorUltrasonic;

View File

@@ -3,20 +3,19 @@
//==========================================Модуль физических кнопок======================================== //==========================================Модуль физических кнопок========================================
//button-in switch1 toggle Кнопки Свет 1 pin[2] db[20] //button-in switch1 toggle Кнопки Свет 1 pin[2] db[20]
//========================================================================================================== //==========================================================================================================
ButtonInClass* myButtonIn; ButtonInClass myButtonIn;
void buttonIn() { void buttonIn() {
myButtonIn = new ButtonInClass(); myButtonIn.update();
myButtonIn->update(); String key = myButtonIn.gkey();
String key = myButtonIn->gkey(); String pin = myButtonIn.gpin();
String pin = myButtonIn->gpin();
sCmd.addCommand(key.c_str(), buttonInSet); sCmd.addCommand(key.c_str(), buttonInSet);
myButtonIn->init(); myButtonIn.init();
myButtonIn->switchStateSetDefault(); myButtonIn.switchStateSetDefault();
myButtonIn->clear(); myButtonIn.clear();
} }
void buttonInSet() { void buttonInSet() {
String key = sCmd.order(); String key = sCmd.order();
String state = sCmd.next(); String state = sCmd.next();
myButtonIn->switchChangeVirtual(key, state); myButtonIn.switchChangeVirtual(key, state);
} }

View File

@@ -3,20 +3,19 @@
//==========================================Модуль кнопок=================================================== //==========================================Модуль кнопок===================================================
//button-out light toggle Кнопки Свет 1 pin[12] inv[1] st[1] //button-out light toggle Кнопки Свет 1 pin[12] inv[1] st[1]
//========================================================================================================== //==========================================================================================================
ButtonOutClass* myButtonOut; ButtonOutClass myButtonOut;
void buttonOut() { void buttonOut() {
myButtonOut = new ButtonOutClass(); myButtonOut.update();
myButtonOut->update(); String key = myButtonOut.gkey();
String key = myButtonOut->gkey(); String pin = myButtonOut.gpin();
String pin = myButtonOut->gpin(); String inv = myButtonOut.ginv();
String inv = myButtonOut->ginv();
sCmd.addCommand(key.c_str(), buttonOutSet); sCmd.addCommand(key.c_str(), buttonOutSet);
jsonWriteStr(configOptionJson, key + "_pin", pin); jsonWriteStr(configOptionJson, key + "_pin", pin);
jsonWriteStr(configOptionJson, key + "_inv", inv); jsonWriteStr(configOptionJson, key + "_inv", inv);
myButtonOut->pinModeSet(); myButtonOut.pinModeSet();
myButtonOut->pinStateSetDefault(); myButtonOut.pinStateSetDefault();
myButtonOut->pinStateSetInvDefault(); myButtonOut.pinStateSetInvDefault();
myButtonOut->clear(); myButtonOut.clear();
} }
void buttonOutSet() { void buttonOutSet() {
@@ -25,8 +24,8 @@ void buttonOutSet() {
String pin = jsonReadStr(configOptionJson, key + "_pin"); String pin = jsonReadStr(configOptionJson, key + "_pin");
String inv = jsonReadStr(configOptionJson, key + "_inv"); String inv = jsonReadStr(configOptionJson, key + "_inv");
if (inv == "") { if (inv == "") {
myButtonOut->pinChange(key, pin, state, true); myButtonOut.pinChange(key, pin, state, true);
} else { } else {
myButtonOut->pinChange(key, pin, state, false); myButtonOut.pinChange(key, pin, state, false);
} }
} }

View File

@@ -3,18 +3,17 @@
//==========================================Модуль ввода цифровых значений================================== //==========================================Модуль ввода цифровых значений==================================
//input-digit digit1 inputDigit Ввод Введите.цифру 4 st[60] //input-digit digit1 inputDigit Ввод Введите.цифру 4 st[60]
//========================================================================================================== //==========================================================================================================
InputClass* myInputDigit; InputClass myInputDigit;
void inputDigit() { void inputDigit() {
myInputDigit = new InputClass(); myInputDigit.update();
myInputDigit->update(); String key = myInputDigit.gkey();
String key = myInputDigit->gkey();
sCmd.addCommand(key.c_str(), inputDigitSet); sCmd.addCommand(key.c_str(), inputDigitSet);
myInputDigit->inputSetDefaultFloat(); myInputDigit.inputSetDefaultFloat();
myInputDigit->clear(); myInputDigit.clear();
} }
void inputDigitSet() { void inputDigitSet() {
String key = sCmd.order(); String key = sCmd.order();
String state = sCmd.next(); String state = sCmd.next();
myInputDigit->inputSetFloat(key, state); myInputDigit.inputSetFloat(key, state);
} }

View File

@@ -3,20 +3,19 @@
//==========================================Модуль ввода времени============================================ //==========================================Модуль ввода времени============================================
//input-time time1 inputTime Ввод Введите.время 4 st[10-00-00] //input-time time1 inputTime Ввод Введите.время 4 st[10-00-00]
//========================================================================================================== //==========================================================================================================
InputClass* myInputTime; InputClass myInputTime;
void inputTime() { void inputTime() {
myInputTime = new InputClass(); myInputTime.update();
myInputTime->update(); String key = myInputTime.gkey();
String key = myInputTime->gkey();
sCmd.addCommand(key.c_str(), inputTimeSet); sCmd.addCommand(key.c_str(), inputTimeSet);
myInputTime->inputSetDefaultStr(); myInputTime.inputSetDefaultStr();
myInputTime->clear(); myInputTime.clear();
} }
void inputTimeSet() { void inputTimeSet() {
String key = sCmd.order(); String key = sCmd.order();
String state = sCmd.next(); String state = sCmd.next();
myInputTime->inputSetStr(key, state); myInputTime.inputSetStr(key, state);
} }
void handle_time_init() { void handle_time_init() {

View File

@@ -3,18 +3,17 @@
//===============================================Модуль вывода текста============================================ //===============================================Модуль вывода текста============================================
//output-text;id;anydata;Вывод;Сигнализация;order;st[Обнаружено.движение] //output-text;id;anydata;Вывод;Сигнализация;order;st[Обнаружено.движение]
//=============================================================================================================== //===============================================================================================================
OutputTextClass* myOutputText; OutputTextClass myOutputText;
void textOut() { void textOut() {
myOutputText = new OutputTextClass(); myOutputText.update();
myOutputText->update(); String key = myOutputText.gkey();
String key = myOutputText->gkey();
sCmd.addCommand(key.c_str(), textOutSet); sCmd.addCommand(key.c_str(), textOutSet);
myOutputText->OutputModuleStateSetDefault(); myOutputText.OutputModuleStateSetDefault();
myOutputText->clear(); myOutputText.clear();
} }
void textOutSet() { void textOutSet() {
String key = sCmd.order(); String key = sCmd.order();
String state = sCmd.next(); String state = sCmd.next();
myOutputText->OutputModuleChange(key, state); myOutputText.OutputModuleChange(key, state);
} }

View File

@@ -3,23 +3,22 @@
//==========================================Модуль управления ШИМ=================================================== //==========================================Модуль управления ШИМ===================================================
//pwm-out volume range Кнопки Свет 1 pin[12] st[500] //pwm-out volume range Кнопки Свет 1 pin[12] st[500]
//================================================================================================================== //==================================================================================================================
PwmOutClass* myPwmOut; PwmOutClass myPwmOut;
void pwmOut() { void pwmOut() {
myPwmOut = new PwmOutClass(); myPwmOut.update();
myPwmOut->update(); String key = myPwmOut.gkey();
String key = myPwmOut->gkey(); String pin = myPwmOut.gpin();
String pin = myPwmOut->gpin(); String inv = myPwmOut.ginv();
String inv = myPwmOut->ginv();
sCmd.addCommand(key.c_str(), pwmOutSet); sCmd.addCommand(key.c_str(), pwmOutSet);
jsonWriteStr(configOptionJson, key + "_pin", pin); jsonWriteStr(configOptionJson, key + "_pin", pin);
myPwmOut->pwmModeSet(); myPwmOut.pwmModeSet();
myPwmOut->pwmStateSetDefault(); myPwmOut.pwmStateSetDefault();
myPwmOut->clear(); myPwmOut.clear();
} }
void pwmOutSet() { void pwmOutSet() {
String key = sCmd.order(); String key = sCmd.order();
String state = sCmd.next(); String state = sCmd.next();
String pin = jsonReadStr(configOptionJson, key + "_pin"); String pin = jsonReadStr(configOptionJson, key + "_pin");
myPwmOut->pwmChange(key, pin, state); myPwmOut.pwmChange(key, pin, state);
} }

View File

@@ -4,23 +4,22 @@
//==============================================Модуль аналогового сенсора=========================================================================================== //==============================================Модуль аналогового сенсора===========================================================================================
//analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin-adc;map[1,1024,1,100];c[1] //analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin-adc;map[1,1024,1,100];c[1]
//=================================================================================================================================================================== //===================================================================================================================================================================
SensorAnalogClass* mySensorAnalog; SensorAnalogClass mySensorAnalog;
void analogAdc() { void analogAdc() {
mySensorAnalog = new SensorAnalogClass(); mySensorAnalog.update();
mySensorAnalog->update(); String key = mySensorAnalog.gkey();
String key = mySensorAnalog->gkey(); String pin = mySensorAnalog.gpin();
String pin = mySensorAnalog->gpin();
sCmd.addCommand(key.c_str(), analogReading); sCmd.addCommand(key.c_str(), analogReading);
sensorReadingMap += key + ","; sensorReadingMap += key + ",";
jsonWriteStr(configOptionJson, key + "_pin", pin); jsonWriteStr(configOptionJson, key + "_pin", pin);
jsonWriteStr(configOptionJson, key + "_map", mySensorAnalog->gmap()); jsonWriteStr(configOptionJson, key + "_map", mySensorAnalog.gmap());
jsonWriteStr(configOptionJson, key + "_с", mySensorAnalog->gc()); jsonWriteStr(configOptionJson, key + "_с", mySensorAnalog.gc());
mySensorAnalog->clear(); mySensorAnalog.clear();
} }
void analogReading() { void analogReading() {
String key = sCmd.order(); String key = sCmd.order();
String pin = jsonReadStr(configOptionJson, key + "_pin"); String pin = jsonReadStr(configOptionJson, key + "_pin");
mySensorAnalog->SensorAnalogRead(key, pin); mySensorAnalog.SensorAnalogRead(key, pin);
} }
#endif #endif

View File

@@ -4,21 +4,20 @@
//=========================================Модуль ультрозвукового дальномера================================================================== //=========================================Модуль ультрозвукового дальномера==================================================================
//ultrasonic-cm;id;anydata;Сенсоры;Расстояние;order;pin[12,13];map[1,100,1,100];c[1] //ultrasonic-cm;id;anydata;Сенсоры;Расстояние;order;pin[12,13];map[1,100,1,100];c[1]
//========================================================================================================================================= //=========================================================================================================================================
SensorUltrasonic* mySensorUltrasonic; SensorUltrasonic mySensorUltrasonic;
void ultrasonicCm() { void ultrasonicCm() {
mySensorUltrasonic = new SensorUltrasonic(); mySensorUltrasonic.update();
mySensorUltrasonic->update(); String key = mySensorUltrasonic.gkey();
String key = mySensorUltrasonic->gkey(); String pin = mySensorUltrasonic.gpin();
String pin = mySensorUltrasonic->gpin();
String trig = selectFromMarkerToMarker(pin, ",", 0); String trig = selectFromMarkerToMarker(pin, ",", 0);
String echo = selectFromMarkerToMarker(pin, ",", 1); String echo = selectFromMarkerToMarker(pin, ",", 1);
sCmd.addCommand(key.c_str(), ultrasonicReading); sCmd.addCommand(key.c_str(), ultrasonicReading);
sensorReadingMap += key + ","; sensorReadingMap += key + ",";
jsonWriteStr(configOptionJson, key + "_trig", trig); jsonWriteStr(configOptionJson, key + "_trig", trig);
jsonWriteStr(configOptionJson, key + "_echo", echo); jsonWriteStr(configOptionJson, key + "_echo", echo);
jsonWriteStr(configOptionJson, key + "_map", mySensorUltrasonic->gmap()); jsonWriteStr(configOptionJson, key + "_map", mySensorUltrasonic.gmap());
jsonWriteStr(configOptionJson, key + "_с", mySensorUltrasonic->gc()); jsonWriteStr(configOptionJson, key + "_с", mySensorUltrasonic.gc());
mySensorUltrasonic->clear(); mySensorUltrasonic.clear();
} }
void ultrasonicReading() { void ultrasonicReading() {
@@ -26,7 +25,7 @@ void ultrasonicReading() {
String trig = jsonReadStr(configOptionJson, key + "_trig"); String trig = jsonReadStr(configOptionJson, key + "_trig");
String echo = jsonReadStr(configOptionJson, key + "_echo"); String echo = jsonReadStr(configOptionJson, key + "_echo");
String pin = trig + "," + echo; String pin = trig + "," + echo;
mySensorUltrasonic->SensorUltrasonicRead(key, pin); mySensorUltrasonic.SensorUltrasonicRead(key, pin);
} }
//#endif //#endif

View File

@@ -73,8 +73,8 @@ void setup() {
udpInit(); udpInit();
#endif #endif
pm.info("Ssdp Init"); //pm.info("Ssdp Init");
SsdpInit(); //SsdpInit();
ts.add( ts.add(
TEST, 1000 * 60, [&](void*) { TEST, 1000 * 60, [&](void*) {
@@ -101,9 +101,8 @@ void loop() {
#endif #endif
timeNow->loop(); timeNow->loop();
MqttClient::loop(); MqttClient::loop();
myButtonIn->loop(); myButtonIn.loop();
myScenario->loop(); myScenario->loop();
//loopScenario();
loopCmd(); loopCmd();
loopSerial(); loopSerial();