본문으로 건너뛰기

이벤트 및 모니터링

서비스는 포트 10020의 전용 읽기 전용 WebSocket를 통해 시스템 이벤트를 전송합니다. 이벤트는 안전 트리거, 장치 연결, 배터리 경고, 세션 수명 주기 변경, 제어 주기 이상을 보고합니다.

기본 URL: ws://localhost:10020

이벤트 JSON 형식​

{
"name": "device-safety-triggered",
"category": "device",
"level": "warning",
"data": { "device_family": "inverse", "device_id": "049D", … },
"message": "FOD stage changed: guard -> hard"
}
필드유형설명
namestring안정적인 이벤트 식별자 (필터링 / 전환에 사용)
categorystringdevice, session, system
levelstringinfo, notice, warning, error, critical, panic
dataobject이벤트별 페이로드
messagestring사람이 읽을 수 있는 설명

이벤트 유형​

장치 이벤트​

이름수준발생 시점
device-connectedinfo새 장치가 감지되어 사용 준비가 되었을 때
device-disconnectedwarning장치 연결이 끊겼을 때 (분리되었거나 시간 초과됨)
device-battery-lowwarning무선 VerseGrip 배터리가 임계값 아래로 떨어졌을 때
device-battery-criticalerror무선 VerseGrip 배터리가 위험 수준으로 부족할 때
device-sleepinfo무선 VerseGrip가 절전 모드로 전환되었을 때
device-busywarning장치가 다른 세션에서 사용 중일 때
device-connection-loopwarning포트에서 연결/연결 해제가 반복적으로 감지되었을 때

안전 이벤트​

이름수준발생 시점
device-safety-triggered상황에 따라 다름펌웨어에서 보낸 안전 알림 (아래 참조)
device-calibration-failedwarningInkwell 캘리브레이션이 실행되었지만 펜을 사용할 수 없을 때

device-safety-triggered 하위 유형​

이벤트 데이터의 safety_type 필드는 발생한 상황을 나타냅니다:

safety_type수준의미
ebrake_triggerederror비상 브레이크가 작동함 — 장치 잠김
ebrake_releasednotice비상 브레이크가 해제됨
fod_stage_changedwarning / infoFOD 안전 단계가 저위험/고위험 경계를 넘었을 때
stall_detectedwarning모터 스톨이 감지됨
stability_ceilingwarning안정성 상한에 도달함

device-calibration-failed 사유​

reason의미
pen_not_connectedverse grip이 전혀 연결되어 있지 않음
pen_asleep무선 verse grip이 페어링되어 있지만 절전 모드임
pen_not_attachedverse grip은 준비되었지만 홀 센서 값이 임계값 아래임

세션 이벤트​

이름수준발생 시점
session-startednoticeWebSocket 세션이 생성됨
session-stoppednoticeWebSocket 세션이 삭제됨
device-low-control-ratewarning세션의 제어 주기가 권장 임계값 아래로 떨어짐
device-critical-control-rateerror제어 주기가 위험 수준으로 떨어짐

시스템 이벤트​

이름수준발생 시점
system-rate-reportinfo주기적인 메인 루프 틱 속도 보고

이벤트 수신​

레벨, 이름 패턴, 제외 조건으로 필터링하는 바로 실행 가능한 Python 리스너는 이벤트 튜토리얼을 참조하십시오:

# 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*"