Skip to content

Selector

Module ID: 7 (MODULE_SELECTOR) Sensor: TMAG5273C1 (Texas Instruments)

Moduł selektora trybu ognia. Wykorzystuje czujnik Hall-effect do detekcji pozycji przełącznika. Dostępny tylko w wariancie ETU.

Data Frame

Header (12B)
Module ID Flags Frame Nr Sample Count Timestamp First Timestamp Last Δ
1B 1B 1B 1B 5B LE 3B LE
byte 0 byte 1 byte 2 byte 3 byte 4–8 byte 9–11
Pole Wartość
Module ID 7
Flags 0x00
Sample Count 1
Timestamp Last Δ 0 (zdarzenie — single sample)

Payload

Każda próbka składa się z 1 bajtu:

Selector sample (1B)
Position
1B
byte 0
Offset Rozmiar Pole Format
0 1B position selector_position_t

Wartości position

typedef enum {
    SELECTOR_POSITION_SAFE = 1,  // bezpieczny
    SELECTOR_POSITION_SEMI = 2,  // półautomatyczny
    SELECTOR_POSITION_AUTO = 3,  // automatyczny
} selector_position_t;

Parsowanie (TypeScript)

enum SelectorPosition {
  SAFE = 1,
  SEMI = 2,
  AUTO = 3,
}

function parseSelectorSample(view: DataView, offset: number): SelectorPosition {
  return view.getUint8(offset) as SelectorPosition;
}

Control

Module-specific keys

Key Wartość Typ Opis
KEY_SELECTOR_HYSTERESIS 0x80 SET/GET Próg histerezy Manhattan (uint8_t, |dy|+|dz|)
KEY_SELECTOR_RAW_DATA 0x81 GET Bieżące surowe wartości Y, Z z TMAG. value[0] = y (int8_t), value[1] = z (int8_t). Wymaga aktywnego pomiaru (MODULE_ENABLE=true).

Calibration keys

Selektor obsługuje kalibrację 4-punktową:

Step selector_calib_step_t Opis
0 SELECTOR_CALIB_SAFE Pozycja SAFE (0°)
1 SELECTOR_CALIB_SEMI_A Pozycja SEMI — strona A (90°)
2 SELECTOR_CALIB_AUTO Pozycja AUTO (180°)
3 SELECTOR_CALIB_SEMI_B Pozycja SEMI — strona B (powrót)

Sekwencja kalibracji:

CALIB_START → CALIB_CAPTURE(0) → CALIB_CAPTURE(1) → CALIB_CAPTURE(2) → CALIB_CAPTURE(3) → CALIB_COMMIT

Universal keys

  • KEY_CTRL_INFO (0x01) — informacje o module
  • KEY_CTRL_ENABLE (0x02) — włącz/wyłącz moduł