Ember Connect data type definitions. More...

Data Structures

struct EmberNetworkParameters
Holds network parameters. More...
struct EmberIncomingMessage
An instance of this structure is passed to emberIncomingMessageHandler() . It describes the incoming message. More...
struct EmberOutgoingMessage
An instance of this structure is passed to emberMessageSentHandler() . It describes the outgoing packet. More...
struct EmberMacAddress
A structure that stores an 802.15.4 address. More...
struct EmberMacFrame
A structure that describes the addressing fields of a 802.15.4 frame. More...
struct EmberIncomingMacMessage
An instance of this structure is passed to emberIncomingMacMessageHandler() . It describes the incoming MAC frame. More...
struct EmberOutgoingMacMessage
An instance of this structure is passed to emberMacMessageSentHandler() . It describes the outgoing MAC frame. More...
struct EmberKeyData
This data structure contains the key data that is passed into various other functions. More...
struct EventActions
The static part of an event. Each event can be used with only one event queue. More...
struct Event_s
struct EventQueue_s
An event queue is currently just a list of events ordered by execution time. More...
struct EmberEventControl
Control structure for events. More...
struct EmberEventData_S
Complete events with a control and a handler procedure. More...
struct EmberTaskControl
Control structure for tasks. More...

Macros

#define EXTENDED_PAN_ID_SIZE 8
Size of an extended PAN identifier in bytes (8). More...
#define EUI64_SIZE 8
Size of EUI64 (an IEEE address) in bytes (8). More...
#define EMBER_ENCRYPTION_KEY_SIZE 16
Size of an encryption key in bytes (16). More...
#define EMBER_NULL_NODE_ID 0xFFFF
A distinguished network ID that will never be assigned to any node. Used to indicate the absence of a node ID. More...
#define EMBER_BROADCAST_ADDRESS 0xFFFF
Broadcast address. More...
#define EMBER_USE_LONG_ADDRESS 0xFFFE
Special short address indicating the node should use long addressing as source address. More...
#define EMBER_COORDINATOR_ADDRESS 0x0000
The coordinator short address. More...
#define __EMBERSTATUS_TYPE__
Return type for Ember functions. More...

Typedefs

typedef uint8_t EmberEUI64 [ EUI64_SIZE ]
EUI 64-bit ID (an IEEE address). More...
typedef uint16_t EmberNodeId
802.15.4 node ID. More...
typedef uint16_t EmberPanId
802.15.4 PAN ID. More...
typedef uint8_t EmberMessageLength
Message length in bytes. More...
typedef uint8_t EmberTaskId
typedef struct Event_s Event
typedef struct EventQueue_s EventQueue
An event queue is currently just a list of events ordered by execution time. More...
typedef PGM struct EmberEventData_S EmberEventData
typedef uint16_t EmberBuffer
Buffers used by the memory buffer system. More...
typedef uint8_t EmberStatus

Enumerations

