feat: log OBD speed before GPS fix so rolling starts aren't lost

- _log_loop: when GPS has no fix but OBD speed > 1, write speed-only rows
  (NULL coordinates) instead of dropping the motion
- insert_tracking: accept None gps_x/gps_y -> NULL GPSX/GPSY
- app_trip: keep NULL-coord rows through normalize; _segment returns 0 for
  missing coords; route_points drops them (no position to draw)
- tests: speed-only rows build a trip with max speed + zero distance
- docs: FEAT-12 + readme note; server already filters NULL-GPS safely
This commit is contained in:
Mathieu Moran
2026-08-13 02:02:45 -04:00
parent fa8ae0001a
commit 3d49764855
5 changed files with 64 additions and 6 deletions
+2 -1
View File
@@ -50,7 +50,8 @@ Dashboard — mobile (390 px) and desktop (1280 px):
(create/delete/rotate keys), and server-side device identity sync that hot-reloads on the Pi.
- **Trip history and replay** — motion-aware detection (OBD wheel speed primary, GPS displacement
fallback). Metric summaries, offline route polyline, play/pause timeline with moving marker and
live reverse-geocoded location names. Tap-to-replay on mobile.
live reverse-geocoded location names. Tap-to-replay on mobile. Captures OBD speed before the
first GPS fix so rolling starts aren't lost.
- **Status page** — Pi health (temp, RAM, disk, uptime, throttling), service states, uplink/server/
GPS/OBD diagnostics, and quick actions (test server, sync now, reconnect uplink, restart app).
- **Offline-first alerts** — notification bell on every page for check-engine, storage pressure,