Événements et surveillance
Le service transmet les événements système via un WebSocket dédié en lecture seule surle port 10020. Ces événements signalent les déclenchements de sécurité, les connexions d'appareils, les alertes de batterie, les changements de cycle de vie des sessions et les anomalies du cycle de contrôle.
URL par défaut : ws://localhost:10020
Format JSON des événements
{
"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 d'événement stable (utilisé pour le filtrage et la commutation) |
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 par événement |
message | chaîne de caractères | Explication compréhensible par l'utilisateur |
Type d'événement
Événements liés aux appareils
| Nom | niveau | Moment de survenue |
|---|---|---|
device-connected | info | Lorsqu'un nouvel appareil est détecté et prêt à être utilisé |
device-disconnected | warning | Lorsque la connexion à l'appareil est interrompue (déconnexion ou délai d'attente dépassé) |
device-battery-low | warning | Lorsque le niveau de charge de la batterie du VerseGrip sans fil passe en dessous du seuil minimal |
device-battery-critical | error | Lorsque la batterie du VerseGrip sans fil atteint un niveau de charge critique |
device-sleep | info | Lorsque le VerseGrip sans fil passe en mode veille |
device-busy | warning | Lorsque l'appareil est utilisé dans une autre session |
device-connection-loop | warning | Lorsque des connexions et déconnexions répétées sont détectées au niveau du port |
Événement consacré à la sécurité
| Nom | niveau | Moment de survenue |
|---|---|---|
device-safety-triggered | Cela dépend de la situation | Avertissement de sécurité émis par le micrologiciel (voir ci-dessous) |
device-calibration-failed | warning | Lorsque la calibration de l'Inkwell a été effectuée mais que le stylo ne fonctionne pas |
device-safety-triggered sous-type
Les données d'événement safety_type Le champ indique la situation qui s'est produite :
safety_type | niveau | Signification |
|---|---|---|
ebrake_triggered | error | Le frein d'urgence s'est déclenché — Appareil verrouillé |
ebrake_released | notice | Le frein de secours a été désactivé |
fod_stage_changed | warning / info | Lorsque le niveau de sécurité FOD dépasse le seuil entre « faible risque » et « risque élevé » |
stall_detected | warning | Détection d'un blocage du moteur |
stability_ceiling | warning | Limite supérieure de stabilité atteinte |
device-calibration-failed Motif
reason | Signification |
|---|---|
pen_not_connected | La poignée « verse grip » n'est pas du tout connectée |
pen_asleep | La poignée Verse sans fil est connectée, mais elle est en mode veille. |
pen_not_attached | La prise de la manette est prête, mais la valeur du capteur de trou est inférieure au seuil |
Événements de session
| Nom | niveau | Moment de survenue |
|---|---|---|
session-started | notice | Une session WebSocket a été créée |
session-stopped | notice | La session WebSocket a été supprimée |
device-low-control-rate | warning | Le cycle de contrôle de la session est tombé en dessous du seuil recommandé |
device-critical-control-rate | error | Le cycle de contrôle est tombé à un niveau critique |
Événements système
| Nom | niveau | Moment de survenue |
|---|---|---|
system-rate-report | info | Rapport périodique sur la fréquence de mise à jour de la boucle principale |
Réception d'événements
Python prêt à l'emploi permettant de filtrer par niveau, modèle de nom et conditions d'exclusion Consultez le tutorielsur les écouteurs d'événements:
# 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*"