enum EmberNodeType {
EMBER_UNKNOWN_DEVICE = 0,
EMBER_STAR_COORDINATOR = 1,
EMBER_STAR_RANGE_EXTENDER = 2,
EMBER_STAR_END_DEVICE = 3,
EMBER_STAR_SLEEPY_END_DEVICE = 4,
EMBER_DIRECT_DEVICE = 5,
EMBER_MAC_MODE_DEVICE = 6,
EMBER_MAC_MODE_SLEEPY_DEVICE = 7
}
Defines the possible types of nodes and the roles that a node might play in a network. More...
enum EmberNetworkStatus {
EMBER_NO_NETWORK ,
EMBER_JOINING_NETWORK ,
EMBER_JOINED_NETWORK
}
Defines the possible join states for a node. More...
enum EmberChildFlags {
EMBER_CHILD_FLAGS_DEVICE_IS_RANGE_EXTENDER_BIT = 0x02,
EMBER_CHILD_FLAGS_DEVICE_IS_SLEEPY_BIT = 0x04,
EMBER_CHILD_FLAGS_HAVE_PENDING_DATA_BIT = 0x08,
EMBER_CHILD_FLAGS_AES_SECURITY_CAPABLE_BIT = 0x10,
EMBER_CHILD_FLAGS_XXTEA_SECURITY_CAPABLE_BIT = 0x20
}
Child flags. More...
enum EmberMessageOptions {
EMBER_OPTIONS_NONE = 0x00,
EMBER_OPTIONS_SECURITY_ENABLED = 0x01,
EMBER_OPTIONS_ACK_REQUESTED = 0x02,
EMBER_OPTIONS_HIGH_PRIORITY = 0x04,
EMBER_OPTIONS_INDIRECT = 0x08
}
Message options. More...
enum EmberMacAddressMode {
EMBER_MAC_ADDRESS_MODE_NONE = 0x00,
EMBER_MAC_ADDRESS_MODE_SHORT = 0x02,
EMBER_MAC_ADDRESS_MODE_LONG = 0x03
}
802.15.4 addressing mode. More...
enum EmberEventUnits {
EMBER_EVENT_INACTIVE = 0,
EMBER_EVENT_MS_TIME ,
EMBER_EVENT_QS_TIME ,
EMBER_EVENT_MINUTE_TIME ,
EMBER_EVENT_ZERO_DELAY
}
Either marks an event as inactive or specifies the units for the event execution time. More...
enum {
EMBER_OUTGOING_MESSAGES = 0x0001,
EMBER_INCOMING_MESSAGES = 0x0002,
EMBER_RADIO_IS_ON = 0x0004,
EMBER_ASSOCIATING = 0x0008,
EMBER_SCANNING = 0x0010
}
Defines tasks that prevent the stack from sleeping. More...
enum EmberCounterType {
EMBER_COUNTER_PHY_IN_PACKETS ,
EMBER_COUNTER_PHY_OUT_PACKETS ,
EMBER_COUNTER_MAC_IN_UNICAST ,
EMBER_COUNTER_MAC_IN_BROADCAST ,
EMBER_COUNTER_MAC_OUT_UNICAST_NO_ACK ,
EMBER_COUNTER_MAC_OUT_UNICAST_ACK_SUCCESS ,
EMBER_COUNTER_MAC_OUT_UNICAST_ACK_FAIL ,
EMBER_COUNTER_MAC_OUT_UNICAST_CCA_FAIL ,
EMBER_COUNTER_MAC_OUT_UNICAST_RETRY ,
EMBER_COUNTER_MAC_OUT_BROADCAST ,
EMBER_COUNTER_MAC_OUT_BROADCAST_CCA_FAIL ,
EMBER_COUNTER_MAC_OUT_ENCRYPT_FAIL ,
EMBER_COUNTER_MAC_DROP_IN_MEMORY ,
EMBER_COUNTER_MAC_DROP_IN_FRAME_COUNTER ,
EMBER_COUNTER_MAC_DROP_IN_DECRYPT ,
EMBER_COUNTER_NWK_OUT_FORWARDING ,
EMBER_COUNTER_NWK_IN_SUCCESS ,
EMBER_COUNTER_NWK_DROP_IN_WRONG_SOURCE ,
EMBER_COUNTER_NWK_DROP_IN_FORWARDING ,
EMBER_COUNTER_UART_IN_DATA ,
EMBER_COUNTER_UART_IN_MANAGEMENT ,
EMBER_COUNTER_UART_IN_FAIL ,
EMBER_COUNTER_UART_OUT_DATA ,
EMBER_COUNTER_UART_OUT_MANAGEMENT ,
EMBER_COUNTER_UART_OUT_FAIL ,
EMBER_COUNTER_ROUTE_2_HOP_LOOP ,
EMBER_COUNTER_BUFFER_ALLOCATION_FAIL ,
EMBER_ASH_V3_ACK_SENT ,
EMBER_ASH_V3_ACK_RECEIVED ,
EMBER_ASH_V3_NACK_SENT ,
EMBER_ASH_V3_NACK_RECEIVED ,
EMBER_ASH_V3_RESEND ,
EMBER_ASH_V3_BYTES_SENT ,
EMBER_ASH_V3_TOTAL_BYTES_RECEIVED ,
EMBER_ASH_V3_VALID_BYTES_RECEIVED ,
EMBER_ASH_V3_PAYLOAD_BYTES_SENT ,
EMBER_COUNTER_TYPE_COUNT
}
Defines the events reported to the application by the ::emberCounterHandler(). More...

