423bd00b4e
- 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
80 lines
1.8 KiB
Python
80 lines
1.8 KiB
Python
"""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), 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.
|
||
"""
|
||
|
||
from hms_artnet.fixtures import (
|
||
Layer64Engine,
|
||
LayerControl,
|
||
LayerEvent,
|
||
Master32Engine,
|
||
MasterControl,
|
||
MasterEvent,
|
||
SourceType,
|
||
TransportCommand,
|
||
UniverseCollisionError,
|
||
UniversePlan,
|
||
UniverseRange,
|
||
map_speed,
|
||
)
|
||
from hms_artnet.mapping import DmxLayerMapper, LayerDmxMapping, RisingEdge
|
||
from hms_artnet.packets import (
|
||
OPDMX,
|
||
OPPOLL,
|
||
OPPOLLREPLY,
|
||
UDP_PORT,
|
||
build_artpoll_reply,
|
||
build_dmx,
|
||
build_poll,
|
||
parse_dmx,
|
||
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",
|
||
"OPPOLL",
|
||
"OPPOLLREPLY",
|
||
"UDP_PORT",
|
||
"build_dmx",
|
||
"parse_dmx",
|
||
"build_poll",
|
||
"parse_poll",
|
||
"build_artpoll_reply",
|
||
"parse_poll_reply",
|
||
"ArtNetReceiver",
|
||
"DmxUpdate",
|
||
"LossBehavior",
|
||
"DmxLayerMapper",
|
||
"LayerDmxMapping",
|
||
"RisingEdge",
|
||
"Master32Engine",
|
||
"MasterControl",
|
||
"MasterEvent",
|
||
"Layer64Engine",
|
||
"LayerControl",
|
||
"LayerEvent",
|
||
"SourceType",
|
||
"TransportCommand",
|
||
"map_speed",
|
||
"UniversePlan",
|
||
"UniverseRange",
|
||
"UniverseCollisionError",
|
||
"FixturePatch",
|
||
"PatchEntry",
|
||
"PatchError",
|
||
"DmxToParameterRouter",
|
||
"RouterStats",
|
||
]
|