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ł