Functions

uint8_t * emberKeyContents ( EmberKeyData *key)
This function allows the programmer to gain access to the key data bytes of the EmberKeyData structure. More...

Detailed Description

Ember Connect data type definitions.

License

Copyright 2018 Silicon Laboratories Inc. www.silabs.com

The licensor of this software is Silicon Laboratories Inc. Your use of this software is governed by the terms of Silicon Labs Master Software License Agreement (MSLA) available at www.silabs.com/about-us/legal/master-software-license-agreement. This software is distributed to you in Source Code format and is governed by the sections of the MSLA applicable to Source Code.

See ember-types.h for source code.

Macro Definition Documentation

#define __EMBERSTATUS_TYPE__

Return type for Ember functions.

Definition at line 676 of file ember-types.h .

#define EMBER_BROADCAST_ADDRESS 0xFFFF

Broadcast address.

Definition at line 70 of file ember-types.h .

#define EMBER_COORDINATOR_ADDRESS 0x0000

The coordinator short address.

Definition at line 77 of file ember-types.h .

#define EMBER_ENCRYPTION_KEY_SIZE 16

Size of an encryption key in bytes (16).

Definition at line 46 of file ember-types.h .

#define EMBER_NULL_NODE_ID 0xFFFF

A distinguished network ID that will never be assigned to any node. Used to indicate the absence of a node ID.

Definition at line 67 of file ember-types.h .

#define EMBER_USE_LONG_ADDRESS 0xFFFE

Special short address indicating the node should use long addressing as source address.

Definition at line 74 of file ember-types.h .

#define EUI64_SIZE 8

Size of EUI64 (an IEEE address) in bytes (8).

Definition at line 41 of file ember-types.h .

#define EXTENDED_PAN_ID_SIZE 8

Size of an extended PAN identifier in bytes (8).

Definition at line 36 of file ember-types.h .

Typedef Documentation

typedef uint16_t EmberBuffer

Buffers used by the memory buffer system.

Definition at line 670 of file ember-types.h .

typedef uint8_t EmberEUI64[ EUI64_SIZE ]

EUI 64-bit ID (an IEEE address).

Definition at line 51 of file ember-types.h .

typedef uint8_t EmberMessageLength

Message length in bytes.

Definition at line 185 of file ember-types.h .

typedef uint16_t EmberNodeId

802.15.4 node ID.

Definition at line 56 of file ember-types.h .

typedef uint16_t EmberPanId

802.15.4 PAN ID.

Definition at line 61 of file ember-types.h .

typedef uint8_t EmberStatus

Definition at line 677 of file ember-types.h .

typedef uint8_t EmberTaskId

brief An identifier for a task

Definition at line 470 of file ember-types.h .

typedef struct Event_s Event

An event queue is currently just a list of events ordered by execution time.

Enumeration Type Documentation

anonymous enum

Defines tasks that prevent the stack from sleeping.

Enumerator
EMBER_OUTGOING_MESSAGES

Messages are waiting for transmission.

EMBER_INCOMING_MESSAGES

One or more incoming messages are processed.

EMBER_RADIO_IS_ON

The radio is currently powered on. On sleepy devices, the radio is turned off when not in use. On non-sleepy devices, i.e., EMBER_STAR_COORDINATOR , EMBER_STAR_RANGE_EXTENDER , or EMBER_STAR_END_DEVICE , the radio is always on.

EMBER_ASSOCIATING

The node is currently trying to associate to a Connect network.

EMBER_SCANNING

