Événements et surveillance
Le service diffuse les événements système via un WebSocket en lecture seule dédié sur le port 10020. Ces événements signalent les déclenchements de sécurité, les connexions d'appareils, les alertes de batterie, les changements dans le cycle de vie des sessions et les anomalies de fréquence de contrôle.
URL par défaut : ws://localhost:10020
Structure de l'événement JSON
{
"name": "device-safety-triggered",
"category": "device",
"level": "warning",
"data": { "device_family": "inverse", "device_id": "049D", … },
"message": "FOD stage changed: guard -> hard"
}
| Champ | Type | Description |
|---|---|---|
name | chaîne de caractères | Identifiant stable de l'événement (à utiliser pour le filtrage ou la bascule) |
category | chaîne de caractères | device, session, system |
level | chaîne de caractères | info, notice, warning, error, critical, panic |
data | objet | Charge utile spécifique à l'événement |
message | chaîne de caractères | Description lisible par un humain |
Types d'événements
Événements liés aux appareils
| Nom | Niveau | Quand |
|---|---|---|
device-connected | info | Un nouvel appareil a été détecté et est prêt |
device-disconnected | warning | Un appareil a été perdu (débranché ou délai dépassé) |
device-battery-low | warning | Batterie du VerseGrip sans fil sous le seuil |
device-battery-critical | error | Batterie du VerseGrip sans fil à un niveau critique |
device-sleep | info | Passage du VerseGrip sans fil en mode veille |
device-busy | warning | L'appareil est utilisé par une autre session |
device-connection-loop | warning | Cycles répétés de connexion et de déconnexion détectés sur un port |
Incidents de sécurité
| Nom | Niveau | Quand |
|---|---|---|
device-safety-triggered | variable | Avis de sécurité émis par le micrologiciel (voir ci-dessous) |
device-calibration-failed | warning | L'étalonnage Inkwell a été lancé, mais le stylet ne fonctionne pas |
Sous-types de device-safety-triggered
Le champ safety_type Les données relatives à l'événement indiquent ce qui s'est passé :
safety_type | Niveau | Signification |
|---|---|---|
ebrake_triggered | error | Frein d'urgence activé — appareil verrouillé |
ebrake_released | notice | Frein d'urgence desserré |
fod_stage_changed | warning / info | Le niveau de sécurité FOD a franchi la limite entre un risque faible et un risque élevé |
stall_detected | warning | Calage moteur détecté |
stability_ceiling | warning | Plafond de stabilité atteint |
Raisons de device-calibration-failed
reason | Signification |
|---|---|
pen_not_connected | Aucun grip Verse n'est connecté |
pen_asleep | Le Verse Grip sans fil est appairé, mais en mode veille |
pen_not_attached | Le dispositif de préhension est prêt, mais le capteur à effet Hall est en dessous du seuil |
Événements de session
| Nom | Niveau | Quand |
|---|---|---|
session-started | notice | Une session WebSocket a été créée |
session-stopped | notice | Une session WebSocket a été fermée |
device-low-control-rate | warning | La fréquence de vérification de la session est passée en dessous du seuil recommandé |
device-critical-control-rate | error | La fréquence des contrôles a atteint un niveau critique |
Événements système
| Nom | Niveau | Quand |
|---|---|---|
system-rate-report | info | Rapport périodique sur la fréquence des cycles de la boucle principale |
Écouter les événements
Suivez le tutoriel sur les événements pour obtenir un écouteur Python prêt à l'emploi, avec filtrage par niveau, par motifs de noms et par exclusions :
# All events
python 10-haply-inverse-events.py
# Only warnings and above
python 10-haply-inverse-events.py --level warning
# Only device events
python 10-haply-inverse-events.py --name "device-*"
# Exclude battery noise
python 10-haply-inverse-events.py --exclude "*battery*"