diff --git a/energyplugin/etm/energyarbitrator.h b/energyplugin/etm/energyarbitrator.h index 5066677..9002c6f 100644 --- a/energyplugin/etm/energyarbitrator.h +++ b/energyplugin/etm/energyarbitrator.h @@ -161,12 +161,15 @@ public: * \brief Plafond AC (onduleur) du site désigné, en W. \c std::nullopt = aucun plafond. * \note Un paramètre de SITE, pas de plan (§28 décision 2) : l'écrêtage porte sur ce que * l'onduleur reçoit de tous ses champs. Appliqué après la somme, jamais 0. + * \return Le plafond en W, ou \c std::nullopt si aucun plafond n'est configuré. */ std::optional forecastAcLimitW() const { return m_forecastAcLimitW; } - //! Bornes acceptées pour \c acLimitW, en W. Sous 100 W : très probablement des kW saisis - //! en W ; au-delà de 1 MW : hors du périmètre d'un site résidentiel ou tertiaire. + //! Borne basse acceptée pour \c acLimitW, en W. Sous 100 W : très probablement des kW saisis + //! en W. static constexpr int AcLimitMinW = 100; + //! Borne haute acceptée pour \c acLimitW, en W. Au-delà de 1 MW : hors du périmètre d'un site + //! résidentiel ou tertiaire. static constexpr int AcLimitMaxW = 1000000; /*! @@ -212,7 +215,7 @@ public: //! Un plan SOMMÉ, tel qu'il a été lu : son Thing et les corrections qu'il déclare. struct ForecastPlanLu { - QString planThingId; + QString planThingId; //!< ThingId du plan, forme canonique \c {uuid} minuscules QStringList corrections; //!< ordre canonique ; vide = conversion brute }; diff --git a/energyplugin/etm/types/decisionreason.h b/energyplugin/etm/types/decisionreason.h index 8d28099..e808163 100644 --- a/energyplugin/etm/types/decisionreason.h +++ b/energyplugin/etm/types/decisionreason.h @@ -395,6 +395,7 @@ constexpr const char *SafeStateSgReady = "SAFE_STATE_SG_READY"; * \brief Tous les codes du catalogue, dans l'ordre de déclaration. * \note Confrontée à CET EN-TÊTE par un test (loadmodel) : une constante sans entrée ici, ou sans * branche de rendu, le fait échouer. « Connu du catalogue » se lit ici, nulle part ailleurs. + * \return Les codes du catalogue, sans doublon, dans l'ordre de déclaration. */ QStringList knownCodes(); @@ -407,10 +408,14 @@ QStringList knownCodes(); * réserve batterie, dérogation, obligation tenue ou manquée, recrédit — ce sont des faits que le * moteur constate, et un optimiseur qui les publierait ferait mentir l'écran sur ce qui protège. * Tout autre code devient \c OPTIMIZER_DECISION, sans paramètres. + * \return Les codes autorisés pour un optimiseur, tous présents dans \c knownCodes(). */ QStringList optimizerEmittableCodes(); -//! \return Vrai si \p code est dans \c optimizerEmittableCodes(). +/*! + * \param code Code de motif reçu d'un optimiseur. + * \return Vrai si \p code est dans \c optimizerEmittableCodes(). + */ bool optimizerMayEmit(const QString &code); } @@ -496,7 +501,7 @@ QString publishedLevel(const LoadAction &action); * Helper UNIQUE des journaux `[Arbitre]`, `[RelayRouter]` et `[EtmVariableLoadAdapter]` : trois * rendus divergeraient. Une action à un seul niveau rend exactement \c renderFr() — le journal * ne change pas quand il n'y a rien à ventiler. À deux niveaux ou plus : - * « — ventilation : éco 500 W [ECO_FLOOR_GRID] + confort 500 W [LOCK_MIN_ON] + * « \ — ventilation : éco 500 W [ECO_FLOOR_GRID] + confort 500 W [LOCK_MIN_ON] * = 1000 W ». Les codes, pas leurs phrases : la phrase du motif publié est déjà en tête, et une * ligne qui en rendrait trois deviendrait illisible. *