The node is currently performing a MAC-level scanning procedure.

Definition at line 553 of file ember-types.h .

Child flags.

Enumerator
EMBER_CHILD_FLAGS_DEVICE_IS_RANGE_EXTENDER_BIT

The child is a range extender.

EMBER_CHILD_FLAGS_DEVICE_IS_SLEEPY_BIT

The child is a sleepy end device.

EMBER_CHILD_FLAGS_HAVE_PENDING_DATA_BIT

The node has data pending for the child.

EMBER_CHILD_FLAGS_AES_SECURITY_CAPABLE_BIT

The child supports AES-based security.

EMBER_CHILD_FLAGS_XXTEA_SECURITY_CAPABLE_BIT

The child supports XXTEA-based security.

Definition at line 164 of file ember-types.h .

Defines the events reported to the application by the ::emberCounterHandler().

Enumerator
EMBER_COUNTER_PHY_IN_PACKETS

Every packet that comes in over the radio (except MAC ACKs).

EMBER_COUNTER_PHY_OUT_PACKETS

Every packet that goes out over the radio (except MAC ACKs).

EMBER_COUNTER_MAC_IN_UNICAST

Incoming MAC unicasts.

EMBER_COUNTER_MAC_IN_BROADCAST

Incoming MAC broadcasts.

EMBER_COUNTER_MAC_OUT_UNICAST_NO_ACK

Outgoing MAC unicasts that do not require an ACK.

EMBER_COUNTER_MAC_OUT_UNICAST_ACK_SUCCESS

Outgoing MAC unicasts that require an ACK for which an ACK was received possibly after retrying.

EMBER_COUNTER_MAC_OUT_UNICAST_ACK_FAIL

Outgoing unicasts for which an ACK was never received even after retrying.

EMBER_COUNTER_MAC_OUT_UNICAST_CCA_FAIL

Outgoing MAC packets which were never transmitted because clear channel assessment always returned busy.

EMBER_COUNTER_MAC_OUT_UNICAST_RETRY

Outgoing unicast retries. This does not count the initial transmission. Note a single MAC transmission can result in multiple retries.

EMBER_COUNTER_MAC_OUT_BROADCAST
EMBER_COUNTER_MAC_OUT_BROADCAST_CCA_FAIL
EMBER_COUNTER_MAC_OUT_ENCRYPT_FAIL
EMBER_COUNTER_MAC_DROP_IN_MEMORY

Dropped incoming MAC packets (out of memory)

EMBER_COUNTER_MAC_DROP_IN_FRAME_COUNTER

Dropped incoming MAC packets (invalid frame counter)

EMBER_COUNTER_MAC_DROP_IN_DECRYPT

