BlueHeron.DataType.ManufacturerData.Apple (blue_heron v0.4.1) View Source

Serialization module for Apple.

iBeacon

Reference: https://en.wikipedia.org/wiki/IBeacon#Packet_Structure_Byte_Map

Link to this section Summary

Functions

Returns the Company Identifier description associated with this module.

iex> deserialize(<<2, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 2, 3>>)
{:ok, {"iBeacon", %{major: 1, minor: 2, tx_power: 3, uuid: 4}}}

iex> deserialize(<<2, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 2>>)
{:error, <<2, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 2>>}

Returns the iBeacon identifier.

Returns the length of the data following the length byte.

iex> serialize({"iBeacon", %{major: 1, minor: 2, tx_power: 3, uuid: 4}})
{:ok, <<2, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 2, 3>>}

iex> serialize({"iBeacon", %{major: 1, minor: 2, tx_power: 3}})
:error

iex> serialize(false)
:error

Link to this section Functions

Returns the Company Identifier description associated with this module.

iex> company()
"Apple, Inc."
iex> deserialize(<<2, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 2, 3>>)
{:ok, {"iBeacon", %{major: 1, minor: 2, tx_power: 3, uuid: 4}}}

iex> deserialize(<<2, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 2>>)
{:error, <<2, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 2>>}

Returns the iBeacon identifier.

iex> ibeacon_identifier()
0x02

Returns the length of the data following the length byte.

iex> ibeacon_length()
0x15
iex> serialize({"iBeacon", %{major: 1, minor: 2, tx_power: 3, uuid: 4}})
{:ok, <<2, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 2, 3>>}

iex> serialize({"iBeacon", %{major: 1, minor: 2, tx_power: 3}})
:error

iex> serialize(false)
:error