Two follow-ups carried over from the resolution of #50.
1. Controller-side rejection policy when pattern Arena ID doesn't match arena config
Where it sits today. The controller knows its arena via the compiled-in g6_arena_configs.h (selected by Arena ID at build time). Pattern files carry an Arena ID in header bytes 4–5. There's currently no spec text in g6_03-controller.md describing what the controller should do if those disagree.
Proposed direction (for discussion):
- On pattern load, controller compares pattern-header Arena ID against its own compiled-in arena config Arena ID.
- On mismatch: reject the pattern, log to host serial, return an error code via the host command channel.
- On match: proceed normally.
Open sub-questions:
- Hard reject (refuse to display anything) or soft warn (display anyway, log warning)?
- Granularity: just Arena ID, or also
row_count / col_count / panel-mask sanity against the config?
- Error reporting: what's the host-facing error format?
get-controller-info (opcode 0x67) is one channel, but a transient-error response shape may want a different surface.
Best resolved during G6 controller bring-up by @floesche.
2. Observer IDs — deferred, host-side metadata only
Observer IDs will follow the same host-canonical registry pattern as Arena IDs (under maDisplayTools/configs/). They're pure pattern-creation-time metadata for provenance/logging and do not reach the controller, do not appear in the pattern header on the wire, and do not dispatch any runtime behavior on host, controller, or panel.
Captured in g6_06-host-software.md § Observer IDs (deferred) via #56. Implementation deferred; no spec, firmware, or host-runtime blocker.
Carried from #50 close-out per @mbreiser. Cosmetic doc cleanups from that thread landed in #54.
Two follow-ups carried over from the resolution of #50.
1. Controller-side rejection policy when pattern Arena ID doesn't match arena config
Where it sits today. The controller knows its arena via the compiled-in
g6_arena_configs.h(selected by Arena ID at build time). Pattern files carry an Arena ID in header bytes 4–5. There's currently no spec text ing6_03-controller.mddescribing what the controller should do if those disagree.Proposed direction (for discussion):
Open sub-questions:
row_count/col_count/ panel-mask sanity against the config?get-controller-info(opcode0x67) is one channel, but a transient-error response shape may want a different surface.Best resolved during G6 controller bring-up by @floesche.
2. Observer IDs — deferred, host-side metadata only
Observer IDs will follow the same host-canonical registry pattern as Arena IDs (under
maDisplayTools/configs/). They're pure pattern-creation-time metadata for provenance/logging and do not reach the controller, do not appear in the pattern header on the wire, and do not dispatch any runtime behavior on host, controller, or panel.Captured in
g6_06-host-software.md§ Observer IDs (deferred) via #56. Implementation deferred; no spec, firmware, or host-runtime blocker.Carried from #50 close-out per @mbreiser. Cosmetic doc cleanups from that thread landed in #54.