12-08-2025, 10:55 AM
(Modification du message : 12-08-2025, 10:57 AM par FastFrench.)
(10-08-2025, 07:27 AM)59jag a écrit : j ai regardé oui l'hystérésis ne fonctionne pas en mode "ON" car elle ne peut que désactiver une action, jamais l'activer.
si tu veux corriger va dans action.cpp
recherche
if (Tinf[i] < 1500 && Tsup[i] < 1500 && Tinf[i] < Tsup[i]) { // hystérésis
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; }
}
modifi a la fin par
if (Tinf[i] < 1500 && Tsup[i] < 1500 && Tinf[i] < Tsup[i]) {
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; }
if (Tempx10 < Tseuil) { ConditionsOk = true; }
}
Si je peux me permettre, ce code pourrait être simplifié:
if (Tinf[i] < 1500 && Tsup[i] < 1500 && Tinf[i] < Tsup[i]) {
if (Tempx10 > Tsup[i]) Tseuil = Tinf[i];
if (Tempx10 < Tinf[i]) Tseuil = Tsup[i];
ConditionsOk = Tempx10 < Tseuil;
}
Cette version conserve la même logique que l'original mais est plus lisible et efficace (en toute rigueur, on a un fonctionnement différent si Tempx10 == Tseuil, mais je pense que le nouveau fonctionnement est bien celui attendu)