Délestage visible : le test de la borne manuelle n'a plus d'horloge murale

Le passage en mode manuel ne restitue rien quand la borne est déjà dans
l'état de l'usager : il n'arme donc aucun verrou à l'heure réelle. Le
scénario peut reprendre une date fixe, et la référence `decisions` se
reproduit à l'octet près.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Patrick Schurig 2026-10-25 11:28:13 +01:00
parent facad90c2e
commit 5c3cffbad3

View File

@ -12103,6 +12103,12 @@ void Simulation::testOverloadProtectionOnAManualChargerIsLogged()
reglages.endGroup(); reglages.endGroup();
} }
s.borne->setStateValue("pluggedIn", true); s.borne->setStateValue("pluggedIn", true);
// La borne est DÉJÀ dans l'état manuel : le passage en mode manuel n'a rien à restituer, donc
// n'écrit rien. Sinon le code amont écrirait à l'horloge murale et armerait les verrous de la
// borne sur cet instant — un scénario daté en dur se déroulerait « avant » eux, et la
// protection serait refusée à chaque geste.
s.borne->setStateValue("power", true);
s.borne->setStateValue("maxChargingCurrent", 16);
const QVariantMap info = injectAndWait("NymeaEnergy.GetChargingInfos").toMap().value("params").toMap() const QVariantMap info = injectAndWait("NymeaEnergy.GetChargingInfos").toMap().value("params").toMap()
.value("chargingInfos").toList().first().toMap(); .value("chargingInfos").toList().first().toMap();
QVariantMap manuel = info; QVariantMap manuel = info;
@ -12112,11 +12118,7 @@ void Simulation::testOverloadProtectionOnAManualChargerIsLogged()
QString("EnergyErrorNoError")); QString("EnergyErrorNoError"));
QCOMPARE(consigneA(s.borne), 16); QCOMPARE(consigneA(s.borne), 16);
// L'HORLOGE MURALE, et elle seule : le passage en mode manuel restitue les valeurs de QDateTime a = utcDateTime(QDate(2026, 6, 8), QTime(10, 0));
// l'usager avec QDateTime::currentDateTime() (code amont), et arme les verrous de la borne sur
// cet instant. Un temps de test antérieur les tiendrait fermés, et la protection serait
// refusée à chaque geste. On part donc au-delà du verrou d'enclenchement (300 s).
QDateTime a = QDateTime::currentDateTime().addSecs(600);
QVariantMap snap; QVariantMap snap;
const auto cycle = [&](double phaseA) { const auto cycle = [&](double phaseA) {
a = a.addSecs(60); a = a.addSecs(60);