`computeEcoTarget()` convertit une obligation en énergie en une cible en watts : cadence = reste / temps restant, recalculée à chaque cycle. Une cadence figée au départ ne rattrape pas — après une heure sans surplus elle reste à la cadence initiale et manque l'échéance en ayant l'air de travailler. Mesurer d'abord était nécessaire, pas rituel : aucun scénario existant ne portait d'obligation éco, donc aucune référence. Les valeurs ont été relevées par sonde avant toute assertion — et c'est le relevé qui a trouvé un défaut que la lecture du code ne montrait pas. LA BASCULE DE PÉRIODE (LM-1013-c). À l'instant de l'échéance quotidienne, resolveDeadline() vise la prochaine occurrence : une nouvelle obligation s'ouvre. Sans reprise de la base d'avancement, le lendemain hérite de l'énergie de la veille et se croit tenu sans avoir rien reçu. La sonde affichait 83 W et 86400 s restantes à 07:00 pile, ce qui n'avait aucun sens tant qu'on ne cherchait pas la période. Contre-épreuve : 1800 Wh portés au crédit du jour suivant. Limite assumée et écrite : l'obligation précédente, si elle n'était pas tenue, est abandonnée SANS motif dédié. Le dire demande un ECO_FLOOR_MISSED que rien n'émet ; le journal le dit, l'écran non. Le durcissement est relevé point par point — 333 W à six heures, 2 kW à une heure, le plafond dès seize minutes — parce que c'est la courbe que le motif devra rendre lisible, pas une valeur isolée. Point de non-retour nommé plutôt que subi : un seuil se discute, une asymptote non. R6 armée dans le calcul : sous `unmeasurable`, jamais « tenue ». On vise l'obligation entière, le choix qui sert plutôt que celui qui suppose acquis. Suite : loadmodel 22/22, simulation 56/56, charging 48/48 identique à la référence ligne à ligne, spotmarket 32/32, doxygen 0 avertissement. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015F7G5VeaPVSMeVNjiGj36p
35 lines
1.1 KiB
Plaintext
35 lines
1.1 KiB
Plaintext
HEADERS += \
|
|
$$PWD/types/loadaction.h \
|
|
$$PWD/types/decisionreason.h \
|
|
$$PWD/types/loaddescriptor.h \
|
|
$$PWD/types/surpluscontext.h \
|
|
$$PWD/types/plan.h \
|
|
$$PWD/types/drawcap.h \
|
|
$$PWD/types/ecoprogress.h \
|
|
$$PWD/types/ecotarget.h \
|
|
$$PWD/types/loadconfig.h \
|
|
$$PWD/config/loadconfigstore.h \
|
|
$$PWD/adapters/iloadadapter.h \
|
|
$$PWD/scheduler/ischeduler.h \
|
|
$$PWD/adapters/evadapter.h \
|
|
$$PWD/adapters/sgreadyadapter.h \
|
|
$$PWD/adapters/etmvariableloadadapter.h \
|
|
$$PWD/adapters/relayrouter.h \
|
|
$$PWD/scheduler/rulebasedscheduler.h \
|
|
$$PWD/ratios/energyratioscalculator.h \
|
|
$$PWD/energyarbitrator.h \
|
|
|
|
SOURCES += \
|
|
$$PWD/types/decisionreason.cpp \
|
|
$$PWD/types/drawcap.cpp \
|
|
$$PWD/types/ecotarget.cpp \
|
|
$$PWD/types/loadconfig.cpp \
|
|
$$PWD/config/loadconfigstore.cpp \
|
|
$$PWD/ratios/energyratioscalculator.cpp \
|
|
$$PWD/adapters/evadapter.cpp \
|
|
$$PWD/adapters/sgreadyadapter.cpp \
|
|
$$PWD/adapters/etmvariableloadadapter.cpp \
|
|
$$PWD/adapters/relayrouter.cpp \
|
|
$$PWD/scheduler/rulebasedscheduler.cpp \
|
|
$$PWD/energyarbitrator.cpp \
|