Skip to content

Controller Arena-ID validation policy + define Observer IDs (follow-up from #50) #55

@mbreiser

Description

@mbreiser

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions