Phase 4 abgeschlossen: Patch-Verwaltung und DMX-Verkabelung (§16.2, §11)

- FixturePatch: Layer-Fixtures mit 64-Kanal-Adressen, Validierung
  (UUIDs, Universe-Grenzen, keine Überlappung), 8 Layer = 1 Universe,
  Master-Overlap-Prüfung, CSV-Export nach §16.2 (Node-ID, Short Name,
  IP, Universe, Startadresse, Layernummer, Fixture-Version)
- PatchEntry: stabile UUID-basierte Layer-/Kompositions-IDs (§10.2)
- DmxToParameterRouter: DMX → Patch → Master32/Layer64 → ParameterEngine
  - Master-Blackout mit SAFETY-Priorität (§11.2), Release beim Aufheben
  - Load/Commit-Events erzeugen pending_loads für Renderer-Preload (§16.5)
  - Signalverlust: HOLD (keine Änderung) oder FADE_TO_BLACK (SAFETY)
  - Layer-Flankenzustand je Instanz; Telemetrie (Updates, Commits, Blackouts)
- 17 Integrationstests ohne Mocks: Adressvalidierung, Überlappungen,
  8-Layer-Voll-Universe, CSV-Export-Felder, Blackout-SAFETY-Release,
  Load/Commit-Kette, Signalverlust-Policies
- Gesamtsuite 549 grün, Ruff grün
This commit is contained in:
HMS MediaEngine Agent
2026-09-11 02:18:00 +02:00
parent 4e15fe9d47
commit 423bd00b4e
4 changed files with 850 additions and 1 deletions
+13 -1
View File
@@ -1,7 +1,8 @@
"""hms_artnet Art-Net 4 Steuerung (PLAN.md §16).
ArtDMX-Empfang, ArtPoll/ArtPollReply (Discovery als Media Server, Style 0x02),
Fixture-Engine (Master32/Layer64, §16.3–§16.6), Universe-Plan (§16.2),
Fixture-Engine (Master32/Layer64, §16.3–§16.6), Patch-Verwaltung (§16.2),
DMX-zu-Parameter-Verkabelung (§11, §16), Universe-Plan (§16.2),
konfigurierbare Universen/Adressen, Sequenzprüfung, Signalverlust-Verhalten.
Layouts gegen die offizielle Art-Net-4-Spezifikation verifiziert.
"""
@@ -33,7 +34,13 @@ from hms_artnet.packets import (
parse_poll,
parse_poll_reply,
)
from hms_artnet.patch import (
FixturePatch,
PatchEntry,
PatchError,
)
from hms_artnet.receiver import ArtNetReceiver, DmxUpdate, LossBehavior
from hms_artnet.wiring import DmxToParameterRouter, RouterStats
__all__ = [
"OPDMX",
@@ -64,4 +71,9 @@ __all__ = [
"UniversePlan",
"UniverseRange",
"UniverseCollisionError",
"FixturePatch",
"PatchEntry",
"PatchError",
"DmxToParameterRouter",
"RouterStats",
]