MAP_POLYLINE chunked transport with backpressure handling #41

Open
opened 2026-08-31 17:14:51 +02:00 by robert · 0 comments
robert commented 2026-08-31 17:14:51 +02:00 (Migrated from git.butzei.de)

Goal

Move map frames without ever starving navigation.

Acceptance criteria

  • Frames exceeding app_message_outbox_size_maximum() split with a sequence header
  • Watch reassembles and discards incomplete frames rather than drawing garbage
  • Map frames dropped under backpressure; navigation messages never are
  • Frame rate adapts to the observed link throughput
  • In-flight frame superseded when a newer one is ready
  • Verified with the Bluetooth link deliberately degraded

Files

  • companion/.../map/MapTransport.kt
  • watchapp/src/c/view_map.c

Update — 2026-09-02: much easier at ≤ 0.2 Hz

Chunking and reassembly are unchanged. The backpressure story is far simpler now that slices arrive on
exhaustion rather than every second (D39).

  • Rates and heartbeat follow PROTOCOL §4: map ≤ 0.2 Hz, heartbeat 30 s
  • "Supersede the in-flight frame when a newer one is ready" is now rare rather than routine —
    keep it, but it is no longer the hot path
  • Map slices still dropped first under backpressure; navigation messages still never
## Goal Move map frames without ever starving navigation. ## Acceptance criteria - [ ] Frames exceeding `app_message_outbox_size_maximum()` split with a sequence header - [ ] Watch reassembles and discards incomplete frames rather than drawing garbage - [ ] **Map frames dropped under backpressure; navigation messages never are** - [ ] Frame rate adapts to the observed link throughput - [ ] In-flight frame superseded when a newer one is ready - [ ] Verified with the Bluetooth link deliberately degraded ## Files - `companion/.../map/MapTransport.kt` - `watchapp/src/c/view_map.c` ## Update — 2026-09-02: much easier at ≤ 0.2 Hz Chunking and reassembly are unchanged. The backpressure story is far simpler now that slices arrive on exhaustion rather than every second (D39). - [ ] Rates and heartbeat follow PROTOCOL §4: map ≤ 0.2 Hz, heartbeat 30 s - [ ] "Supersede the in-flight frame when a newer one is ready" is now rare rather than routine — keep it, but it is no longer the hot path - [ ] Map slices still dropped first under backpressure; navigation messages still never
Sign in to join this conversation.
No description provided.