Dropped incoming MAC packets (can't decrypt)

EMBER_COUNTER_NWK_OUT_FORWARDING

Outgoing NWK forwarded packets

EMBER_COUNTER_NWK_IN_SUCCESS

Incoming NWK data frames correctly processed

EMBER_COUNTER_NWK_DROP_IN_WRONG_SOURCE

Dropped incoming NWK packets (wrong source node)

EMBER_COUNTER_NWK_DROP_IN_FORWARDING

Dropped incoming NWK packets (can't forward)

EMBER_COUNTER_UART_IN_DATA

UART in and out data

EMBER_COUNTER_UART_IN_MANAGEMENT
EMBER_COUNTER_UART_IN_FAIL
EMBER_COUNTER_UART_OUT_DATA
EMBER_COUNTER_UART_OUT_MANAGEMENT
EMBER_COUNTER_UART_OUT_FAIL
EMBER_COUNTER_ROUTE_2_HOP_LOOP
EMBER_COUNTER_BUFFER_ALLOCATION_FAIL
EMBER_ASH_V3_ACK_SENT

ASHv3

EMBER_ASH_V3_ACK_RECEIVED
EMBER_ASH_V3_NACK_SENT
EMBER_ASH_V3_NACK_RECEIVED
EMBER_ASH_V3_RESEND
EMBER_ASH_V3_BYTES_SENT
EMBER_ASH_V3_TOTAL_BYTES_RECEIVED
EMBER_ASH_V3_VALID_BYTES_RECEIVED
EMBER_ASH_V3_PAYLOAD_BYTES_SENT
EMBER_COUNTER_TYPE_COUNT

A placeholder giving the number of Ember counter types.

Definition at line 575 of file ember-types.h .

Either marks an event as inactive or specifies the units for the event execution time.

Enumerator
EMBER_EVENT_INACTIVE

The event is not scheduled to run.

EMBER_EVENT_MS_TIME

The execution time is in approximate milliseconds.

EMBER_EVENT_QS_TIME

The execution time is in 'binary' quarter seconds (256 approximate milliseconds each).

EMBER_EVENT_MINUTE_TIME

The execution time is in 'binary' minutes (65536 approximate milliseconds each).

EMBER_EVENT_ZERO_DELAY

The event is scheduled to run at the earliest opportunity.

Definition at line 449 of file ember-types.h .

802.15.4 addressing mode.

Enumerator
EMBER_MAC_ADDRESS_MODE_NONE
EMBER_MAC_ADDRESS_MODE_SHORT
EMBER_MAC_ADDRESS_MODE_LONG

Definition at line 288 of file ember-types.h .

Message options.

Enumerator
EMBER_OPTIONS_NONE

No options.

EMBER_OPTIONS_SECURITY_ENABLED

The packet should be sent out encrypted.

EMBER_OPTIONS_ACK_REQUESTED

An acknowledgment should be requested for the outgoing packet.

EMBER_OPTIONS_HIGH_PRIORITY

The packet should be sent with high priority.

EMBER_OPTIONS_INDIRECT

The packet should be sent via the indirect queue. This option only applies to nodes with EMBER_MAC_MODE_DEVICE or EMBER_MAC_MODE_SLEEPY_DEVICE node type.

Definition at line 191 of file ember-types.h .

Defines the possible join states for a node.

Enumerator
EMBER_NO_NETWORK

The node is not associated with a network in any way.

EMBER_JOINING_NETWORK

The node is currently attempting to join a network.

EMBER_JOINED_NETWORK

The node is joined to a network.

Definition at line 131 of file ember-types.h .

Defines the possible types of nodes and the roles that a node might play in a network.

Enumerator
EMBER_UNKNOWN_DEVICE

Device is not joined.

EMBER_STAR_COORDINATOR

Star or extended star topology device: will relay messages and can act as a parent to range extender and end device nodes.

EMBER_STAR_RANGE_EXTENDER

Star or extended star topology device: will relay messages and can act as a parent to end device nodes.

EMBER_STAR_END_DEVICE

Star or extended star topology device: communicates only with its parent and will not relay messages.

EMBER_STAR_SLEEPY_END_DEVICE

Star or extended star topology device: an end device whose radio can be turned off to save power. The application must call emberPollForData() to receive messages.

EMBER_DIRECT_DEVICE

A device able to send and receive messages from other devices in range on the same PAN ID, with no star topology restrictions. Such device does not relay messages. A node can be started as a direct device by using the emberJoinCommissioned() API.

EMBER_MAC_MODE_DEVICE

A device able to send and receive MAC-level messages. A node can be started as a MAC mode device by using the emberJoinCommissioned() API or the emberJoinNetworkExtended() API.

EMBER_MAC_MODE_SLEEPY_DEVICE

A sleepy device able to send and receive MAC-level messages. A node can be started as a sleepy MAC mode device by using the emberJoinCommissioned() API or the emberJoinNetworkExtended() API.

Definition at line 84 of file ember-types.h .

Function Documentation

uint8_t* emberKeyContents ( EmberKeyData * key )

This function allows the programmer to gain access to the key data bytes of the EmberKeyData structure.

Parameters
[in] key A Pointer to an EmberKeyData structure.
Returns
uint8_t* Returns a pointer to the first byte of the key data.