Skip to content

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:

[type (1B)][length (1B)][value (length B)] ...

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.