Preuve « sans endpoint = identique au bit près », posée AVANT tout refactoring. `nymea-energy-decisions` est la suite `simulation` compilée à l'identique, plus un enregistreur branché à l'édition de liens (`--wrap`) : aucune ligne de la suite ni du moteur n'est modifiée. Chaque cycle (`simulationCallUpdate`) écrit une ligne NDJSON : télémétrie de l'arbitre (actions du créneau dans l'ordre, motifs, niveaux, budget, soutirage, consigne posée), actions laissées au proxy, état des Things. Les scénarios qui interrogent un `RuleBasedScheduler` local voient leur `Plan` sérialisé champ par champ. Exclus : `command.since` et les compteurs `totalEnergy*` du mock (horloge murale), les ThingId (alias par rang dans le créneau, à chaque ligne : deux bornes identiques reçoivent leur rang provisionné dans l'ordre d'un QHash). `planId` n'est pas lu. Référence générée sur 83483cc (1.15.2+etm69) : 66 fonctions, 23 673 cycles + 36 plans directs, deux exécutions identiques à l'octet. Chaque processus a un /tmp privé : libnymea range l'état de test sous /tmp/nymea-test, partagé et cumulatif (348 bornes orphelines trouvées dans energy-load-configuration.json). tests/auto/decisions/run-decisions.sh <build> check Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 lines
81 B
Prolog
3 lines
81 B
Prolog
TEMPLATE = subdirs
|
|
SUBDIRS += charging decisions loadmodel simulation spotmarket
|