# 2.2.14 (05/11/2026) ## Améliorations - Export PDF en trois pages : schéma de principe, vue complète du Mega 2560 Rev3 sur une image de référence et gros plans photographiques des connecteurs. - Affichage des composants et de leurs bornes sur des fonds colorés à côté des broches utilisées ; textes verticaux pour le connecteur inférieur D22-D53. - Images intégrées au projet pour permettre la génération du PDF hors ligne, avec attribution des sources. ## Corrections - Repérage des broches portant les suffixes TX, RX, DATA et CLOCK et recalage des connecteurs sur les images. - Prise en compte de l'espacement entre A7 et A8 et des deux rangées distinctes du connecteur D22-D53. - Suppression des longues liaisons superposées dans la vue complète et conservation des liaisons locales dans les gros plans. # 2.2.13 (05/11/2026) ## Corrections - Blocage de la broche D13, réservée à la LED intégrée de la carte Arduino, dans la configuration des LED, capteurs IR et moteurs ainsi que lors de l'enregistrement côté serveur. - Signalement des composants déjà configurés sur D13, avec accès direct à leur modification et possibilité de retirer cette broche sans pouvoir la resélectionner. - Indication de la raison de réservation pour distinguer D13 des broches de communication TX/RX. # 2.2.12 (05/11/2026) ## Améliorations - Schéma de principe des connexions des moteurs, capteurs IR et LED accessible depuis chaque carte Arduino. - Carte centrale, composants de chaque côté, broches nommées et fils à angles droits reliant les bornes configurées. - Export PDF vectoriel sur une seule page, avec orientation automatique et texte net au zoom et à l'impression. ## Corrections - Signalement des broches partagées et absence de liaison supposée pour les broches introuvables. - Espacement des symboles, adaptation des blocs aux noms sur plusieurs lignes et séparation du pied de carte des dernières broches. - Actualisation du schéma et de l'index des connexions lors des changements de configuration. # 2.2.11 (03/11/2026) ## Corrections - Actualisation des broches disponibles apr?s modification des moteurs, capteurs IR et LED. - Suppression des ?critures concurrentes de l'occupation des broches depuis le navigateur ; synchronisation assur?e par le serveur apr?s chaque enregistrement ou suppression. - Rafra?chissement des Arduino apr?s modification d'une LED. # 2.2.10 (30/10/2026) ## Améliorations - Broches Arduino TX/RX réservées à la communication : sélection interdite pour les LED, les capteurs IR et les moteurs. - Alerte pour les composants déjà configurés sur une broche TX/RX, avec accès direct à leur fenêtre de modification. - Remplacement des broches des moteurs entrée par entrée, avec commandes de retrait compactes, disposition adaptative et mise en évidence des broches réservées. ## Corrections - Une broche retirée pendant la modification reste sélectionnable lorsqu'elle appartient au composant, sauf s'il s'agit d'une broche TX/RX. - Réinitialisation des broches sélectionnées lors d'un changement d'Arduino et correction du débordement des affectations dans la fenêtre des moteurs. # 2.2.9 (29/10/2026) ## Améliorations - Préparation du mode Surprise pour générer de nouvelles règles cohérentes à chaque lancement côté serveur, en respectant les pistes et le matériel disponible. - Statuts des scénarios affichés en français et compatibilité des anciens scénarios enregistrés comme brouillons avec le lancement et le contrôle avant départ. ## Corrections - Calcul des moyennes tour par tour uniquement à partir des courses ayant enregistré le tour concerné. - Utilisation des compteurs et temps enregistrés dans les indicateurs du dashboard ; prise en charge des anciens chronos et des valeurs invalides. - Conservation du type de course historique et affichage des chronos par circuit à partir des résultats enregistrés. # 2.2.8 (29/10/2026) ## Améliorations - Filtrage des capteurs IR dans l'éditeur en tableau pour alterner les pistes entre deux déclencheurs successifs. - Filtrage des moteurs et des LED selon la piste du capteur choisi pour le déclencheur, également appliqué à la création des duels. - Réinitialisation des sélections devenues incompatibles lors d'un changement de piste et validation avant l'enregistrement. # 2.2.7 (29/10/2026) ## Améliorations - Nouvel éditeur de scénarios en tableau : une ligne par déclencheur et des sous-lignes modifiables pour les actions et les conditions, avec ajout et suppression directement dans le tableau. - Création et modification des duels dans le tableau, avec conservation des liens entre leurs déclencheurs et prise en charge des modes de course existants. - Enregistrement groupé des modifications et conservation du brouillon en cas d'échec ; les éditeurs actuels restent disponibles. - Saisie et affichage des durées des LED en secondes dans la configuration des scénarios et les récapitulatifs, avec prise en charge des valeurs décimales (par exemple 0,5 s). - Conversion automatique en millisecondes pour conserver la compatibilité avec le backend et les scénarios existants. # 2.2.6 (27/10/2026) ## Améliorations - Regroupement de la configuration et de la calibration des infrarouges : accès à la calibration depuis chaque capteur. - Regroupement de la configuration et de la calibration des moteurs : accès aux réglages depuis chaque aiguillage. - Suppression des entrées de menu de calibration séparées et redirection des anciennes adresses vers les pages de configuration. - Fenêtre de calibration des moteurs plus lisible : carte sur toute la largeur, commandes verticales et champs adaptés aux petits écrans. ## Corrections - Correction des pages blanches après un rafraîchissement F5 sur une route interne grâce à une base d'URL absolue. - Arrêt de la lecture infrarouge lors de la destruction du composant de calibration. # 2.2.5 (26/10/2026) ## Améliorations - Masquage du bandeau des équipements dans la configuration des circuits lorsqu'aucun capteur ni aiguillage ne reste à placer. - Le plan des circuits occupe toute la largeur disponible lorsque le bandeau est masqué. # 2.2.4 (26/10/2026) ## Améliorations - Numérotation des capteurs IR dans le plan des circuits pour identifier leur ordre de passage, même sur plusieurs lignes. - Numérotation indépendante par piste et continue entre les zones avant et après l'aiguillage, actualisée lors des déplacements. # 2.2.3 (26/10/2026) ## Corrections - Les capteurs IR du plan des circuits reviennent à la ligne lorsque plusieurs capteurs se suivent dans une même zone, sans déborder sur la sortie ou l'aiguillage. - Les noms longs restent lisibles dans la largeur disponible. # 2.2.2 (26/10/2026) ## Corrections - Conservation des RPM, du nombre de pas par révolution et de l'état des moteurs lors des modifications de configuration. - Conservation de la valeur et des métadonnées des IR lors des modifications ; maintien du contexte d'édition jusqu'à confirmation de sauvegarde. - Le seuil de calibration affiché n'est modifié qu'après confirmation du serveur ; un échec est signalé et conserve la valeur précédente. - Conservation de l'état des LED lors des modifications de configuration. - Tests de non-régression des seuils IR entiers et décimaux, des sauvegardes de calibration et des paramètres matériels. # 2.2.1 (26/10/2026) ## Corrections - Conservation du nombre de pas calibré (`nbStepForOpenOrClose`) lors de la sauvegarde de la configuration d'un moteur, au lieu de le remplacer par 512. - La valeur par défaut de 512 pas reste appliquée aux moteurs sans calibration définie. # 2.2.0 (23/10/2026) ## Ajouts - **Mode débug des infrarouges pendant les scénarios** - Activation avant le lancement ou pendant la course - Graphique en direct par capteur IR utilisé : mesure en cm, seuil et état de détection - Historique limité aux 300 dernières mesures par capteur et conservé à l'écran après la course - Abonnement au flux débug uniquement lorsque les graphiques sont affichés, avec reconnexion automatique - Compatible avec le matériel et le simulateur Firmata ; backend 2.2.0 requis # 2.0.0 (06/10/2026) ## Version majeure - **Circuit Management V2** - Modes de course automatisés, chronos par circuit, classement et historique permanent - Mode Fantôme fondé sur les meilleurs temps enregistrés par voiture - Rôles IR explicites et sélection automatique des circuits, capteurs et aiguillages - LEDs physiques clignotantes associées aux mouvements des aiguillages - Commande manuelle extensible au clavier avec protection pendant les courses - Manuel utilisateur entièrement réécrit selon les exigences retenues - Suppression des feux tricolores, de la gestion des accidents et des délais de trois secondes # 1.31.43 (06/10/2026) ## Améliorations - **Raccourcis d’aiguillages extensibles** - Sélection directe des neuf premiers aiguillages avec les touches 1 à 9 - Navigation circulaire dans une liste de taille quelconque avec les flèches haut et bas - Affichage du raccourci disponible dans le tableau de commande # 1.31.42 (06/10/2026) ## Ajouts - **Commande manuelle au pavé numérique** - Touches 1 à 4 pour sélectionner un aiguillage - Touches + et − pour ouvrir ou fermer l’aiguillage sélectionné - Mise en évidence de la sélection et protection des champs de saisie # 1.31.41 (06/10/2026) ## Ajouts - **Mode Fantôme** - Référence basée sur le meilleur chrono historique de la même voiture et du même circuit - Affichage du chrono fantôme et de l’avance ou du retard pendant la course - Références fictives disponibles en mode simulé # 1.31.40 (06/10/2026) ## Améliorations - **Annonces de course** - Annonce unique du dernier tour et de l’arrivée de chaque voiture - Annonce du classement final dans l’ordre d’arrivée - Mise en file des annonces et désactivation automatique si le scénario contient déjà des actions audio # 1.31.39 (06/10/2026) ## Améliorations - **Règles de course par mode** - Saisie d’un objectif de tours ou de passages par circuit - Arrêt automatique lorsque les deux voitures atteignent l’objectif - Affichage de l’objectif dans la configuration du scénario # 1.31.38 (06/10/2026) ## Corrections - **Chronos en mode simulé** - Initialisation immédiate des deux voitures dans le suivi de course - Simulation des entrées et sorties des circuits secondaires I à IV - Alimentation des chronos actifs, passages, cumuls et classement - Affichage du tableau des chronos dès le départ de la simulation # 1.31.37 (06/10/2026) ## Améliorations - **Historique permanent des chronos** - Ajout dans le tableau de bord de la liste demandée par le cahier des charges - Affichage de la date, du pilote, de la voiture, de la voie et du type de course - Affichage des tours et chronos des circuits principal et secondaires I à IV - Affichage du cumul et d’une fenêtre de détail par résultat - Compatibilité avec les anciens résultats incomplets, affichés avec un tiret # 1.31.36 (06/10/2026) ## Améliorations - **Affichage des chronos conforme au cahier des charges** - Tableau des circuits secondaires I à IV pour les deux voitures - Affichage en minutes, secondes et millisecondes (`mm:ss.SSS`) - Chronomètre visible pendant le parcours entre l’entrée et la sortie - Cumul des chronos et nombre de passages par circuit - Association explicite des capteurs d’entrée/sortie au circuit chronométré # 1.31.35 (06/10/2026) ## Améliorations - **Suivi et résultat des courses** - Affichage en direct du nombre de tours, du dernier tour et du meilleur tour par pilote - Classement actualisé pendant la course - Conservation du classement final à l’écran après l’arrêt - Suppression de la création anticipée de résultats vides au lancement # 1.31.34 (06/10/2026) ## Corrections - **Emplacement physique et rôle des capteurs IR** - Autorisation des capteurs d’entrée ou de sortie secondaire sur le circuit principal - Suppression du filtrage et des alertes qui associaient à tort un rôle à un type de circuit - Acceptation de plusieurs entrées ou sorties secondaires sur une même piste - Présélection des capteurs par rôle fonctionnel, indépendamment de leur circuit physique # 1.31.33 (06/10/2026) ## Corrections - **Alertes de rôles IR hérités** - Prise en compte du type du circuit avant de déduire le rôle d’un ancien capteur - Priorité donnée aux positions d’entrée et de sortie sur l’ancien indicateur de comptage de tours - Regroupement des doublons en une seule alerte par circuit, voie et rôle - Suppression du cumul d’alertes « incompatible » et « doublon » pour le même capteur # 1.31.32 (05/10/2026) ## Améliorations - **Rôles explicites des capteurs infrarouges** - Identification des capteurs de départ/arrivée principal, d’entrée secondaire et de sortie secondaire - Filtrage des circuits compatibles lors de la configuration - Déduction des rôles depuis les anciennes propriétés lorsque cela est possible - Signalement des rôles manquants, dupliqués ou incompatibles - Utilisation des rôles pour fiabiliser la présélection des équipements des scénarios # 1.31.31 (05/10/2026) ## Améliorations - **Modes de course et équipements automatiques** - Ajout des six modes du cahier des charges et d’un mode personnalisé compatible avec les scénarios existants - Présélection des circuits, capteurs IR et moteurs selon le mode choisi - Aperçu des associations proposées avec signalement des équipements manquants ou ambigus - **LED de mouvement des aiguillages** - Association optionnelle d’une LED physique à chaque aiguillage - Allumage pendant les mouvements automatiques, manuels, groupés et de calibration - Extinction garantie à la fin du mouvement ou lors d’une erreur # 1.31.30 (04/10/2026) ## Améliorations - **Cr?ateur de scénario simplifié** - Saisie manuelle multiligne conservée, avec création directe de l'aperçu puis enregistrement - Texte conservé aprés génération et aperéu invalidé lors des modifications - Capteurs IR et moteurs regroupés par circuit ou par piste dans un panneau repliable - Insertion des équipements en toutes lettres dans le texte par un clic - Ctrl + Entrée ou Cmd + Entrée pour créer l'aperçu # 1.31.29 (02/10/2026) ## Sécurité - **Configuration des sauvegardes réservée au serveur** - Suppression de l’URI MongoDB, du chemin, de la rétention et du mode debug dans les requêtes du navigateur - Lancement des sauvegardes avec une requête vide et une configuration contrôlée par le backend # 1.31.28 (02/10/2026) ## Améliorations - **Sécurisation des opérations de maintenance** - Demande de confirmation avant la sauvegarde et la correction des broches Arduino - Blocage des doubles lancements pendant une opération en cours - Suivi de la sauvegarde jusqu’à sa fin réelle avec affichage du fichier créé ou de l’erreur rencontrée - Bilan détaillé de la correction : cartes et broches vérifiées, modifications, équipements et références introuvables - Rafraîchissement des Arduino sans rechargement complet de l’application # 1.31.27 (02/10/2026) ## Améliorations - **Navigation native avec Angular Router** - Attribution d’une URL dédiée à chaque écran pour permettre les liens directs - Prise en charge des boutons précédent et suivant du navigateur - Remplacement du sélecteur manuel d’écrans par un `router-outlet` - Conservation du chargement différé, de la nouvelle tentative et du préchargement existants - Redirection des URL inconnues vers l’écran de course - Réduction de `main.js` de 392 Ko à 299 Ko # 1.31.26 (02/10/2026) ## Corrections - **Nettoyage complet des ressources d’écran** - Arrêt automatique des abonnements persistants de l’ancien écran de course - Libération systématique des deux chronomètres lors de la fermeture de l’écran - Annulation des requêtes du dashboard et de toutes ses temporisations de confettis à la destruction - Audit des écrans différés, des événements socket et des timers restants # 1.31.25 (02/10/2026) ## Améliorations - **Fiabilisation des chargements différés** - Centralisation et mise en cache des imports dynamiques - Déduplication des chargements simultanés et nouvelle tentative automatique après un échec - Affichage d’une erreur avec action « Réessayer » lorsqu’un écran ne peut pas être chargé - Préchargement des écrans en arrière-plan au survol de la navigation # 1.31.24 (02/10/2026) ## Améliorations - **Chargement différé de l’aide et des informations** - Chargement du manuel, du mode d’emploi et du changelog uniquement à leur première ouverture - Suppression de la requête du changelog et du parseur Markdown au démarrage - Réduction de `main.js` de 491 Ko à 388 Ko et du bundle initial de 1,65 Mo à 1,56 Mo # 1.31.23 (01/10/2026) ## Améliorations - **Allègement du module principal** - Suppression des dépendances PrimeNG inutilisées au démarrage - Isolation des anciens composants de course encore conservés pour compatibilité - Suppression de l’écran de configuration agrégé remplacé par la navigation actuelle - Réduction de `main.js` de 595 Ko à 491 Ko et du bundle initial de 1,87 Mo à 1,65 Mo # 1.31.22 (01/10/2026) ## Améliorations - **Chargement différé de tous les écrans de configuration** - Création de points d’entrée distincts pour les circuits, Arduino, capteurs, moteurs, LED, voitures et pilotes - Mutualisation des dépendances UI entre les écrans différés - Réduction de `main.js` de 799 Ko à 595 Ko et du bundle initial de 2,06 Mo à 1,87 Mo # 1.31.21 (01/10/2026) ## Corrections - **Nettoyage automatique des abonnements** - Arrêt des abonnements aux modèles et aux formulaires à la fermeture des composants - Prévention des traitements dupliqués après plusieurs changements de section - Protection des imports différés lorsque l’écran de configuration est fermé pendant leur chargement - **Stabilité du changelog** - Suppression de l’erreur Angular `ExpressionChangedAfterItHasBeenCheckedError` au chargement de la page # 1.31.20 (01/10/2026) ## Améliorations - **Chargement différé de l’éditeur de scénarios** - Isolation de l’éditeur et de sa vue tabulaire dans un module fonctionnel différé - Création d’un chunk dédié de 76 Ko chargé uniquement à l’ouverture de l’éditeur - Affichage immédiat du dashboard et de l’éditeur dès la fin de leur chargement différé - Réduction de `main.js` de 975 Ko à 797 Ko et du bundle initial de 2,13 Mo à 2,06 Mo # 1.31.19 (01/10/2026) ## Améliorations - **Chargement différé des graphiques** - Chargement du tableau de bord et de la calibration infrarouge uniquement à leur ouverture - Extraction de Chart.js dans un chunk partagé différé - Réduction de `main.js` de 2,24 Mo à 975 Ko et du bundle initial de 2,37 Mo à 2,13 Mo # 1.31.18 (01/10/2026) ## Améliorations - **Réduction du bundle CSS initial** - Remplacement de la feuille PrimeFlex complète par les 134 règles réellement utilisées - Réduction du CSS initial de 427 Ko à 89 Ko - Réduction du bundle initial total de 2,71 Mo à 2,37 Mo # 1.31.17 (01/10/2026) ## Améliorations - **Suppression des avertissements de budgets CSS** - Extraction des styles de huit pages volumineuses vers un module global dédié - Préfixage des sélecteurs par composant pour conserver leur isolation visuelle - Conservation du budget strict de 4 Ko par feuille de composant # 1.31.16 (01/10/2026) ## Améliorations - **Finalisation de l’internationalisation TypeScript** - Traduction des sauvegardes, scans, corrections de broches et erreurs du tableau de bord - Traduction du résumé du générateur de scénarios et des notifications Socket - Suppression complète de la baseline historique, désormais vide # 1.31.15 (01/10/2026) ## Améliorations - **Internationalisation du plan de circuit** - Traduction des confirmations de placement et de dissociation des équipements - Traduction du titre, du circuit associé par défaut et des erreurs d’enregistrement - Réduction de 2 entrées supplémentaires de la baseline TypeScript # 1.31.14 (01/10/2026) ## Améliorations - **Internationalisation des commandes LED** - Traduction des avertissements liés aux Arduino déconnectés - Traduction des erreurs de commande avec le nom de la LED concernée - Réduction de 4 entrées supplémentaires de la baseline TypeScript # 1.31.13 (01/10/2026) ## Améliorations - **Internationalisation du réglage des moteurs** - Traduction des confirmations de rotation et de mise à jour - Traduction des erreurs de rotation, de course, de position et de sens - Réduction de 5 entrées supplémentaires de la baseline TypeScript # 1.31.12 (01/10/2026) ## Améliorations - **Internationalisation de l’ouverture manuelle** - Traduction des états de connexion et de rotation des aiguillages - Traduction des erreurs de commande, de moteur et de validation du nombre de pas - Réduction de 6 entrées supplémentaires de la baseline TypeScript # 1.31.11 (01/10/2026) ## Améliorations - **Internationalisation du lancement de course** - Traduction des annonces automatiques de passage et d’action - Traduction des erreurs audio, des états du départ et du test de synthèse vocale - Réduction de 11 entrées de la baseline TypeScript # 1.31.10 (01/10/2026) ## Améliorations - **Contrôle de l’internationalisation** - Extension de l’audit aux notifications, erreurs affichées et annonces définies dans les fichiers TypeScript - Ajout d’une baseline explicite des textes historiques pour empêcher toute nouvelle régression - Détection des entrées de baseline devenues obsolètes après traduction - Ajout de tests unitaires exécutés automatiquement par `npm run i18n:check` # 1.31.9 (30/09/2026) ## Améliorations - **Internationalisation de l’interface** - Remplacement des textes statiques des écrans par des clés de traduction - Centralisation des libellés, aides, infobulles, états vides et attributs d’accessibilité dans le catalogue français - Ajout d’un contrôle automatisé des textes codés en dur et des clés de traduction manquantes # 1.31.8 (30/09/2026) ## Améliorations - **Organisation des styles** - Extraction des règles de l’éditeur de topologie dans un module global dédié - Réduction de la feuille racine aux styles communs et aux imports thématiques - Conservation des styles de topologie hors du composant Circuit pour respecter son budget CSS # 1.31.7 (30/09/2026) ## Améliorations - **Suivi de course en temps réel** - Typage des événements Socket.IO d’action, de capteur, de déclencheur, d’audio et de chronomètre - Typage des historiques affichés et des références peuplées - Sécurisation de la résolution des pilotes, voitures et circuits - Typage explicite des minuteries du chronomètre et du compte à rebours # 1.31.6 (30/09/2026) ## Corrections - **Lancement des scénarios** - Suppression du double pilotage des sélecteurs de pilotes et voitures par `ngModel` et formulaire réactif - Le formulaire réactif devient l’unique source des participants envoyés au préflight et au lancement - Suppression des états de sélection redondants # 1.31.5 (30/09/2026) ## Améliorations - **Organisation des styles** - Extraction des styles globaux des pages de scénarios dans un module dédié - Conservation de ces règles hors des composants pour ne pas aggraver leurs budgets CSS - Remplacement du sélecteur global `::ng-deep` obsolète appliqué aux cartes PrimeNG # 1.31.4 (30/09/2026) ## Corrections - **Calibration des aiguillages** - Fin de l’indicateur de rotation synchronisée avec la réponse réelle du backend - Affichage d’un retour explicite après une rotation réussie ou échouée - Restauration des valeurs précédentes lorsqu’une mise à jour ne peut pas être enregistrée - Validation des nombres de pas et amélioration de l’accessibilité des commandes de rotation # 1.31.3 (30/09/2026) ## Corrections - **Contrats des scénarios** - Alignement des actions LED et chronomètre avec les paramètres réellement acceptés par le backend - Typage des actions par catégorie pour empêcher les combinaisons de paramètres invalides - Prise en charge explicite des circuits peuplés, des chronos et de l’historique d’exécution - Suppression du champ cible inutile lors de la sérialisation des actions chronomètre # 1.31.2 (29/09/2026) ## Corrections - **Navigation et fenêtres modales** - Correction de la priorité d’affichage du MegaMenu - Le menu reste au-dessus du contenu des pages sans recouvrir les masques et fenêtres modales PrimeNG # 1.31.1 (29/09/2026) ## Améliorations - **Harmonisation de l’interface** - Uniformisation de toutes les pages actives avec la charte visuelle des écrans Circuit et Distance entre capteurs - Ajout d’en-têtes, de résumés, d’états vides et de mises en page responsives cohérentes - Modernisation des formulaires, tableaux, cartes, badges et actions principales - **Configuration électronique** - Refonte des écrans Arduino, capteurs infrarouges, calibration IR, aiguillages, calibration moteur et LED - Clarification de la sélection des broches et des états du matériel - Correction du débordement de la commande de rotation horaire - **Courses et participants** - Harmonisation des écrans Voitures, Pilotes, Scénarios, lancement de course et commande manuelle - Présentation plus compacte des moteurs et commandes contextuelles plus lisibles - **Supervision et aide** - Refonte du Dashboard, du Mode d’emploi et de la fenêtre Version - Amélioration de la lisibilité des indicateurs, graphiques, informations système et notes de version # 1.31.0 (29/09/2026) ## Nouveautés - **Configuration visuelle des circuits** - Ajout d’un éditeur de disposition pour positionner les circuits sur une grille - Déplacement des capteurs IR et des aiguillages par glisser-déposer entre les circuits et les pistes - Ordonnancement des capteurs avant et après les aiguillages - Configuration des connexions d’entrée et de sortie entre circuits - Prise en charge des circuits en boucle et affichage de la topologie configurée - **Scénarios de duel** - Ajout d’un mode « premier arrivé » entre deux pistes - Ouverture immédiate de l’aiguillage du premier pilote puis ouverture différée de l’autre aiguillage - Réarmement automatique du duel pour les scénarios exécutés en boucle infinie - Ajout d’un assistant de création de duel avec sélection des capteurs et aiguillages par piste - Affichage des groupes de duel et du capteur adverse attendu dans la configuration des scénarios - Suppression groupée des deux déclencheurs appartenant au même duel - **Éditeur en langage humain** - Reconnaissance des règles symétriques introduites par « mais si » - Tolérance des articles, de la casse et de formulations légèrement incorrectes - Mise en évidence des mots-clés, pistes, capteurs et aiguillages pendant la saisie - **Conditions de scénario** - Ajout de conditions basées sur le nombre de passages d’un autre capteur - Configuration manuelle des opérateurs « au moins » et « moins de » ## Backend - **Modèles de données** - Ajout des positions de capteurs et de leur zone relative à l’aiguillage - Ajout des connexions, du mode boucle et de la topologie des circuits - Ajout des conditions et métadonnées de coordination aux déclencheurs de scénario - **Moteur de scénario** - Comptage des passages IR par capteur - Coordination atomique des déclencheurs d’un duel et validation de leur réciprocité - Nettoyage des états de duel au lancement et à l’arrêt d’un scénario - **Tests** - Ajout de tests sur les conditions de passage et le cycle « premier arrivé puis autre pilote » # 1.29.3 (25/09/2026) ## Nouveautés - **Scénarios en cours** - Affichage de la vitesse moyenne estimée de chaque pilote entre deux capteurs infrarouges - Calcul à partir de la distance configurée et du temps mesuré entre les passages - Affichage du tronçon, de la distance et de la durée utilisés pour l’estimation # 1.29.2 (24/09/2026) ## Corrections - **Scénarios** - Libération des abonnements aux scénarios, pilotes et voitures à la fermeture de l'écran de lancement - Centralisation du verrou d'exécution des scénarios dans le service backend - Libération des ressources et du verrou lorsqu'un lancement de scénario échoue - Refus d'arrêter une course lorsqu'un autre identifiant de scénario est demandé - Validation et confirmation par le backend du signal de départ Socket.IO - Démarrage du signal « Go » et du chronomètre uniquement après confirmation du serveur - Annulation du départ lorsque la connexion temps réel est indisponible - Affichage dans la fenêtre de lancement des erreurs de connexion Arduino retournées par le backend - **Connexion temps réel** - Centralisation de l'adresse Socket.IO dans la configuration d'environnement - Réutilisation de la connexion Socket.IO partagée pendant la calibration infrarouge - Compatibilité de la calibration avec une installation distante ou derrière un proxy - Restriction des connexions Socket.IO aux origines autorisées par le serveur - **Stabilité du serveur** - Arrêt contrôlé du backend après une erreur fatale - Fermeture des connexions HTTP, Socket.IO, MongoDB et des cartes Arduino avant l'arrêt - Conservation du serveur en fonctionnement lorsqu'une carte Arduino signale un timeout après sa fermeture - Conservation du serveur en fonctionnement lorsque MongoDB est temporairement indisponible - Journalisation et diagnostic de santé des erreurs de connexion MongoDB sans exposition des informations sensibles - Fermeture propre des ressources lors de l'arrêt du lanceur ou du système - Conservation du serveur en fonctionnement lorsqu'un port série Arduino est absent - Interception précoce des erreurs `firmata-io` pendant l'ouverture d'un port série - Annulation propre du lancement d'un scénario lorsque son matériel requis est indisponible - **Sauvegardes MongoDB** - Masquage des identifiants et mots de passe MongoDB dans les journaux de sauvegarde - **Validation des données** - Application des validateurs Mongoose lors des mises à jour des configurations - **API** - Uniformisation des erreurs HTTP au format JSON - Gestion explicite des identifiants invalides, erreurs de validation et doublons - Masquage des détails internes lors des erreurs serveur - **Tests** - Rétablissement de la suite de tests Angular avec la configuration applicative réelle - Isolation des tests des connexions HTTP et Socket.IO externes - **Formulaires** - Suppression du double binding déprécié dans la sélection des circuits d'un scénario de course - Nettoyage du composant de configuration des scénarios de course - Nettoyage du composant de configuration des LED # 1.29.1 (24/09/2026) ## Corrections - **Restauration MongoDB** - Correction de l'extraction des sauvegardes ZIP lorsque leur chemin contient des espaces - **Gestion des LED** - Vérification de la connexion de l'Arduino avant d'allumer ou d'éteindre une LED - Désactivation des commandes lorsque l'Arduino associé est déconnecté - Conservation de l'état courant de la LED en cas d'échec de la commande matérielle # 1.29.0 (23/09/2026) ## Nouveautés - **Packages** - Mise à jours des packages npm # 1.28.2 (22/09/2026) ## Nouveautés - **Gestion arduino** - Gestion des arduinos via un gestionaire unique et centralisé # 1.28.0 (21/09/2026) ## Nouveautés - **Calibration infrarouge** - Ajout d'un overlay pendant la connexion à l'arduino et l'attente des valeurs - **IR distances** - Ajout du diagramme des distances entre infrarouge # 1.27.11 (20/09/2026) ## Nouveautés - **Scenario** - Ajout de récapitulatif compréhensibles de la course - Ajout de synthèse vocale # 1.27.10 (18/09/2026) ## Mise à jour - **Scenario** - Changement du sens de rodation des moteurs # 1.27.5 - 1.27.9 (17/09/2026) ## Nouveautés - **Scenario** - Mise à jour du lancement des scénarios # 1.27.4 (16/09/2026) ## Nouveautés - **Installation et Mise à jour** - Changement de façon d'installation et mise à jour du logiciel # 1.27.1 (13/09/2026) ## Nouveautés - **Travail sur les scénarii** # 1.27.0 (11/09/2026) ## Nouveautés - **Correction de la connexion Arduino** - **Correction du temps d'attente de l'ouverture manuelle des moteurs** - **Correction de la visualisation des led infrarouges** # 1.26.0 (09/09/2026) ## Nouveautés - **Correction de la connexion Arduino** - **Correction de l'initialisation du menu** - **Correction de l'intialisation du dashboard** - **Correction de labels flotants de champs** --- # 1.25.0 (17/09/2025) ## Nouveautés - **Statuts Arduino** - Affichage global (pastille de couleur en fonction de la moyenne des connexions). - Détail des statuts individuels de chaque Arduino dans le menu principal. --- # 0.0.1 → 1.24.0 ## Gestion des composants - **Arduino** - Ajout, modification et suppression. - Vérification de la cohérence des pins (détection des conflits d’occupation). - **LEDs** - Création et gestion des LEDs connectées. - **Capteurs infrarouge** - Ajout, suppression et édition. - Calibration et seuils de détection configurables. - **Moteurs (aiguillages)** - Ajout, suppression et édition. - Calibration complète. - Commande manuelle : ouverture/fermeture directe. - **Voitures et pilotes** - Ajout, suppression et édition. - **Circuits** - Définition des circuits (nom, numéro, type primaire/secondaire). - **Scénarios de course** - Création, modification et suppression. - Définition des actions avec déclencheurs basés sur capteurs infrarouge, compteurs de passages et moteurs associés. ### Fonctionnalités avancées - **Mode d’emploi intégré** - Accès à un guide interactif dans l’application. - **Visualisation de la version** - Affichage clair de la version courante de l’application. - **Sauvegarde de la base de données** - Export et restauration de l’état complet. - **Dashboard statistiques** - Vue globale de l’activité, performances et état des capteurs/moteurs.