ArtNet.Packet.ArtDmx (ArtNet v0.1.0)

View Source

Transmits zero-start-code DMX512 data for a single universe.

This packet is also known as ArtOutput. The length field must match the number of DMX slots carried in data.

Packet layout

PartFieldDescriptionDefaultSizeFormat
Headeridfixed8 bytes"Art-Net\\0"
Headerop_code0x50002 byteslittle-endian OpCode
Headerprot_ver142 bytesprotocol version
PayloadsequencePacket sequence number, or 0 to disable sequence checking.01 byteunsigned integer (8 bits)
PayloadphysicalPhysical input port that generated the DMX data.01 byteunsigned integer (8 bits)
Payloadsub_universeLow byte of the 15-bit Port-Address.01 byteunsigned integer (8 bits)
PayloadnetBits 8-14 of the 15-bit Port-Address.01 byteunsigned integer (8 bits)
PayloadlengthNumber of DMX512 slots included in the data field.required2 bytesunsigned integer (16 bits)
PayloaddataDMX512 level data, one byte per slot.requiredvariable (1 byte each)list of unsigned integer (8 bits)

Summary

Functions

Decodes a complete Art-Net binary as this packet type.

Encodes this packet struct into a complete Art-Net binary.

Builds a validated packet struct from a map or keyword list.

Builds a validated packet struct from a map or keyword list.

Returns the Art-Net OpCode value for this packet module.

Returns whether this packet includes the Art-Net protocol version header.

Returns the packet payload schema in declaration order.

Types

t()

@type t() :: %ArtNet.Packet.ArtDmx{
  data: [:integer],
  length: :integer,
  net: :integer,
  physical: :integer,
  sequence: :integer,
  sub_universe: :integer
}

Functions

decode(data)

@spec decode(binary()) :: {:ok, t()} | :error

Decodes a complete Art-Net binary as this packet type.

encode(packet)

@spec encode(t()) :: {:ok, binary()} | :error

Encodes this packet struct into a complete Art-Net binary.

new(attrs)

@spec new(map() | Keyword.t()) :: {:ok, t()} | {:error, ArtNet.EncodeError.t()}

Builds a validated packet struct from a map or keyword list.

new!(attrs)

@spec new!(map() | Keyword.t()) :: t()

Builds a validated packet struct from a map or keyword list.

Raises ArtNet.EncodeError when validation fails.

op_code()

@spec op_code() :: pos_integer()

Returns the Art-Net OpCode value for this packet module.

The OpCode is 0x5000.

require_version_header?()

@spec require_version_header?() :: boolean()

Returns whether this packet includes the Art-Net protocol version header.

schema()

Returns the packet payload schema in declaration order.