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

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