ArtNet.Packet.ArtPollReply (ArtNet v0.1.0)

View Source

Reports node identity, addressing, port status, and capability information.

Nodes send this packet in response to ArtNet.Packet.ArtPoll and when their advertised state changes.

Packet layout

PartFieldDescriptionDefaultSizeFormat
Headeridfixed8 bytes"Art-Net\\0"
Headerop_code0x21002 byteslittle-endian OpCode
Payloadip_addressIPv4 address of the responding node.required4 bytesbinary (4 bytes)
PayloadportArt-Net UDP port used by the node.required2 byteslittle-endian unsigned integer (16 bits)
Payloadversion_infoFirmware version information reported by the node.required2 bytesunsigned integer (16 bits)
Payloadnet_switchTop 7 bits of the node Net address.required1 byteunsigned integer (8 bits)
Payloadsub_switchSub-Net address reported by the node.required1 byteunsigned integer (8 bits)
PayloadoemOEM code reported by the node.required2 bytesunsigned integer (16 bits)
Payloadubea_versionUBEA firmware version, or 0 when not present.required1 byteunsigned integer (8 bits)
Payloadstatus1Primary node status flags.required1 byteArtNet.Packet.BitField.Status1 bit field
Payloadest_amanu_facturerESTA manufacturer code reported by the node.required2 bytesbinary (2 bytes)
Payloadshort_nameShort node name.required18 bytesnull-padded string (18 bytes)
Payloadlong_nameLong node name.required64 bytesnull-padded string (64 bytes)
Payloadnode_reportNode report status text.required64 bytesbinary (64 bytes)
Payloadnum_portsNumber of input or output ports implemented.required2 bytesunsigned integer (16 bits)
Payloadport_typesPer-port protocol and direction flags.required4 bytes (1 byte each)list of ArtNet.Packet.BitField.PortType bit field
Payloadgood_inputPer-input-port status flags.required4 bytes (1 byte each)list of ArtNet.Packet.BitField.GoodInput bit field
Payloadgood_outputPer-output-port status flags.required4 bytes (1 byte each)list of ArtNet.Packet.BitField.GoodOutput bit field
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)
Payloadacn_prioritysACN priority reported by the node.required1 byteunsigned integer (8 bits)
Payloadsw_macroMacro switch state reported by the node.required1 byteunsigned integer (8 bits)
Payloadsw_remoteRemote switch state reported by the node.required1 byteunsigned integer (8 bits)
PayloadspareReserved bytes.required3 bytesbinary (3 bytes)
PayloadstyleNode style code.required1 byteunsigned integer (8 bits)
Payloadmac_addressNode MAC address.required6 bytesbinary (6 bytes)
Payloadbind_ipIPv4 address of the root device for this bind.required4 bytesbinary (4 bytes)
Payloadbind_indexBind index of this node.required1 byteunsigned integer (8 bits)
Payloadstatus2Secondary node status flags.required1 byteArtNet.Packet.BitField.Status2 bit field
Payloadgood_output_bAdditional per-output-port status flags.[%ArtNet.Packet.BitField.GoodOutputB{background_discovery_disabled: false, discovery_not_running: false, continuous_output_style: false, rdm_disabled: false}, %ArtNet.Packet.BitField.GoodOutputB{background_discovery_disabled: false, discovery_not_running: false, continuous_output_style: false, rdm_disabled: false}, %ArtNet.Packet.BitField.GoodOutputB{background_discovery_disabled: false, discovery_not_running: false, continuous_output_style: false, rdm_disabled: false}, %ArtNet.Packet.BitField.GoodOutputB{background_discovery_disabled: false, discovery_not_running: false, continuous_output_style: false, rdm_disabled: false}]4 bytes (1 byte each)list of ArtNet.Packet.BitField.GoodOutputB bit field
Payloadstatus3Tertiary node status flags.%ArtNet.Packet.BitField.Status3{background_discovery_control: false, background_queue: false, rdmnet: false, port_direction_switch: false, llrp: false, programmable_failsafe: false, failsafe_state: :hold_last}1 byteArtNet.Packet.BitField.Status3 bit field
Payloaddefault_responder_uidDefault RDM responder UID for the node.<<0, 0, 0, 0, 0, 0>>6 bytesbinary (6 bytes)
PayloaduserUser-defined node value.02 bytesunsigned integer (16 bits)
Payloadrefresh_rateDMX output refresh rate.02 bytesunsigned integer (16 bits)
Payloadbackground_queue_policyBackground queue policy value.01 byteunsigned integer (8 bits)
PayloadfillerReserved bytes, transmitted as zero.<<0, 0, 0, 0, 0, 0, 0, 0, 0, 0>>10 bytesbinary (10 bytes)

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.ArtPollReply{
  acn_priority: :integer,
  background_queue_policy: :integer,
  bind_index: :integer,
  bind_ip: :binary,
  default_responder_uid: :binary,
  est_amanu_facturer: :binary,
  filler: :binary,
  good_input: [ArtNet.Packet.BitField.GoodInput.t()],
  good_output: [ArtNet.Packet.BitField.GoodOutput.t()],
  good_output_b: [ArtNet.Packet.BitField.GoodOutputB.t()],
  ip_address: :binary,
  long_name: String.t(),
  mac_address: :binary,
  net_switch: :integer,
  node_report: :binary,
  num_ports: :integer,
  oem: :integer,
  port: :integer,
  port_types: [ArtNet.Packet.BitField.PortType.t()],
  refresh_rate: :integer,
  short_name: String.t(),
  spare: :binary,
  status1: ArtNet.Packet.BitField.Status1.t(),
  status2: ArtNet.Packet.BitField.Status2.t(),
  status3: ArtNet.Packet.BitField.Status3.t(),
  style: :integer,
  sub_switch: :integer,
  sw_in: [:integer],
  sw_macro: :integer,
  sw_out: [:integer],
  sw_remote: :integer,
  ubea_version: :integer,
  user: :integer,
  version_info: :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 0x2100.

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.