Liking cljdoc? Tell your friends :D

clj-artnet.impl.protocol.codec.dispatch

Central opcode dispatch for Art-Net packet encoding and decoding. Routes to domain-specific handlers while maintaining the original public API contract.

Central opcode dispatch for Art-Net packet encoding and decoding.
Routes to domain-specific handlers while maintaining the original
public API contract.
raw docstring

clj-artnet.impl.protocol.codec.domain.config

Encode/decode for Config family packets: ArtInput, ArtAddress, ArtIpProg, ArtIpProgReply.

Encode/decode for Config family packets: ArtInput, ArtAddress, ArtIpProg, ArtIpProgReply.
raw docstring

clj-artnet.impl.protocol.codec.domain.data

Encode/decode for Data family packets: ArtDataRequest, ArtDataReply.

Encode/decode for Data family packets: ArtDataRequest, ArtDataReply.
raw docstring

clj-artnet.impl.protocol.codec.domain.diag

Encode/decode for Diagnostic family packets: ArtDiagData, ArtCommand, ArtTrigger, ArtTimeCode.

Encode/decode for Diagnostic family packets: ArtDiagData, ArtCommand, ArtTrigger, ArtTimeCode.
raw docstring

clj-artnet.impl.protocol.codec.domain.dmx

Encode/decode for DMX family packets: ArtDmx, ArtNzs, ArtVlc, ArtSync. These are the hot-path packets that use flyweight types for zero allocation.

Encode/decode for DMX family packets: ArtDmx, ArtNzs, ArtVlc, ArtSync.
These are the hot-path packets that use flyweight types for zero allocation.
raw docstring

clj-artnet.impl.protocol.codec.domain.firmware

Encode/decode for Firmware family packets: ArtFirmwareMaster, ArtFirmwareReply.

Encode/decode for Firmware family packets: ArtFirmwareMaster, ArtFirmwareReply.
raw docstring

clj-artnet.impl.protocol.codec.domain.poll

Encode/decode for Poll family packets: ArtPoll, ArtPollReply.

Encode/decode for Poll family packets: ArtPoll, ArtPollReply.
raw docstring

clj-artnet.impl.protocol.codec.domain.rdm

Encode/decode for RDM family packets: ArtRdm, ArtRdmSub, ArtTodRequest, ArtTodData, ArtTodControl.

Encode/decode for RDM family packets: ArtRdm, ArtRdmSub, ArtTodRequest, ArtTodData, ArtTodControl.
raw docstring

clj-artnet.impl.protocol.codec.primitives

Low-level buffer read/write primitives for Art-Net codec. All functions operate on java.nio.ByteBuffer instances.

Low-level buffer read/write primitives for Art-Net codec.
All functions operate on java.nio.ByteBuffer instances.
raw docstring

clj-artnet.impl.protocol.codec.types

Flyweight packet types for zero-allocation hot paths. ArtDmx and ArtNzs packets use these types to provide map-like access without allocating intermediate data structures.

Flyweight packet types for zero-allocation hot paths.
ArtDmx and ArtNzs packets use these types to provide map-like
access without allocating intermediate data structures.
raw docstring

clj-artnet.impl.protocol.data

Helpers for ArtDataRequest/Reply configuration.

Provides pure functions for normalizing data configuration, utilized by impl.protocol.lifecycle. Extracted to resolve dependency cycles.

Helpers for ArtDataRequest/Reply configuration.

Provides pure functions for normalizing data configuration, utilized by
`impl.protocol.lifecycle`. Extracted to resolve dependency cycles.
raw docstring

clj-artnet.impl.protocol.effects

Pure data constructors for Art-Net protocol effects.

Pure data constructors for Art-Net protocol effects.
raw docstring

clj-artnet.impl.protocol.poll

Helpers for ArtPoll discovery configuration and reply-on-change logic.

Provides pure functions for normalizing discovery settings and managing purely functional reply-on-change subscriber state.

Helpers for ArtPoll discovery configuration and reply-on-change logic.

Provides pure functions for normalizing discovery settings and managing purely functional
reply-on-change subscriber state.
raw docstring

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.

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.
raw docstring

clj-artnet.impl.protocol.rdm.discovery

Art-Net RDM/TOD helpers for the impl architecture. Maintains a lightweight Table-of-Devices snapshot and subscriber registry so the logic coordinator can focus on orchestration.

Art-Net RDM/TOD helpers for the impl architecture. Maintains a
lightweight Table-of-Devices snapshot and subscriber registry so the logic
coordinator can focus on orchestration.
raw docstring

clj-artnet.impl.protocol.rdm.transport

