Device Info
Charakterystyka Device Info udostępnia informacje o urządzeniu w formacie TLV (Type-Length-Value).
Parametry
| Parametr | Wartość |
|---|---|
| UUID | 457bbb14-9c79-44a8-9810-f17bd358a203 |
| Operacje | READ |
Format TLV
Payload składa się z sekwencji rekordów TLV:
Typy
MODULES_AVAILABLE (type = 0x01)
Pole value to tablica identyfikatorów modułów (module_t, 1 bajt każdy) dostępnych w urządzeniu.
| TLV Header | Value — MODULES_AVAILABLE | ||||
| Type = 0x01 | Length = N | module_id[0] | module_id[1] | … | module_id[N-1] |
| 1B | 1B | 1B | 1B | 1B | 1B |
| byte 0 | byte 1 | byte 2 | byte 3 | … | byte N+1 |
VARIANT_ID (type = 0x02)
Identyfikator wariantu urządzenia (1 bajt).
| TLV Header | Value — VARIANT_ID | |
| Type = 0x02 | Length = 1 | variant_id |
| 1B | 1B | 1B |
| byte 0 | byte 1 | byte 2 |
Wartości variant_id
| Wartość | Wariant |
|---|---|
0x01 |
MWT Base Station |
0x02 |
MWT Body Module |
0x03 |
MWT ETU |
0x04 |
MWT Head Module |
FW_VERSION (type = 0x03)
Wersja firmware w formacie SemVer (3 bajty: major, minor, patch).
| TLV Header | Value — FW_VERSION | |||
| Type = 0x03 | Length = 3 | major | minor | patch |
| 1B | 1B | 1B | 1B | 1B |
| byte 0 | byte 1 | byte 2 | byte 3 | byte 4 |
Przykład — pełny payload
Urządzenie MWT Head Module (variant 0x04), firmware 2.1.0, z modułami AccGyro (2), Barometer (3), Battery (4), Magnetometer (6), Quaternion (7), UI (8):
# TLV 0x01: MODULES_AVAILABLE
byte[0] = 0x01 ← type: MODULES_AVAILABLE
byte[1] = 0x06 ← length: 6 bajtów
byte[2] = 0x02 ← MODULE_ACC_GYRO
byte[3] = 0x03 ← MODULE_BAROMETER
byte[4] = 0x04 ← MODULE_BATTERY
byte[5] = 0x06 ← MODULE_MAGNETOMETER
byte[6] = 0x07 ← MODULE_QUATERNION
byte[7] = 0x08 ← MODULE_UI
# TLV 0x02: VARIANT_ID
byte[8] = 0x02 ← type: VARIANT_ID
byte[9] = 0x01 ← length: 1 bajt
byte[10] = 0x04 ← HEAD_MODULE
# TLV 0x03: FW_VERSION
byte[11] = 0x03 ← type: FW_VERSION
byte[12] = 0x03 ← length: 3 bajty
byte[13] = 0x02 ← major: 2
byte[14] = 0x01 ← minor: 1
byte[15] = 0x00 ← patch: 0
Wykrywanie urządzenia
Po połączeniu odczytaj Device Info, żeby poznać:
- Wariant — jaki to typ urządzenia (Base Station, Body, ETU, Head).
- Wersję firmware — do sprawdzenia kompatybilności protokołu.
- Dostępne moduły — jakich ramek Data się spodziewać i jakie komendy Control mają sens.