Packages
grizzly
0.6.2
9.1.4
9.1.2
9.1.1
9.1.0
9.0.0
8.15.3
8.15.2
8.15.1
8.15.0
8.14.0
8.13.0
8.12.0
8.11.3
8.11.2
8.11.1
8.11.0
8.10.0
8.9.0
8.8.1
8.8.0
8.7.1
8.7.0
8.6.12
8.6.11
8.6.10
8.6.9
8.6.8
8.6.7
retired
8.6.6
8.6.5
8.6.4
8.6.3
8.6.2
8.6.1
8.6.0
8.5.3
8.5.2
8.5.1
8.5.0
8.4.0
8.3.0
8.2.3
8.2.2
8.2.1
8.2.0
8.1.0
8.0.1
8.0.0
7.4.3
7.4.2
7.4.1
7.4.0
7.3.0
7.2.0
7.1.4
7.1.3
7.1.2
7.1.1
7.1.0
7.0.4
7.0.3
7.0.2
7.0.1
7.0.0
6.8.8
6.8.7
6.8.6
6.8.5
6.8.4
6.8.3
6.8.2
6.8.1
6.8.0
6.7.1
6.7.0
6.6.1
6.6.0
6.5.1
6.5.0
6.4.0
6.3.0
6.2.0
6.1.1
6.1.0
6.0.1
6.0.0
5.4.1
5.4.0
5.3.0
5.2.8
5.2.7
5.2.6
5.2.5
5.2.4
5.2.3
5.2.2
5.2.1
5.2.0
5.1.2
5.1.1
5.1.0
5.0.2
5.0.1
5.0.0
4.0.1
4.0.0
3.0.0
2.1.0
2.0.0
1.0.1
1.0.0
0.22.7
0.22.6
0.22.5
0.22.4
0.22.3
0.22.2
0.22.1
0.22.0
0.21.1
0.21.0
0.20.2
0.20.1
0.20.0
0.19.1
0.19.0
0.18.3
0.18.2
0.18.1
0.18.0
0.17.7
0.17.6
0.17.5
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.2
0.16.1
0.16.0
0.15.11
0.15.10
0.15.9
0.15.8
0.15.7
0.15.6
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.0
0.12.3
0.12.2
0.12.1
0.12.0
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.0
0.9.0-rc.4
0.9.0-rc.3
0.9.0-rc.2
0.9.0-rc.1
0.9.0-rc.0
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.3
0.4.2
Elixir Z-Wave library
Current section
Files
Jump to
Current section
Files
lib/grizzly/command_class/powerlevel.ex
defmodule Grizzly.CommandClass.Powerlevel do
@type power_level_report :: %{power_level: power_level_description, timeout: non_neg_integer}
@type test_node_report :: %{
test_node_id: non_neg_integer,
status_of_operation: status_of_operation_description,
test_frame_acknowledged_count: non_neg_integer
}
@type power_level_value :: 0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 | 0x08 | 0x09
@type power_level_description ::
:normal_power
| :minus1dBm
| :minus2dBm
| :minus3dBm
| :minus4dBm
| :minus5dBm
| :minus6dBm
| :minus7dBm
| :minus8dBm
| :minus9dBm
@type status_of_operation_description :: :test_failed | :test_success | :test_in_progress
@type status_of_operation_value :: 0x00 | 0x01 | 0x02
require Logger
@spec decode_power_level(power_level_value) :: power_level_description
def decode_power_level(0x00), do: :normal_power
def decode_power_level(0x01), do: :minus1dBm
def decode_power_level(0x02), do: :minus2dBm
def decode_power_level(0x03), do: :minus3dBm
def decode_power_level(0x04), do: :minus4dBm
def decode_power_level(0x05), do: :minus5dBm
def decode_power_level(0x06), do: :minus6dBm
def decode_power_level(0x07), do: :minus7dBm
def decode_power_level(0x08), do: :minus8dBm
def decode_power_level(0x09), do: :minus9dBm
@spec encode_power_level(power_level_description) ::
{:ok, power_level_value} | {:error, :invalid_arg, any()}
def encode_power_level(:normal_power), do: {:ok, 0x00}
def encode_power_level(:minus1dBm), do: {:ok, 0x01}
def encode_power_level(:minus2dBm), do: {:ok, 0x02}
def encode_power_level(:minus3dBm), do: {:ok, 0x03}
def encode_power_level(:minus4dBm), do: {:ok, 0x04}
def encode_power_level(:minus5dBm), do: {:ok, 0x05}
def encode_power_level(:minus6dBm), do: {:ok, 0x06}
def encode_power_level(:minus7dBm), do: {:ok, 0x07}
def encode_power_level(:minus8dBm), do: {:ok, 0x08}
def encode_power_level(:minus9dBm), do: {:ok, 0x09}
def encode_power_level(other), do: {:error, :invalid_arg, other}
@spec decode_status_of_operation(status_of_operation_value) :: status_of_operation_description
def decode_status_of_operation(0x00), do: :test_failed
def decode_status_of_operation(0x01), do: :test_success
def decode_status_of_operation(0x02), do: :test_in_progress
end