Aller au contenu

M-Diagnostic - Diagnostiquer le matériel

Type : écran « Diagnostic matériel » d'un passage (atteint depuis M-Passage pour un passage disposant d'un journal du capteur et/ou d'un relevé climatique). Persona principal : Karim et Samuel (exploitation pro, contrôle du parc d'enregistreurs). Parcours couverts : P6 - Diagnostiquer le matériel.

L'écran présente, pour le passage courant, un bilan technique de la nuit : un graphe climatique (température / hygrométrie) issu du relevé de la sonde, la liste des anomalies détectées dans le journal du capteur (R19), le journal brut des évènements, la cohérence horaire (fenêtre nocturne réelle au point d'écoute et repère « hors nuit »), et l'état du GPS du point d'écoute. L'objectif : décider si un enregistreur doit être révisé.

Robustesse : quand le relevé climatique est manquant (sonde absente ou défaillante), la section climat n'est pas masquée : un bandeau d'avertissement explicite le signale (R20) et le reste du diagnostic reste exploitable.

Maquette principale - passage avec relevé climatique présent

VigieChiro Companion Accueil › Mes sites › Carré 640380 › Passage N° 2 › Diagnostic Rechercher (Ctrl+F) Température en début de nuit : 8,5 °C T° (°C) / Humidité … 100 75 50 25 0 20:30 22:30 00:30 02:30 05:30 Heure T° (°C) Humidité (%) Anomalies (R19) Réveil non programmé : 23/06/26 - 03:12:00 PR1925492 Wakeup Batterie faible (18%) : Batteries internes 18% Évènements du journal ### Démarrage PR1925492 Arrêt programmé à 06:00:00 Nuit : coucher 21:58 · lever 05:48 Hors nuit : démarrage avant le coucher et arrêt après le lever du soleil (une partie de l'enregistrement est diurne). GPS du point : disponible Carré 640380 · A1 · N° 2 PR 1925492 · 10 mesures Hors nuit

Annotations

  • Fil d'Ariane et retour : portés par le chrome (barre de navigation commune) via le contrat EmplacementNavigation ; l'écran ne dessine pas son propre fil. Emplacement affiché : Accueil › Mes sites › Carré N › Détails du passage N° X › Diagnostic matériel, identique quelle que soit la route.
  • Pas de titre d'écran (#693) : le titre « Diagnostic matériel » serait redondant avec le fil d'Ariane. L'enregistreur diagnostiqué et le nombre de mesures climatiques sont portés par la barre de statut (zone centre : PR 1925492 · 10 mesures).
  • Température en début de nuit (lblTemperature) : donnée optionnelle saisie en M-Passage (8,5 °C, ou un tiret si elle n'est pas renseignée).
  • Graphe climatique (grapheClimat) : LineChart à deux séries (température en orange foncé, hygrométrie en orange clair). Axe X temporel (NumberAxis en minutes depuis la première mesure, étiquettes HH:mm, quelques repères espacés), axe Y commun T° (°C) / Humidité…. Légende sous le graphe.
  • Anomalies (R19) (listeAnomalies) : ListView des évènements anormaux du journal (réveils non programmés, batterie faible, erreurs SD…). Le journal étant circulaire, certaines entrées anciennes peuvent manquer.
  • Évènements du journal (listeEvenements) : ListView du journal brut horodaté du capteur (démarrage, arrêt programmé…).
  • Cohérence horaire (lblFenetreNuit, lblAlerteHorsNuit, #548) : la fenêtre nocturne réelle au point d'écoute (Nuit : coucher 21:58 · lever 05:48), calculée depuis les coordonnées et la date ; une alerte « hors nuit » apparaît si l'enregistrement démarre avant le coucher ou s'arrête après le lever du soleil.
  • État GPS (lblGps) : ligne d'état permanente portant les coordonnées du point d'écoute (et non du capteur) : « GPS du point : disponible », ou « GPS du point : non renseigné (compléter la fiche site) ». Le calcul de la fenêtre nocturne en dépend.
  • Zone de message (lblMessage) : retours d'état (passage introuvable, erreurs).

Variante - relevé climatique absent (R20)

Si la sonde est absente ou défaillante, la section climat n'est pas masquée : un bandeau d'avertissement (lblReleveAbsent) annonce « Relevé climatique absent : la température et l'hygrométrie ne sont pas disponibles pour cette nuit. », le LineChart s'affiche vide (sans étiquettes d'axe) et le nombre de mesures disparaît de la barre de statut. Les listes Anomalies / Journal, la cohérence horaire et l'état GPS restent affichés et exploitables.

Température en début de nuit : 8,5 °C Le graphe s'affiche vide (sans étiquettes d'axe). Anomalies, journal, cohérence horaire et état GPS restent disponibles.

Interactions clés

Élément Action
Survol d'un point du graphe Infobulle : horodatage + valeur (T° / hygrométrie)
Sélection d'une anomalie Met en évidence l'entrée correspondante dans le journal
Relevé climatique absent Bandeau R20 + graphe vide, le reste du diagnostic reste exploitable
Coordonnées GPS absentes lblGps affiche « non renseigné » et invite à compléter la fiche site (P1)

Notes pour l'implémentation

  • LineChart JavaFX : deux XYChart.Series (température, hygrométrie) sur un axe temporel (NumberAxis, étiquettes HH:mm). Lier les séries à des collections observables du ViewModel ; gérer proprement le cas « série vide » (graphe affiché sans étiquettes d'axe, pas d'exception).
  • ListView pour anomalies et journal : cellFactory simple (texte). La virtualisation native suffit même pour un journal volumineux.
  • Données manquantes explicites (R20) : ne jamais masquer une section absente. Piloter la visibilité du bandeau via une BooleanProperty du ViewModel (releveClimatiqueAbsent).
  • Cohérence horaires astronomiques : implémentée (#548). L'écran calcule la fenêtre nocturne réelle au point d'écoute (coucher / lever du soleil via une éphéméride, fuseau Europe/Paris) et compare les horaires d'enregistrement à cette fenêtre pour repérer un démarrage ou un arrêt hors nuit (portion diurne). Indisponible proprement si le GPS ou les horaires manquent, ou en latitude polaire.
  • Icônes : les repères visuels (température, anomalies, journal, nuit, GPS) sont des FontIcon Ikonli, pas des emojis (règle #700).
  • Réutilisation : l'écran consomme le relevé climatique et le journal du capteur déjà chargés par le socle pour le passage ; le ViewModel expose des propriétés observables, la vue ne fait que les lier.