ArtRdm and ArtRdmSub transport validation and helpers per Art-Net 4 spec.

Art-Net 4 §ArtRdm:

  • Transport all non-discovery RDM messages
  • Unicast only (broadcast no longer allowed in Art-Net 4)
  • Command field 0x00 = ArProcess (process RDM packet)
  • Validate command class in RDM payload (byte 20)

Art-Net 4 §ArtRdmSub:

  • Compressed sub-device data transfer
  • Get (0x20): 0 data bytes
  • Set (0x30): SubCount * 2 data bytes
  • GetResponse (0x21): SubCount * 2 data bytes
  • SetResponse (0x31): 0 data bytes

This module provides pure functions for:

  • RDM command class validation
  • ArtRdmSub packet validation
  • Sub-device range and entry helpers
  • Payload normalization for outbound commands
ArtRdm and ArtRdmSub transport validation and helpers per Art-Net 4 spec.

Art-Net 4 §ArtRdm:
- Transport all non-discovery RDM messages
- Unicast only (broadcast no longer allowed in Art-Net 4)
- Command field 0x00 = ArProcess (process RDM packet)
- Validate command class in RDM payload (byte 20)

Art-Net 4 §ArtRdmSub:
- Compressed sub-device data transfer
- Get (0x20): 0 data bytes
- Set (0x30): SubCount * 2 data bytes
- GetResponse (0x21): SubCount * 2 data bytes
- SetResponse (0x31): 0 data bytes

This module provides pure functions for:
- RDM command class validation
- ArtRdmSub packet validation
- Sub-device range and entry helpers
- Payload normalization for outbound commands
raw docstring

clj-artnet.impl.protocol.sync

ArtSync handling for Art-Net 4 protocol.

Per Art-Net 4 spec:

  • ArtSync is used to synchronize DMX output across multiple universes
  • ArtSync timeout is 4 seconds (nodes revert to immediate mode)
  • ArtSync shall be ignored when merging multiple streams
  • ArtSync shall be ignored if the sender doesn't match the most recent ArtDmx sender

Modes:

  • :immediate - Output DMX frames as they arrive (default)
  • :art-sync - Buffer DMX frames until ArtSync is received
ArtSync handling for Art-Net 4 protocol.

Per Art-Net 4 spec:
- ArtSync is used to synchronize DMX output across multiple universes
- ArtSync timeout is 4 seconds (nodes revert to immediate mode)
- ArtSync shall be ignored when merging multiple streams
- ArtSync shall be ignored if the sender doesn't match the most recent ArtDmx sender

Modes:
- :immediate - Output DMX frames as they arrive (default)
- :art-sync  - Buffer DMX frames until ArtSync is received
raw docstring

clj-artnet.impl.protocol.timing

Timing utilities for deterministic testing.

Timing utilities for deterministic testing.
raw docstring

clj-artnet.impl.protocol.triggers

ArtTrigger and ArtCommand processing per Art-Net 4 specification.

Art-Net 4 §ArtTrigger mandates:

  • OEM filtering: Accept trigger if OEM = 0xFFFF or matches node's OEM
  • Key types 0-3: KeyAscii, KeyMacro, KeySoft, KeyShow
  • Key types 4-255: Undefined (pass to vendor callback if OEM != 0xFFFF)
  • Payload (512 bytes): Interpretation depends on OEM/Key

This module provides pure functions for:

  • Trigger debouncing with configurable rate limiting
  • OEM-based target filtering
  • Key/SubKey interpretation and acknowledgement generation
  • Helper dispatch for registered trigger handlers
ArtTrigger and ArtCommand processing per Art-Net 4 specification.

Art-Net 4 §ArtTrigger mandates:
- OEM filtering: Accept trigger if OEM = 0xFFFF or matches node's OEM
- Key types 0-3: KeyAscii, KeyMacro, KeySoft, KeyShow
- Key types 4-255: Undefined (pass to vendor callback if OEM != 0xFFFF)
- Payload (512 bytes): Interpretation depends on OEM/Key

This module provides pure functions for:
- Trigger debouncing with configurable rate limiting
- OEM-based target filtering
- Key/SubKey interpretation and acknowledgement generation
- Helper dispatch for registered trigger handlers
raw docstring

clj-artnet.impl.shell.buffers

Pools direct ByteBuffers for zero-allocation UDP I/O.

Provides a thread-safe, hot-path optimized regular buffer pool to minimize garbage collection pressure during high-throughput packet processing.

Pools direct ByteBuffers for zero-allocation UDP I/O.

