5 Commits

Author SHA1 Message Date
Ian Gulliver
aebd6f5e2c Use MulticastGroup as map key and serialize under lock
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:48:55 -08:00
Ian Gulliver
a912d73169 Refactor node storage and use proper types for protocol data
- Rename TypeID to ID throughout
- Remove re-derivable data (MACTableSize, SACNInputs now derived)
- Use typed ArtNetUniverse and SACNUniverse with methods
- Store multicast groups with lastSeen tracking in structs
- Remove int indexes in Nodes, use direct node pointers
- Parse multicast groups into typed struct instead of strings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:36:44 -08:00
Ian Gulliver
fc5b36cd1c Remove separate tracking structures and store protocol data directly on nodes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:15:54 -08:00
Ian Gulliver
9aebe8b83d Add HTTP API with JSON status endpoint and typeid support 2026-01-24 11:03:34 -08:00
Ian Gulliver
894e355f56 split nodes.go into focused files and refactor Update function
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:31:57 -08:00