Rellamar a desencadenadores si hace falta

master
Gerardo 2022-02-04 14:01:43 +01:00
parent 9630d9ce07
commit e4be7231c7
2 changed files with 19 additions and 11 deletions

View File

@ -180,7 +180,7 @@ void MqttDesencadenador::procesaVar(MqttExeParam *p)
} }
} }
} }
void MqttDesencadenador::Exe(MqttVarManager *vars) bool MqttDesencadenador::Exe(MqttVarManager *vars)
{ {
#ifdef DEBUG_PS #ifdef DEBUG_PS
@ -191,6 +191,7 @@ void MqttDesencadenador::Exe(MqttVarManager *vars)
#endif #endif
//por ahora limite de 2 var //por ahora limite de 2 var
MqttExeParam p; MqttExeParam p;
bool res=false;
while(expresion[p.i]!=0 && p.sigue) while(expresion[p.i]!=0 && p.sigue)
{ {
/* /*
@ -201,6 +202,7 @@ void MqttDesencadenador::Exe(MqttVarManager *vars)
Serial.println(estado); Serial.println(estado);
#endif #endif
*/ */
switch(p.estado) switch(p.estado)
{ {
@ -229,6 +231,7 @@ void MqttDesencadenador::Exe(MqttVarManager *vars)
else else
{ {
activo=false; activo=false;
res=true;
/*#ifdef DEBUG_PS /*#ifdef DEBUG_PS
activo=false; activo=false;
Serial.println("Fin causa sigue "); Serial.println("Fin causa sigue ");
@ -335,7 +338,7 @@ void MqttDesencadenador::Exe(MqttVarManager *vars)
Serial.println("MqttDesencadenador::Exe fin"); Serial.println("MqttDesencadenador::Exe fin");
#endif #endif
return res;
} }
//******************************************************************* //*******************************************************************
MqttDesencadenadorArray::MqttDesencadenadorArray() MqttDesencadenadorArray::MqttDesencadenadorArray()
@ -402,16 +405,21 @@ void MqttDesencadenadorManager::RevisaDesencadenadores()
#ifdef DEBUG_PS #ifdef DEBUG_PS
Serial.println("MqttDesencadenadorManager::RevisaDesencadenadores"); Serial.println("MqttDesencadenadorManager::RevisaDesencadenadores");
#endif #endif
for(int i=0; i<des.n; i++) bool revisa=true;
while(revisa)
{ {
des.Get(i)->Exe(vars); revisa=false;
for(int i=0; i<des.n; i++)
{
if(des.Get(i)->Exe(vars))
revisa=true;
}
//desmarca Var de volatiles
vars->ResetVolatileVar();
} }
//desmarca Var de volatiles #ifdef DEBUG_PS
vars->ResetVolatileVar(); Serial.println("RevisaDesencadenadores fin");
#ifdef DEBUG_PS
Serial.println("RevisaDesencadenadores fin");
#endif #endif
} }
void MqttDesencadenadorManager::AddDes(char *expresion) void MqttDesencadenadorManager::AddDes(char *expresion)

View File

@ -50,7 +50,7 @@ class MqttDesencadenador
MqttDesencadenador(); MqttDesencadenador();
void Exe(MqttVarManager *vars); bool Exe(MqttVarManager *vars);
//auxiliar---------------- //auxiliar----------------
void procesaVar(MqttExeParam *p); void procesaVar(MqttExeParam *p);