ArtNet.Packet.ArtIpProgReply (ArtNet v0.1.0)

View Source

Acknowledges receipt of an ArtNet.Packet.ArtIpProg packet.

Nodes use this packet to report their programmed IP address, subnet mask, gateway, and DHCP status.

Packet layout

PartFieldDescriptionDefaultSizeFormat
Headeridfixed8 bytes"Art-Net\\0"
Headerop_code0xF9002 byteslittle-endian OpCode
Headerprot_ver142 bytesprotocol version
Payloadfiller1Reserved byte, transmitted as zero.01 byteunsigned integer (8 bits)
Payloadfiller2Reserved byte, transmitted as zero.01 byteunsigned integer (8 bits)
Payloadfiller3Reserved byte, transmitted as zero.01 byteunsigned integer (8 bits)
Payloadfiller4Reserved byte, transmitted as zero.01 byteunsigned integer (8 bits)
Payloadprogram_ipCurrent or programmed IPv4 address.required4 bytesbinary (4 bytes)
Payloadprogram_subnet_maskCurrent or programmed subnet mask.required4 bytesbinary (4 bytes)
Payloadprogram_portCurrent or programmed UDP port.required2 bytesunsigned integer (16 bits)
PayloadstatusIP programming status flags.required1 byteArtNet.Packet.BitField.IpProgStatus bit field
Payloadspare2Reserved byte, transmitted as zero.01 byteunsigned integer (8 bits)
Payloadprogram_default_gatewayCurrent or programmed default gateway.required4 bytesbinary (4 bytes)
PayloadspareReserved bytes, transmitted as zero.<<0, 0>>2 bytesbinary (2 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.ArtIpProgReply{
  filler1: :integer,
  filler2: :integer,
  filler3: :integer,
  filler4: :integer,
  program_default_gateway: :binary,
  program_ip: :binary,
  program_port: :integer,
  program_subnet_mask: :binary,
  spare: :binary,
  spare2: :integer,
  status: ArtNet.Packet.BitField.IpProgStatus.t()
}

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 0xF900.

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.