Publication (analyse de performance)
Le module Publication de ChronoFEED-FINISH fait tourner de petits scripts Python que vous écrivez, pour analyser la performance en local : comparer des coureurs, bâtir un tableau de bord, exporter des fichiers. Chaque script s'exécute hors-processus (il ne peut pas bloquer ni faire planter FINISH), lit les données de la séance sous forme de contrats JSON, et écrit ce qu'il produit dans un dossier de sortie. Les données restent locales : le module n'envoie jamais rien au serveur de résultats.
C'est le même module que dans ChronoFEED-EVENT ; seuls les contrats et les déclencheurs changent, parce que FINISH travaille sur une séance de chronométrage plutôt que sur un classement général.
L'éditeur de scripts
À gauche, la liste de vos scripts (rangés en fichiers .py dans %AppData%\ChronoFEED\scripts-finish) ;
au centre, l'éditeur ; en bas, le journal (ce que le script écrit). Les boutons Nouveau,
Enregistrer et Supprimer gèrent les fichiers ; Exécuter lance le script
affiché. À la première ouverture, un exemple tableau-bord.py est déposé.
Le bouton Guide (IA)… enregistre un document à donner à une intelligence artificielle : il décrit les contrats et l'API, pour qu'elle vous écrive des scripts conformes.
Déclenchement d'un script
Un script se lance toujours à la main avec Exécuter. Il peut aussi se lancer tout seul, selon le déclencheur choisi dans le bloc « Lancement » :
- Minuterie — toutes les N secondes.
- À la fin d'une course — une course de compétition vient d'être courue.
- À la fin d'un entraînement — une séance d'entraînement libre vient de se terminer.
- Au chargement d'une course et Au déchargement d'une course.
- Au lancement d'une séance libre.
On peut aussi donner un raccourci clavier à un script. Pour ne jamais gêner la prise de tours, les touches du pavé numérique, les chiffres et les combinaisons Maj+chiffre ne peuvent pas servir de raccourci : utilisez plutôt F2–F12 ou Ctrl/Alt + une lettre.
Secrets (mots de passe, clés d'API)
Le bloc Secrets garde les mots de passe et clés d'API chiffrés sur ce poste (DPAPI de
Windows) : donnez un identifiant (p. ex. SMTP) et une valeur, puis « Enregistrer le secret ». La valeur n'est
jamais ré-affichée. Au lancement, chaque secret est fourni au script sous CHRONOFEED_SECRET_<id> ; dans le
script, cf.secret("SMTP") le lit, sans jamais écrire le mot de passe en clair.
Les contrats de données
Avant chaque exécution, FINISH écrit l'état de la séance dans des fichiers JSON que le script lit par le SDK :
evenement.json— la compétition (nom, date de génération).courses.json— les courses de la séance : nom, état, et pour chaque coureur sa position, son nom, son dossard, son équipe, sa catégorie, sa référence, ses transpondeurs, son annotation, et le texte de ses tours tel qu'affiché.athletes.json— les athlètes de la séance (référence, nom, dossard, catégorie, transpondeurs, records).transpondeurs.json— l'association puce → athlète (numéro, référence, nom).
Les temps intermédiaires structurés (temps du tour et temps cumulé par tour) seront ajoutés à
un prochain contrat. Pour l'instant, courses.json donne le texte des tuiles de tours tel qu'il paraît à
l'écran.
Le SDK Python
Chaque script commence par import chronofeed_sdk as cf. Les fonctions principales :
cf.evenement(),cf.courses(),cf.athletes(),cf.transpondeurs()— lisent les contrats (dictionnaire, ouNonesi absent).cf.ecrire_fichiers({ "page.html": "…" })— écrit dans le dossier de sortie.cf.gabarit_css()— la feuille de style ChronoFEED par défaut.cf.publier_http(url, corps=…, auth=cf.secret("CLE"))— publie par API ; en mode test, n'envoie rien.cf.journal("…"),cf.erreur("…"),cf.ouvrir("page.html").
Le SDK n'utilise que la bibliothèque standard de Python : aucun paquet à installer. L'exemple tableau-bord.py
bâtit une page HTML qui compare les coureurs des courses de la séance et se rafraîchit toute seule.
Python requis
Les scripts ont besoin de Python (3.9 ou plus récent). S'il n'est pas trouvé automatiquement, indiquez le chemin de l'interpréteur dans les paramètres.