Grizzly.ZWave.Command behaviour (grizzly v0.22.2) View Source

Data struct and behaviour for working with Z-Wave commands

Link to this section Summary

Callbacks

Decode the binary string of command params

Encode the command parameters

Encode the command parameters with encoding options

Make a new Command.t() from the params provided

Functions

Get the command param value out the params list

Just like param/3 but will raise if the the param is not in the param list

Put the param value into the params list, updating pervious value if there is one

Encode the Command.t() into it's binary representation

Link to this section Types

Specs

delay_seconds() :: non_neg_integer()

Specs

params() :: Keyword.t()

Specs

t() :: %Grizzly.ZWave.Command{
  command_byte: byte() | nil,
  command_class: Grizzly.ZWave.CommandClass.t(),
  impl: module(),
  name: atom(),
  params: params()
}

Command struct

  • :name - the name of the command
  • :command_class - the command class module for the command
  • :command_byte - the byte representation of the command
  • :params - the parameters for the command as outlined by the Z-Wave specification
  • :impl - the module that implements the Command behaviour

Link to this section Callbacks

Specs

decode_params(binary()) ::
  {:ok, keyword()} | {:error, Grizzly.ZWave.DecodeError.t()}

Decode the binary string of command params

Specs

encode_params(t()) :: binary()

Encode the command parameters

Link to this callback

encode_params(t, opts)

View Source (optional)

Specs

encode_params(t(), opts :: keyword()) :: binary()

Encode the command parameters with encoding options

The encoding options help pass extra context to how the parameters for the command should be encoded.

This is an optional callback.

Specs

new(params :: keyword()) :: {:ok, t()} | {:error, reason :: any()}

Make a new Command.t() from the params provided

Param validation should take place here.

Link to this section Functions

Specs

encode_params(t()) :: binary()
Link to this function

param(command, param, default \\ nil)

View Source

Specs

param(t(), atom(), term()) :: term() | nil

Get the command param value out the params list

Specs

param!(t(), atom()) :: term() | no_return()

Just like param/3 but will raise if the the param is not in the param list

Link to this function

put_param(command, param, new_value)

View Source

Specs

put_param(t(), atom(), any()) :: t()

Put the param value into the params list, updating pervious value if there is one

Specs

to_binary(t()) :: binary()

Encode the Command.t() into it's binary representation