diff --git a/DomoEsp_v02/MqttDesencadenadorManager.cpp b/DomoEsp_v02/MqttDesencadenadorManager.cpp index 8819408..f3ba4bb 100644 --- a/DomoEsp_v02/MqttDesencadenadorManager.cpp +++ b/DomoEsp_v02/MqttDesencadenadorManager.cpp @@ -180,7 +180,7 @@ void MqttDesencadenador::procesaVar(MqttExeParam *p) } } } -void MqttDesencadenador::Exe(MqttVarManager *vars) +bool MqttDesencadenador::Exe(MqttVarManager *vars) { #ifdef DEBUG_PS @@ -191,6 +191,7 @@ void MqttDesencadenador::Exe(MqttVarManager *vars) #endif //por ahora limite de 2 var MqttExeParam p; + bool res=false; while(expresion[p.i]!=0 && p.sigue) { /* @@ -201,6 +202,7 @@ void MqttDesencadenador::Exe(MqttVarManager *vars) Serial.println(estado); #endif */ + switch(p.estado) { @@ -229,6 +231,7 @@ void MqttDesencadenador::Exe(MqttVarManager *vars) else { activo=false; + res=true; /*#ifdef DEBUG_PS activo=false; Serial.println("Fin causa sigue "); @@ -335,7 +338,7 @@ void MqttDesencadenador::Exe(MqttVarManager *vars) Serial.println("MqttDesencadenador::Exe fin"); #endif - + return res; } //******************************************************************* MqttDesencadenadorArray::MqttDesencadenadorArray() @@ -402,16 +405,21 @@ void MqttDesencadenadorManager::RevisaDesencadenadores() #ifdef DEBUG_PS Serial.println("MqttDesencadenadorManager::RevisaDesencadenadores"); #endif - for(int i=0; iExe(vars); + revisa=false; + for(int i=0; iExe(vars)) + revisa=true; + } + //desmarca Var de volatiles + vars->ResetVolatileVar(); } - - //desmarca Var de volatiles - vars->ResetVolatileVar(); - #ifdef DEBUG_PS - - Serial.println("RevisaDesencadenadores fin"); + + #ifdef DEBUG_PS + Serial.println("RevisaDesencadenadores fin"); #endif } void MqttDesencadenadorManager::AddDes(char *expresion) diff --git a/DomoEsp_v02/MqttDesencadenadorManager.h b/DomoEsp_v02/MqttDesencadenadorManager.h index f8848d8..a1d2e11 100644 --- a/DomoEsp_v02/MqttDesencadenadorManager.h +++ b/DomoEsp_v02/MqttDesencadenadorManager.h @@ -50,7 +50,7 @@ class MqttDesencadenador MqttDesencadenador(); - void Exe(MqttVarManager *vars); + bool Exe(MqttVarManager *vars); //auxiliar---------------- void procesaVar(MqttExeParam *p);