clj-artnet.impl.protocol.programming
Implements Art-Net remote programming semantics for ArtAddress, ArtInput, and ArtIpProg.
Provides pure functions to transform node state based on remote programming commands, including diagnostic acknowledgement generation.
apply-artaddress
(apply-artaddress node defaults packet)Applies ArtAddress packet fields to the node state.
Returns {:node node’ :changes {…} :command-info {…}}.
apply-artinput
(apply-artinput {:keys [node packet target-bind-index]})Applies ArtInput disable directives to the node’s GoodInput field.
Returns {:node node’ :disabled … :changes {…} :applied-bind-index n :applied-to-base? boolean}.
apply-artipprog
(apply-artipprog {:keys [node network network-defaults packet]})Applies ArtIpProg semantics, producing state changes and reply map.
artaddress-acknowledgements
(artaddress-acknowledgements info packet)Generates diagnostic acknowledgement entries for ArtAddress command-info.
Returns a vector of {:text … :priority …} maps.
describe-artaddress-command
(describe-artaddress-command info packet)Converts ArtAddress command-info to a human-readable diagnostic string.
Returns nil if no description is applicable.