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
| Part | Field | Description | Default | Size | Format |
|---|---|---|---|---|---|
| Header | id | fixed | 8 bytes | "Art-Net\\0" | |
| Header | op_code | 0x2100 | 2 bytes | little-endian OpCode | |
| Payload | ip_address | IPv4 address of the responding node. | required | 4 bytes | binary (4 bytes) |
| Payload | port | Art-Net UDP port used by the node. | required | 2 bytes | little-endian unsigned integer (16 bits) |
| Payload | version_info | Firmware version information reported by the node. | required | 2 bytes | unsigned integer (16 bits) |
| Payload | net_switch | Top 7 bits of the node Net address. | required | 1 byte | unsigned integer (8 bits) |
| Payload | sub_switch | Sub-Net address reported by the node. | required | 1 byte | unsigned integer (8 bits) |
| Payload | oem | OEM code reported by the node. | required | 2 bytes | unsigned integer (16 bits) |
| Payload | ubea_version | UBEA firmware version, or 0 when not present. | required | 1 byte | unsigned integer (8 bits) |
| Payload | status1 | Primary node status flags. | required | 1 byte | ArtNet.Packet.BitField.Status1 bit field |
| Payload | est_amanu_facturer | ESTA manufacturer code reported by the node. | required | 2 bytes | binary (2 bytes) |
| Payload | short_name | Short node name. | required | 18 bytes | null-padded string (18 bytes) |
| Payload | long_name | Long node name. | required | 64 bytes | null-padded string (64 bytes) |
| Payload | node_report | Node report status text. | required | 64 bytes | binary (64 bytes) |
| Payload | num_ports | Number of input or output ports implemented. | required | 2 bytes | unsigned integer (16 bits) |
| Payload | port_types | Per-port protocol and direction flags. | required | 4 bytes (1 byte each) | list of ArtNet.Packet.BitField.PortType bit field |
| Payload | good_input | Per-input-port status flags. | required | 4 bytes (1 byte each) | list of ArtNet.Packet.BitField.GoodInput bit field |
| Payload | good_output | Per-output-port status flags. | required | 4 bytes (1 byte each) | list of ArtNet.Packet.BitField.GoodOutput bit field |
| Payload | sw_in | Input Port-Address low byte values for each port. | required | 4 bytes (1 byte each) | list of unsigned integer (8 bits) |
| Payload | sw_out | Output Port-Address low byte values for each port. | required | 4 bytes (1 byte each) | list of unsigned integer (8 bits) |
| Payload | acn_priority | sACN priority reported by the node. | required | 1 byte | unsigned integer (8 bits) |
| Payload | sw_macro | Macro switch state reported by the node. | required | 1 byte | unsigned integer (8 bits) |
| Payload | sw_remote | Remote switch state reported by the node. | required | 1 byte | unsigned integer (8 bits) |
| Payload | spare | Reserved bytes. | required | 3 bytes | binary (3 bytes) |
| Payload | style | Node style code. | required | 1 byte | unsigned integer (8 bits) |
| Payload | mac_address | Node MAC address. | required | 6 bytes | binary (6 bytes) |
| Payload | bind_ip | IPv4 address of the root device for this bind. | required | 4 bytes | binary (4 bytes) |
| Payload | bind_index | Bind index of this node. | required | 1 byte | unsigned integer (8 bits) |
| Payload | status2 | Secondary node status flags. | required | 1 byte | ArtNet.Packet.BitField.Status2 bit field |
| Payload | good_output_b | Additional 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 |
| Payload | status3 | Tertiary 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 byte | ArtNet.Packet.BitField.Status3 bit field |
| Payload | default_responder_uid | Default RDM responder UID for the node. | <<0, 0, 0, 0, 0, 0>> | 6 bytes | binary (6 bytes) |
| Payload | user | User-defined node value. | 0 | 2 bytes | unsigned integer (16 bits) |
| Payload | refresh_rate | DMX output refresh rate. | 0 | 2 bytes | unsigned integer (16 bits) |
| Payload | background_queue_policy | Background queue policy value. | 0 | 1 byte | unsigned integer (8 bits) |
| Payload | filler | Reserved bytes, transmitted as zero. | <<0, 0, 0, 0, 0, 0, 0, 0, 0, 0>> | 10 bytes | binary (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
@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
Decodes a complete Art-Net binary as this packet type.
Encodes this packet struct into a complete Art-Net binary.
@spec new(map() | Keyword.t()) :: {:ok, t()} | {:error, ArtNet.EncodeError.t()}
Builds a validated packet struct from a map or keyword list.
Builds a validated packet struct from a map or keyword list.
Raises ArtNet.EncodeError when validation fails.
@spec op_code() :: pos_integer()
Returns the Art-Net OpCode value for this packet module.
The OpCode is 0x2100.
@spec require_version_header?() :: boolean()
Returns whether this packet includes the Art-Net protocol version header.
Returns the packet payload schema in declaration order.