MatterEx.Protocol.MessageCodec.ProtoHeader (matter_ex v0.3.0)

Copy Markdown View Source

Matter protocol header (part of encrypted payload).

Wire format (Matter spec section 4.4.2):

[exch_flags:8] [opcode:8] [exchange_id:16LE]
[vendor_id:16LE if V] [protocol_id:16LE]
[ack_counter:32LE if A] [payload]

Summary

Types

t()

@type t() :: %MatterEx.Protocol.MessageCodec.ProtoHeader{
  ack_counter: non_neg_integer() | nil,
  exchange_id: non_neg_integer(),
  initiator: boolean(),
  needs_ack: boolean(),
  opcode: byte(),
  payload: binary(),
  protocol_id: non_neg_integer(),
  vendor_id: non_neg_integer() | nil
}

Functions

decode(arg1)

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

encode(ph)

@spec encode(t()) :: iodata()