docs(domain K): v2 после adversarial-ревью (18 находок) + кросс-док

- GPS-скорость: zero-clamp <~2-3 км/ч (на стоянке Doppler-шум, не ноль) — distraction v1
  получал бы ложный on; FixQuality многоуровневый (no_fix/2d/3d/augmented/dead_reckoning
  + HDOP/sats); dead_reckoning не валиден для distraction/Nav; валидность времени ≠ позиции
- приватность локации: эфемерна (без трека в v1), audit-log, исключена из LLM-промпта,
  while-in-use грант, on-device
- антенна (внешняя/активная), TTFF cold/warm-start, окно без GPS на старте поездки;
  питание GPS в sleep/battery-cutoff (обесточивание+cold-start по умолчанию)
- резистивная ADC-лесенка руля: контракт window-table + кондиционирование + collision-drop
  + темп-дрейф; транспорт ввода = uinput/evdev (не Shell-D-Bus, иначе surface-апы не покрыты);
  гейтинг руль-действий в distraction
- IMU опционален/не гарантирован → dashcam (J) = непрерывный ring-buffer, не на g-sensor
- точность времени SHM (~десятки-сотни мс), PPS опц./hardware-gated; Nav «фаза 2»→v4
- кросс-док: a-base §7/§14 (SHM, split time-row + K-dep), hardware §4 (антенна/1PPS),
  domains/README (K-cell без TPMS/климата), ipc Location (enum), c-shell §7/§9/§11
  (clamped speed, uinput-ввод, закрыт Location-вопрос)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-22 15:30:08 +03:00
parent 7a30ed7a7d
commit 5ba19cde46
6 changed files with 177 additions and 11 deletions
+1 -1
View File
@@ -81,7 +81,7 @@ fail-safe при отказе/зависании самого MCU** (незав
|------|-------|--------------|
| **Дисплей** | HDMI + USB-тачскрин | MIPI-DSI / LVDS панель |
| **CAN/OBD** | ELM327 (USB/BT) | нативный CAN-трансивер → **SocketCAN** |
| **GPS** | USB/UART, NMEA | |
| **GPS** | USB/UART, NMEA | **внешняя/активная антенна** (LNA); 1PPS — опц. (PPS-точность времени; на USB-донглах обычно нет) |
| **Связь** | USB-модем (ModemManager) / Wi-Fi | — |
| **Аудио** | I2S codec + усилитель | — |
| **Микрофон** | USB **mic-массив** (wake-word, шумоподавление) | — |
+2 -2
View File
@@ -83,9 +83,9 @@
- **Properties:** `Online` (bool — «сервис ещё не поднят» ≠ «offline»), `Type` (wifi/modem), `SignalStrength`.
### `ru.shturman.Location` — GPS/положение (владелец — домен K)
- **Properties:** `Latitude`, `Longitude`, `Heading`, `Speed` (GPS-скорость), `FixQuality`, `ts`.
- **Properties:** `Latitude`, `Longitude`, `Heading`, `Speed`, `FixQuality` (enum `no_fix`/`fix_2d`/`fix_3d`/`augmented`/`dead_reckoning`), `HDOP`, `satellites`, `ts`; per-property quality для `Speed`/`Heading` (зануление у нуля — domain K §2).
- **Сигналы:** `LocationChanged(...)`, `FixChanged(quality)`.
- Источник — NMEA/gpsd (hardware §4); гейтится capability `location`. **GPS-скорость берётся ОТСЮДА** (не из VehicleData/E — E это CAN/OBD, появляется в v2). До домена K — мок-стаб (dev fake-GPS).
- Источник — NMEA/gpsd (hardware §4); гейтится capability `location`. **GPS-скорость ОТСЮДА** (не из VehicleData/E). До домена K — мок-стаб (dev fake-GPS).
---