Connect Data Types

Definitions of Connect data types used by various Connect API functions. More...

Data Structures

struct  EmberNetworkParameters
 Hold 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 security key, most prominently used by emberSetSecurityKey. 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...
 

Typedefs

typedef uint8_t EmberEUI64[EUI64_SIZE]
 EUI 64-bit ID (IEEE 802.15.4 long address). More...
 
typedef uint16_t EmberNodeId
 IEEE 802.15.4 node ID. Also known as short address. More...
 
typedef uint16_t EmberPanId
 IEEE 802.15.4 PAN ID. More...
 
typedef uint8_t EmberMessageLength
 Message length in bytes. More...
 
typedef uint8_t EmberTaskId
 An identifier for a task. More...
 
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...
 

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
}
 Define 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
}
 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
}
 Define 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
}
 Define the event counters that can be requested from the application using emberGetCounter() More...
 

Functions

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

Detailed Description

Definitions of Connect data types used by various Connect API functions.

See ember-types.h for source code.

Macro Definition Documentation

◆ EMBER_BROADCAST_ADDRESS

#define EMBER_BROADCAST_ADDRESS   0xFFFF

Broadcast address.

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

◆ EMBER_COORDINATOR_ADDRESS

#define EMBER_COORDINATOR_ADDRESS   0x0000

The coordinator short address.

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

◆ EMBER_ENCRYPTION_KEY_SIZE

#define EMBER_ENCRYPTION_KEY_SIZE   16

Size of an encryption key in bytes (16).

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

◆ EMBER_NULL_NODE_ID

#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 70 of file ember-types.h.

◆ EMBER_USE_LONG_ADDRESS

#define EMBER_USE_LONG_ADDRESS   0xFFFE

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

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

◆ EUI64_SIZE

#define EUI64_SIZE   8

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

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

◆ EXTENDED_PAN_ID_SIZE

#define EXTENDED_PAN_ID_SIZE   8

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

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

Typedef Documentation

◆ EmberBuffer

typedef uint16_t EmberBuffer

Buffers used by the memory buffer system.

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

◆ EmberEUI64

typedef uint8_t EmberEUI64[EUI64_SIZE]

EUI 64-bit ID (IEEE 802.15.4 long address).

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

◆ EmberEventData

typedef PGM struct EmberEventData_S EmberEventData

◆ EmberMessageLength

typedef uint8_t EmberMessageLength

Message length in bytes.

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

◆ EmberNodeId

typedef uint16_t EmberNodeId

IEEE 802.15.4 node ID. Also known as short address.

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

◆ EmberPanId

typedef uint16_t EmberPanId

IEEE 802.15.4 PAN ID.

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

◆ EmberTaskId

typedef uint8_t EmberTaskId

An identifier for a task.

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

◆ Event

typedef struct Event_s Event

◆ EventQueue

typedef struct EventQueue_s EventQueue

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

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Define 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, EMBER_STAR_END_DEVICE, or EMBER_MAC_MODE_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 600 of file ember-types.h.

◆ EmberChildFlags

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.

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

◆ EmberCounterType

Define the event counters that can be requested from the application using emberGetCounter()

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 layer unicasts.

EMBER_COUNTER_MAC_IN_BROADCAST 

Incoming MAC layer broadcasts.

EMBER_COUNTER_MAC_OUT_UNICAST_NO_ACK 

Outgoing MAC layer unicasts that do not require an ACK.

EMBER_COUNTER_MAC_OUT_UNICAST_ACK_SUCCESS 

Outgoing MAC layer unicasts that required an ACK, for which an ACK was received (possibly after retrying).

EMBER_COUNTER_MAC_OUT_UNICAST_ACK_FAIL 

Outgoing MAC layer unicasts that required an ACK, for which an ACK was never received (even after retrying).

EMBER_COUNTER_MAC_OUT_UNICAST_CCA_FAIL 

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

EMBER_COUNTER_MAC_OUT_UNICAST_RETRY 

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

EMBER_COUNTER_MAC_OUT_BROADCAST 

Outgoing MAC layer broadcasts

EMBER_COUNTER_MAC_OUT_BROADCAST_CCA_FAIL 

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

EMBER_COUNTER_MAC_OUT_ENCRYPT_FAIL 

Outgoing MAC layer messages which were not transmitted due to security error e.g. because security key was not set.

EMBER_COUNTER_MAC_DROP_IN_MEMORY 

Dropped incoming MAC layer packets (out of memory)

EMBER_COUNTER_MAC_DROP_IN_FRAME_COUNTER 

Dropped incoming MAC layer packets (invalid frame counter)

EMBER_COUNTER_MAC_DROP_IN_DECRYPT 

