clj-artnet.impl.protocol.dmx-helpers

DMX logic helpers: sync, failsafe, merge (Art-Net 4).

apply-node-merge-modes

(apply-node-merge-modes state)

Syncs merge modes from node config.

apply-runtime-config

(apply-runtime-config state updates)

Applies :sync and :failsafe updates.

artsync-timeout-ns

build-failsafe-data

(build-failsafe-data mode last-output scene-entry)

Builds failsafe data. Returns {:data :length} or nil.

check-port-failsafe

(check-port-failsafe state timestamp port-address port-entry)

Checks port failsafe condition. Returns failsafe info or nil.

clear-failsafe-port

(clear-failsafe-port state port-address)

Clears failsafe state for port.

clear-sync-buffer

(clear-sync-buffer state)

Clears sync buffer and waiting state.

default-failsafe-config

default-refresh-rate-hz

ensure-merge-state

(ensure-merge-state merge)

Ensures merge state structure.

failsafe-globally-enabled?

(failsafe-globally-enabled? state)

Returns true if failsafe is enabled and supported.

failsafe-min-tick-interval-ns

failsafe-mode

(failsafe-mode state)

Returns failsafe mode: :hold, :zero, :full, or :scene.

failsafe-supported?

(failsafe-supported? state)

Returns true if node supports failsafe.

get-failsafe-config

(get-failsafe-config state)

Returns failsafe config from state.

good-output-ltp-bit

good-output-merge-bit

good-output-sacn-bit

initial-state

(initial-state {:keys [sync-config failsafe-config], :or {sync-config (normalize-sync-config nil), failsafe-config (normalize-failsafe-config nil)}})

Returns default DMX state shard.

keepalive-default-interval-ns

keepalive-max-interval-ns

keepalive-min-interval-ns

keepalive-packets

(keepalive-packets stale-ports)

Builds ArtDmx packets for stale ports.

merge-source-timeout-ns

nanos-per-second

node-merge-modes

(node-merge-modes node)

Extracts merge modes from node’s good-output-a. Returns sequence of port-index mode.

normalize-failsafe-config

(normalize-failsafe-config failsafe)

Normalizes failsafe config.

normalize-sync-config

(normalize-sync-config sync)

Normalizes sync config.

ports-needing-keepalive

(ports-needing-keepalive state now interval-ns)

Returns list of ports idle longer than interval-ns.

record-failsafe-scene

(record-failsafe-scene state timestamp)

Records current output as failsafe scene.

run-failsafe

(run-failsafe state timestamp)

Checks all ports for failsafe. Returns {:state :effects}.

snapshot

(snapshot state)

Returns DMX telemetry snapshot.

update-failsafe-config

(update-failsafe-config state config)

Updates failsafe config.

update-sync-config

(update-sync-config state config)

Updates sync config and clears buffer if ArtSync disabled.