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
@ -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; 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
vars->ResetVolatileVar();
#ifdef DEBUG_PS
Serial.println("RevisaDesencadenadores fin");
#ifdef DEBUG_PS
Serial.println("RevisaDesencadenadores fin");
#endif
}
void MqttDesencadenadorManager::AddDes(char *expresion)

View File

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