Provides a thread-safe, hot-path optimized regular buffer pool to minimize
garbage collection pressure during high-throughput packet processing.
raw docstring

clj-artnet.impl.shell.commands

Constructs and injects commands (DMX, RDM, State) into the node's flow loop.

Provides a functional API for queuing side effects and protocol actions to be processed by the shell/logic graph.

Constructs and injects commands (DMX, RDM, State) into the node's flow loop.

Provides a functional API for queuing side effects and protocol actions
to be processed by the shell/logic graph.
raw docstring

clj-artnet.impl.shell.effects

Translates pure Art-Net protocol effects into actionable IO descriptors.

Decouples the logic-layer protocol machine from the shell-layer IO system via open multimethod dispatch.

Translates pure Art-Net protocol effects into actionable IO descriptors.

Decouples the logic-layer protocol machine from the shell-layer IO system
via open multimethod dispatch.
raw docstring

clj-artnet.impl.shell.graph

Flow graph construction for the Art-Net node runtime.

Assembles the core.async.flow graph connecting:

  • udp-recv: Receives UDP packets
  • failsafe: Timer ticks for failsafe DMX output
  • logic: Pure protocol state machine
  • udp-send: Sends UDP packets

Part of the Imperative Shell: Orchestrates the reactive pipeline.

Flow graph construction for the Art-Net node runtime.

Assembles the core.async.flow graph connecting:
- udp-recv: Receives UDP packets
- failsafe: Timer ticks for failsafe DMX output
- logic:    Pure protocol state machine
- udp-send: Sends UDP packets

Part of the Imperative Shell: Orchestrates the reactive pipeline.
raw docstring

clj-artnet.impl.shell.lifecycle

Node lifecycle management (Shell Layer).

Manages initialization, resource acquisition (channels, buffers), and clean shutdown of the imperative shell components. Delegates core domain logic to pure functions in the protocol layer.

Node lifecycle management (Shell Layer).

Manages initialization, resource acquisition (channels, buffers),
and clean shutdown of the imperative shell components.
Delegates core domain logic to pure functions in the protocol layer.
raw docstring

clj-artnet.impl.shell.net

Utilities for Art-Net network I/O, including address coercion and channel configuration.

Provides helpers for java.net.InetAddress and java.nio.channels.DatagramChannel setup, isolated from protocol logic.

Utilities for Art-Net network I/O, including address coercion and channel configuration.

Provides helpers for java.net.InetAddress and java.nio.channels.DatagramChannel
setup, isolated from protocol logic.
raw docstring

clj-artnet.impl.shell.policy

Art-Net 4 protocol policy enforcement.

Provides pure functions to validate compliance, specifically regarding broadcast restrictions for certain opcodes.

Art-Net 4 protocol policy enforcement.

Provides pure functions to validate compliance, specifically regarding
broadcast restrictions for certain opcodes.
raw docstring

clj-artnet.impl.shell.receiver

Process handling UDP reception and packet decoding.

Implements a core.async flow loop that:

  • Reads datagrams from the channel into pooled buffers
  • Decodes Art-Net packets (discarding malformed ones)
  • Emits valid packets to the flow graph
Process handling UDP reception and packet decoding.

Implements a core.async flow loop that:
- Reads datagrams from the channel into pooled buffers
- Decodes Art-Net packets (discarding malformed ones)
- Emits valid packets to the flow graph
raw docstring

clj-artnet.impl.shell.sender

Process handling UDP transmission and action dispatch.

Implements a core.async flow loop that:

  • Encodes and sends Art-Net packets (enforcing broadcast policy)
  • Executes callback actions on virtual threads
  • Manages delayed actions (e.g. reply dispatch)
Process handling UDP transmission and action dispatch.

Implements a core.async flow loop that:
- Encodes and sends Art-Net packets (enforcing broadcast policy)
- Executes callback actions on virtual threads
- Manages delayed actions (e.g. reply dispatch)
raw docstring

clj-artnet.impl.shell.state

State snapshot/application utilities for running Art-Net nodes.

Provides blocking access to remote node state via flow injection and promise synchronization, and non-blocking state updates.

State snapshot/application utilities for running Art-Net nodes.

Provides blocking access to remote node state via flow injection and
promise synchronization, and non-blocking state updates.
raw docstring

clj-artnet.impl.shell.system

System lifecycle and runtime management/integration.

Integrates shell components and provides higher-level system operations (lifecycle, effect execution). Delegates core I/O to shell modules.

System lifecycle and runtime management/integration.

Integrates shell components and provides higher-level system operations
(lifecycle, effect execution). Delegates core I/O to shell modules.
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close