Le releve continu, et le code-barres dans le CSV plutot que l'adresse

Le suivi n'ecrivait que l'adresse du module, traduite a l'import par
une table figee sur le pack ancien. Le cable ayant change de pack,
tout releve fait maintenant aurait ete attribue aux mauvais modules.
Le code-barres est desormais resolu au demarrage et ecrit dans le CSV ;
la table ne sert plus qu'aux anciens fichiers.

Le releve tourne sur le poste qui porte le cable serie - le port USB
est la, pas sur le Synology - et n'ecrit qu'un CSV dans le depot
partage. C'est le service d'historisation, cote Synology, qui le verse
en base : le poste n'a donc aucun mot de passe a connaitre.

Archive pour le constructeur : un dossier par code-barres, plus un
manifeste en francais, anglais et chinois qui dit ou regarder en
premier et signale que les CSV sont deja corriges de la derive
d'horloge des BMS.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
Tallagrand Thierry
2026-09-05 20:12:40 +02:00
parent 425c019362
commit a4de466ae1
68 changed files with 18472 additions and 8 deletions

View File

@@ -152,9 +152,17 @@ function lireSuivi(f) {
for (const l of lireTexte(f).trim().split('\n').slice(1)) {
const c = l.split(',');
if (c.length < 18) continue;
const ad = parseInt(String(c[1]).replace(/\D/g, ''), 10);
if (!Number.isFinite(ad)) continue;
const mod = CARTE_SUIVI[ad] || `pack_ancien:${ad}`;
// Depuis le 05/09 le suivi ecrit directement le code-barres. Les fichiers
// anterieurs ne portent que `moduleN` : la table ci-dessus les traduit, et
// elle ne vaut que pour la chaine du pack ancien, seule interrogee alors.
const brut = String(c[1]);
let mod;
if (/^[A-Z]\d{6}[A-Z]\d+$/.test(brut)) mod = brut;
else {
const ad = parseInt(brut.replace(/\D/g, ''), 10);
if (!Number.isFinite(ad)) continue;
mod = CARTE_SUIVI[ad] || `pack_ancien:${ad}`;
}
modules.add(mod);
const cour = c[2] === '' ? null : +c[2];
for (let k = 0; k < 15; k++) {