659 lines
35 KiB
Markdown
659 lines
35 KiB
Markdown
# 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.
|