c1ffba08fb
Tested against the car Orin: the tablet is USB host to the Orin's NCM gadget (192.168.55.1). Android routes app traffic over it only when it is the default network, so the app must bind to TRANSPORT_ETHERNET. PD changes cost ~3 s, and an idle tablet off charger sleeps and goes silent, so the app keeps the device awake. Two guidelines follow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
29 lines
1.1 KiB
Markdown
29 lines
1.1 KiB
Markdown
---
|
|
type: guidelines
|
|
---
|
|
# Display client guidelines
|
|
|
|
## 1. The client knows the contract, not the car
|
|
- No CAN frame IDs, no DBC knowledge, no device paths. Topic names and payload
|
|
schemas only.
|
|
- If rendering something requires new knowledge of the vehicle, that knowledge
|
|
belongs upstream in the decoder, not here.
|
|
|
|
## 2. Render whatever state exists, immediately
|
|
- Retained topics mean a client connecting mid-drive has state at once. Never
|
|
block the first paint on a full set of signals.
|
|
- Missing is a normal state and must have a visual form. It is not an error.
|
|
|
|
## 3. Design for a split screen
|
|
- The screen may be shared with another app. Do not assume full width.
|
|
|
|
## 4. Bind to the Orin's network explicitly
|
|
- Android's default network is never the Orin link (it has no internet). Request
|
|
`TRANSPORT_ETHERNET` and bind to it; never rely on the default route.
|
|
|
|
## 5. Keep the device awake while displaying
|
|
- A sleeping tablet is indistinguishable from a dead link. Hold the screen on
|
|
while the app is the display, and treat every reconnect as routine, not an error.
|
|
|
|
## 6. To be added
|