ArtNet.Packet.ArtAddress (ArtNet v0.1.0)

View Source

Sends remote programming information to a node.

This packet can change node addressing, short/long names, merge behavior, port direction, indicator state, and related node configuration.

Packet layout

PartFieldDescriptionDefaultSizeFormat
Headeridfixed8 bytes"Art-Net\\0"
Headerop_code0x60002 byteslittle-endian OpCode
Headerprot_ver142 bytesprotocol version
Payloadnet_switchTop 7 bits of the node Net address.01 byteunsigned integer (8 bits)
Payloadbind_indexBind index of the node being configured.11 byteunsigned integer (8 bits)
Payloadport_nameShort name to assign to the node.required18 bytesnull-padded string (18 bytes)
Payloadlong_nameLong name to assign to the node.required64 bytesnull-padded string (64 bytes)
Payloadsw_inInput Port-Address low byte values for each port.required4 bytes (1 byte each)list of unsigned integer (8 bits)
Payloadsw_outOutput Port-Address low byte values for each port.required4 bytes (1 byte each)list of unsigned integer (8 bits)
Payloadsub_switchSub-Net address shared by the node ports.01 byteunsigned integer (8 bits)
Payloadacn_prioritysACN priority value to assign to the node.01 byteunsigned integer (8 bits)
PayloadcommandAddress programming command to execute.:ac_none1 byteArtNet.Packet.EnumTable.AddressCommand enum

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.ArtAddress{
  acn_priority: :integer,
  bind_index: :integer,
  command: ArtNet.Packet.EnumTable.AddressCommand.type(),
  long_name: String.t(),
  net_switch: :integer,
  port_name: String.t(),
  sub_switch: :integer,
  sw_in: [:integer],
  sw_out: [: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 0x6000.

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.