Dropped incoming MAC layer packets (can't decrypt)

EMBER_COUNTER_NWK_OUT_FORWARDING 

Outgoing Network layer forwarded packets

EMBER_COUNTER_NWK_IN_SUCCESS 

Incoming Network layer data frames correctly processed

EMBER_COUNTER_NWK_DROP_IN_WRONG_SOURCE 

Dropped incoming Network layer packets (wrong source node)

EMBER_COUNTER_NWK_DROP_IN_FORWARDING 

Dropped incoming Network layer packets (can't forward)

EMBER_COUNTER_UART_IN_DATA 

NCP UART in data packet

EMBER_COUNTER_UART_IN_MANAGEMENT 

NCP UART in management packet

EMBER_COUNTER_UART_IN_FAIL 

NCP UART in frame errors

EMBER_COUNTER_UART_OUT_DATA 

NCP UART out data packet

EMBER_COUNTER_UART_OUT_MANAGEMENT 

NCP UART out management packet

EMBER_COUNTER_UART_OUT_FAIL 

NCP UART out frame errors

EMBER_COUNTER_ROUTE_2_HOP_LOOP 
EMBER_COUNTER_BUFFER_ALLOCATION_FAIL 
EMBER_ASH_V3_ACK_SENT 

ASHv3 ACK frame sent

EMBER_ASH_V3_ACK_RECEIVED 

ASHv3 ACK frame received

EMBER_ASH_V3_NACK_SENT 

ASHv3 NACK frame sent

EMBER_ASH_V3_NACK_RECEIVED 

ASHv3 NACK frame received

EMBER_ASH_V3_RESEND 

ASHv3 resends of frames that were not acked

EMBER_ASH_V3_BYTES_SENT 

ASHv3 number of bytes sent

EMBER_ASH_V3_TOTAL_BYTES_RECEIVED 

ASHv3 number of bytes received

EMBER_ASH_V3_VALID_BYTES_RECEIVED 

ASHv3 number of valid bytes received

EMBER_ASH_V3_PAYLOAD_BYTES_SENT 

ASHv3 number of payload bytes sent

EMBER_COUNTER_TYPE_COUNT 

A placeholder giving the number of Ember counter types.

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

◆ EmberEventUnits

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 timer ticks).

EMBER_EVENT_MINUTE_TIME 

The execution time is in 'binary' minutes (65536 timer ticks).

EMBER_EVENT_ZERO_DELAY 

The event is scheduled to run at the earliest opportunity.

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

◆ EmberMacAddressMode

802.15.4 addressing mode.

Enumerator
EMBER_MAC_ADDRESS_MODE_NONE 

No address on this field.

EMBER_MAC_ADDRESS_MODE_SHORT 

Short addressing mode.

EMBER_MAC_ADDRESS_MODE_LONG 

Long addressing mode.

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

◆ EmberMessageOptions

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. High priority messages are added to the head of transmit queue, other messages are added to the tail.

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 202 of file ember-types.h.

◆ EmberNetworkStatus

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 143 of file ember-types.h.

◆ EmberNodeType

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

Enumerator
EMBER_UNKNOWN_DEVICE 

Device is not in network.

EMBER_STAR_COORDINATOR 

Extended star mode device: Will relay messages and can act as a parent to range extender and end device nodes. A node can be started as a coordinator using the emberFormNetwork() API.

EMBER_STAR_RANGE_EXTENDER 

Extended star mode device: Will relay messages and can act as a parent to end device nodes. Joins to a coordinator. A node can be started as a range extender using the emberJoinNetwork() or emberJoinNetworkExtended() API.

EMBER_STAR_END_DEVICE 

Extended star mode device: Communicates only with its parent and will not relay messages. A node can be started as an end device using the emberJoinNetwork() or emberJoinNetworkExtended() API.

EMBER_STAR_SLEEPY_END_DEVICE 

Extended star mode device: An end device whose radio is turned off when not communicating to save power. The application must call emberPollForData() to receive messages. A node can be started as a sleepy end device using the emberJoinNetwork() or emberJoinNetworkExtended() API.

EMBER_DIRECT_DEVICE 

Direct mode 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 

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(), the emberJoinNetworkExtended() or the emberMacFormNetwork() API.

EMBER_MAC_MODE_SLEEPY_DEVICE 

MAC mode device: A sleepy device able to send and receive MAC-level messages. The radio on the device is turned off when not communicating. The application must call emberPollForData() to receive messages. A node can be started as a sleepy MAC mode device by using the emberJoinCommissioned() API or the emberJoinNetworkExtended() API.

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

Function Documentation

◆ emberKeyContents()

uint8_t* emberKeyContents ( EmberKeyData key)

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

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