Child of #142 (Addressable presence, E1) — Tier 2. Depends on the spike + the CC 0x60 codec.
Give the daemon a responder role (today it is purely a controller/initiator — it never answers application-CC queries). New src/endpoint/:
- Present a configurable set of endpoints on the controller's own node.
- Answer the Multi Channel (CC 0x60) discovery queries a real device issues:
MULTI_CHANNEL_END_POINT_GET → report, CAPABILITY_GET → report, END_POINT_FIND → report.
- Respond via the existing
SendData path (this is the first time the daemon replies to an inbound application query — establish the request→response plumbing cleanly).
Endpoint definitions (how many, what each represents) likely live in a small store / config; keep it minimal until a consumer (E2/E3 endpoint-keyed triggers) needs more.
DoD
Builds clean (gnu + llvm), clang-format + clang-tidy pass, ctest green; a real or simulated device can enumerate the daemon's endpoints.
Child of #142 (Addressable presence, E1) — Tier 2. Depends on the spike + the CC 0x60 codec.
Give the daemon a responder role (today it is purely a controller/initiator — it never answers application-CC queries). New
src/endpoint/:MULTI_CHANNEL_END_POINT_GET→ report,CAPABILITY_GET→ report,END_POINT_FIND→ report.SendDatapath (this is the first time the daemon replies to an inbound application query — establish the request→response plumbing cleanly).Endpoint definitions (how many, what each represents) likely live in a small store / config; keep it minimal until a consumer (E2/E3 endpoint-keyed triggers) needs more.
DoD
Builds clean (gnu + llvm), clang-format + clang-tidy pass, ctest green; a real or simulated device can enumerate the daemon's endpoints.