[3e-1] types SG-Ready : declared.states + estimatedPowerW(état) + telemetry min/maxState

LoadDeclared : states[1-4] + estimatedPowerW QHash<int,double> (déclaré installateur,
approximatif ; états 1/2 ≈ 0 pour l'allocation surplus, invariant 8).
LoadContextTelemetry : minState/maxState (fenêtre verrou minStateHold, parallèle à
minStage/maxStage ECS). Build 0 erreur / 0 warning.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Patrick Schurig 2026-06-09 22:42:33 +02:00
parent cbee13e455
commit 83d5ad9ed7
2 changed files with 14 additions and 1 deletions

View File

@ -4,6 +4,7 @@
#include <QDateTime>
#include <QList>
#include <QHash>
#include <QString>
#include "loadaction.h"
@ -28,7 +29,14 @@ struct LoadDeclared {
double capacityWh = 0; //!< Capacité totale (Wh).
int reserveSocPercent = 0; //!< SOC de réserve (%) — non déchargeable.
// sg-ready : états toujours 1-4, pas de déclaration nécessaire.
// --- sg-ready (PAC) ---
//! États supportés (toujours 1-4 ; déclaré pour symétrie avec le protocole §5).
QList<int> states;
//! Puissance estimée (W) par état, DÉCLARÉE installateur (approximative, cas
//! \c declared du protocole §5) : ex. {3: 1800, 4: 2600}. Sert au budget, n'est PAS
//! une consigne exacte. États 1 (blocage) et 2 (normal) ≈ 0 du point de vue allocation
//! surplus (la conso autonome de l'état 2 est déjà au compteur — invariant 8).
QHash<int, double> estimatedPowerW;
};
/*!

View File

@ -68,6 +68,11 @@ struct LoadContextTelemetry {
int maxStage = 0;
// --- sg-ready ---
int state = 0;
//! Fenêtre d'états autorisée MAINTENANT par le verrou minStateHold (protection
//! court-cycling PAC) : gel total (minState == maxState == state) si non écoulé,
//! sinon [1, 4]. Même mécanique que minStage/maxStage de l'ECS, source = temps de cycle.
int minState = 0;
int maxState = 0;
// --- battery / electricvehicle ---
double socPercent = 0;
QDateTime lastSwitch; //!< Dernier changement d'état.