Le code gérant la température est le suivant:
ConditionsOk = true;
if (Temperature > -100.0) {
if (Tinf[i] < 1500 && Tsup[i] < 1500 && Tinf[i] < Tsup[i]) { // on applique un hystérésis dont les valeurs sont Tinf et Tsup
if (Tempx10 > Tinf[i] && Tempx10 > Tsup[i]) Tseuil = Tinf[i];
if (Tempx10 < Tinf[i] && Tempx10 < Tsup[i]) Tseuil = Tsup[i];
if (Tempx10 > Tseuil) { ConditionsOk = false; }
} else {
if (Tinf[i] <= 1000 && Tempx10 > Tinf[i]) { ConditionsOk = false; }
if (Tsup[i] <= 1000 && Tempx10 < Tsup[i]) { ConditionsOk = false; }
}
}
Tinf, c'est la case de droite (la plus élevée), Tsup celle de gauche (la plus petite).
Il y a peut-être une inversion entre Tinf et Tsup car Tinf doit être < Tsup.
A vérifier.
Tseuil est une variable des actions qui garde en mémoire la dernière valeur.
On voit comment évolue Tseuil:
if (Tempx10 > Tinf[i] && Tempx10 > Tsup[i]) Tseuil = Tinf[i]; la température est au dessus des 2 valeurs; le routage s'arrête et ne reprendra que lorsque la température passera en dessous de Tinf (dit autrement, restera bloqué tant que ce sera > Tinf)
if (Tempx10 < Tinf[i] && Tempx10 < Tsup[i]) Tseuil = Tsup[i]; la température est en dessous des 2 valeurs; le routage ne s'arrêtera que lorsque la température sera > Tsup
ConditionsOk = true;
if (Temperature > -100.0) {
if (Tinf[i] < 1500 && Tsup[i] < 1500 && Tinf[i] < Tsup[i]) { // on applique un hystérésis dont les valeurs sont Tinf et Tsup
if (Tempx10 > Tinf[i] && Tempx10 > Tsup[i]) Tseuil = Tinf[i];
if (Tempx10 < Tinf[i] && Tempx10 < Tsup[i]) Tseuil = Tsup[i];
if (Tempx10 > Tseuil) { ConditionsOk = false; }
} else {
if (Tinf[i] <= 1000 && Tempx10 > Tinf[i]) { ConditionsOk = false; }
if (Tsup[i] <= 1000 && Tempx10 < Tsup[i]) { ConditionsOk = false; }
}
}
Tinf, c'est la case de droite (la plus élevée), Tsup celle de gauche (la plus petite).
Il y a peut-être une inversion entre Tinf et Tsup car Tinf doit être < Tsup.
A vérifier.
Tseuil est une variable des actions qui garde en mémoire la dernière valeur.
On voit comment évolue Tseuil:
if (Tempx10 > Tinf[i] && Tempx10 > Tsup[i]) Tseuil = Tinf[i]; la température est au dessus des 2 valeurs; le routage s'arrête et ne reprendra que lorsque la température passera en dessous de Tinf (dit autrement, restera bloqué tant que ce sera > Tinf)
if (Tempx10 < Tinf[i] && Tempx10 < Tsup[i]) Tseuil = Tsup[i]; la température est en dessous des 2 valeurs; le routage ne s'arrêtera que lorsque la température sera > Tsup