License#

Copyright 2018 Silicon Laboratories Inc. www.silabs.com

SPDX-License-Identifier: Zlib

The licensor of this software is Silicon Laboratories Inc.

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

  3. This notice may not be removed or altered from any source distribution.

/***************************************************************************/
#ifndef __EMBER_TYPES_H__
#define __EMBER_TYPES_H__

#ifdef EMBER_TEST
#include PLATFORM_HEADER
#endif
#include "sl_common.h"

#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>

#ifndef DOXYGEN_SHOULD_SKIP_THIS
#include "stack/config/ember-configuration-defaults.h"
#endif //DOXYGEN_SHOULD_SKIP_THIS

#define EXTENDED_PAN_ID_SIZE 8

#define EUI64_SIZE 8

#define EMBER_ENCRYPTION_KEY_SIZE 16

typedef uint8_t EmberEUI64[EUI64_SIZE];

typedef uint16_t EmberNodeId;

typedef uint16_t EmberPanId;

#define EMBER_NULL_NODE_ID                0xFFFFu

#define EMBER_BROADCAST_ADDRESS           0xFFFF

#define EMBER_USE_LONG_ADDRESS            0xFFFE

#define EMBER_COORDINATOR_ADDRESS         0x0000

#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberNodeType
#else
typedef uint8_t EmberNodeType;
enum
#endif
{
  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,
};

#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberNetworkStatus
#else
typedef uint8_t EmberNetworkStatus;
enum
#endif
{
  EMBER_NO_NETWORK,
  EMBER_JOINING_NETWORK,
  EMBER_JOINED_NETWORK,
  EMBER_RADIO_TEST
};

typedef struct {
  uint16_t  panId;
  int16_t   radioTxPower;
  uint16_t   radioChannel;
} EmberNetworkParameters;

#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberChildFlags
#else
typedef uint8_t EmberChildFlags;
enum
#endif
{
  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_FLAG_DEVICE_IS_EXTENDED_BIT              = 0x20,
};

typedef uint16_t EmberMessageLength;

#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberMessageOptions
#else
typedef uint8_t EmberMessageOptions;
enum
#endif
{
  EMBER_OPTIONS_NONE                     = 0x00,
  EMBER_OPTIONS_SECURITY_ENABLED         = 0x01,
  EMBER_OPTIONS_ACK_REQUESTED            = 0x02,
  EMBER_OPTIONS_HIGH_PRIORITY            = 0x04,
  EMBER_OPTIONS_INDIRECT                 = 0x08,
};

typedef struct {
  EmberMessageOptions options;
  EmberNodeId source;
  uint8_t endpoint;
  int8_t rssi;
  EmberMessageLength length;
  uint8_t *payload;
  uint32_t timestamp;
  uint8_t lqi;
} EmberIncomingMessage;

typedef struct {
  EmberMessageOptions options;
  EmberNodeId destination;
  uint8_t endpoint;
  uint8_t tag;
  EmberMessageLength length;
  uint8_t *payload;
  int8_t ackRssi;
  uint32_t timestamp;
} EmberOutgoingMessage;

#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberMacAddressMode
#else
typedef uint8_t EmberMacAddressMode;
enum
#endif
{
  EMBER_MAC_ADDRESS_MODE_NONE  = 0x00,
  EMBER_MAC_ADDRESS_MODE_SHORT = 0x02,
  EMBER_MAC_ADDRESS_MODE_LONG  = 0x03,
};

typedef struct {
  union {
    uint8_t longAddress[EUI64_SIZE];
    uint16_t shortAddress;
  } addr;

  EmberMacAddressMode mode; 
} EmberMacAddress;

typedef struct {
  EmberMacAddress srcAddress;
  EmberMacAddress dstAddress;
  EmberPanId srcPanId;
  EmberPanId dstPanId;
  bool srcPanIdSpecified;
  bool dstPanIdSpecified;
} EmberMacFrame;

typedef struct {
  EmberMessageOptions options;
  EmberMacFrame macFrame;
  int8_t rssi;
  uint8_t lqi;
  uint32_t frameCounter;
  EmberMessageLength length;
  uint8_t *payload;
  uint32_t timestamp;
} EmberIncomingMacMessage;

typedef struct {
  EmberMessageOptions options;
  EmberMacFrame macFrame;
  uint8_t tag;
  uint32_t frameCounter;
  EmberMessageLength length;
  uint8_t *payload;
  int8_t ackRssi;
  uint32_t timestamp;
} EmberOutgoingMacMessage;

typedef struct {
  uint8_t contents[EMBER_ENCRYPTION_KEY_SIZE];
} EmberKeyData;

#if defined DOXYGEN_SHOULD_SKIP_THIS
uint8_t* emberKeyContents(EmberKeyData* key);
#else
#define emberKeyContents(key) ((key)->contents)
#endif

#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberEventUnits
#else
typedef uint8_t EmberEventUnits;
enum
#endif
{
  EMBER_EVENT_INACTIVE = 0,
  EMBER_EVENT_MS_TIME,
  EMBER_EVENT_QS_TIME,
  EMBER_EVENT_MINUTE_TIME,
  EMBER_EVENT_ZERO_DELAY
};

typedef uint8_t EmberTaskId;

//----------------------------------------------------------------
// Events and event queues.

// Forward declarations to make up for C's one-pass type checking.
struct Event_s;
struct EventQueue_s;

typedef const struct {
  struct EventQueue_s *queue;           // the queue this event goes on
  void (*handler)(struct Event_s *);    // called when the event fires
  void (*marker)(struct Event_s *);     // marking function, can be NULL
  const char *name;                     // event name for debugging purposes
} EventActions;

typedef struct Event_s {
  EventActions *actions;                // static data

  // For internal use only, but the 'next' field must be initialized
  // to NULL.
  struct Event_s *next;
  uint32_t timeToExecute;
} Event;

typedef struct EventQueue_s {
  Event *isrEvents;
  Event *events;
} EventQueue;

typedef struct {
  EmberEventUnits status;
  EmberTaskId taskid;
  uint32_t timeToExecute;
} EmberEventControl;

typedef const struct EmberEventData_S {
  EmberEventControl *control;
  void (*handler)(void);
} EmberEventData;

typedef struct {
  uint32_t nextEventTime;
  EmberEventData *events;
  bool busy;
} EmberTaskControl;

enum {
  EMBER_OUTGOING_MESSAGES = 0x0001,
  EMBER_INCOMING_MESSAGES = 0x0002,
  EMBER_RADIO_IS_ON = 0x0004,
  EMBER_ASSOCIATING = 0x0008,
  EMBER_SCANNING = 0x0010,
};

#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberCounterType
#else
typedef uint8_t EmberCounterType;
enum
#endif
{
  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,

  // Counters for non-packet events below.
  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,
};

typedef uint16_t EmberBuffer;

#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberPhyType
#else
typedef uint8_t EmberPhyType;
enum
#endif
{
  EMBER_RADIO_CONFIGURATOR,

  EMBER_STANDARD_PHY_2_4GHZ,

  EMBER_STANDARD_PHY_915MHZ,

  EMBER_STANDARD_PHY_863MHZ
};

#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberCalType
#else
typedef uint32_t EmberCalType;
enum
#endif
{
  EMBER_CAL_TEMP_VCO = 0x00000001,

  EMBER_CAL_IRCAL    = 0x00010000,

  EMBER_CAL_ALL      = 0x00010001
};

#define EMBER_CAL_INVALID_VALUE    (0xFFFFFFFF)

#ifndef DOXYGEN_SHOULD_SKIP_THIS
//doxygen should see this in error-def.h

#ifndef __EMBERSTATUS_TYPE__
#define __EMBERSTATUS_TYPE__
typedef uint8_t EmberStatus;
#endif //__EMBERSTATUS_TYPE__

#endif //DOXYGEN_SHOULD_SKIP_THIS

//------------------------------------------------------------------------------
// INTERNAL TYPES AND DEFINES
//------------------------------------------------------------------------------

#ifndef DOXYGEN_SHOULD_SKIP_THIS

typedef struct {
  EmberNodeId destination;
  uint8_t endpoint;
  uint8_t tag;
  EmberBuffer payload;
  EmberMessageOptions txOptions;
} EmOutgoingPacket;

typedef struct {
  uint32_t lastSeen;
  uint32_t frameCounter;
  EmberNodeId shortId;
  EmberEUI64 longId;
  uint8_t flags;
  uint8_t leaveCount;
} EmberChildEntry;

typedef uint8_t EmberLibraryStatus;

typedef void (*ClientResyncCallback)(EmberStatus status);

typedef struct {
  EmberBuffer* buffer_addr;
  uint16_t buffer_length;
} EmberBufferDesc;

// A library's status is an 8-bit value with information about it.
// The high bit indicates whether the library is present (1), or if it is a
// stub (0).  The lower 7-bits can be used for codes specific to the library.
// This allows a library, like the security library, to specify what additional
// features are present.
// A value of 0xFF is reserved, it indicates an error in retrieving the
// library status.
#define EMBER_LIBRARY_PRESENT_MASK          0x80
#define EMBER_LIBRARY_IS_STUB               0x00
#define EMBER_LIBRARY_ERROR                 0xFF

#define emberDebugPrintf(...)
#define emLog(type, ...)
#define emLogLine(type, ...)
#define emLogBytes(type, format, bytes, count, ...)

#endif //DOXYGEN_SHOULD_SKIP_THIS

#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberTxStreamParameters
#else
typedef uint8_t EmberTxStreamParameters;
enum
#endif
{
  TX_STREAM_PN9, 
  TX_STREAM_CW   
};

#endif // __EMBER_TYPES_H__

Modules#

EmberNetworkParameters

EmberIncomingMessage

EmberOutgoingMessage

EmberMacAddress

EmberMacFrame

EmberIncomingMacMessage

EmberOutgoingMacMessage

EmberKeyData

EventActions

Event_s

EventQueue_s

EmberEventControl

EmberEventData_S

EmberTaskControl

Macros#

#define

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

#define

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

#define

Size of an encryption key in bytes (16).

#define

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

#define

Broadcast address.

#define

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

#define

The coordinator short address.

#define

Enumerations#

enum
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.

enum
EMBER_NO_NETWORK
EMBER_JOINING_NETWORK
EMBER_JOINED_NETWORK
EMBER_RADIO_TEST
}

Defines the possible join states for a node.

enum
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_FLAG_DEVICE_IS_EXTENDED_BIT = 0x20
}

Child flags.

enum
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.

enum
EMBER_MAC_ADDRESS_MODE_NONE = 0x00
EMBER_MAC_ADDRESS_MODE_SHORT = 0x02
EMBER_MAC_ADDRESS_MODE_LONG = 0x03
}

802.15.4 addressing mode.

enum
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.

enum
@2 {
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.

enum
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()

enum
EMBER_RADIO_CONFIGURATOR
EMBER_STANDARD_PHY_2_4GHZ
EMBER_STANDARD_PHY_915MHZ
EMBER_STANDARD_PHY_863MHZ
}

Define the PHY configuration of connect stack.

enum
EMBER_CAL_TEMP_VCO = 0x00000001
EMBER_CAL_IRCAL = 0x00010000
EMBER_CAL_ALL = 0x00010001
}

Define the type of calibration requested.

enum
TX_STREAM_PN9
TX_STREAM_CW
}

Radio Stream mode.

Typedefs#

typedef uint8_t
EmberEUI64[EUI64_SIZE]

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

typedef uint16_t

IEEE 802.15.4 node ID. Also known as short address.

typedef uint16_t

IEEE 802.15.4 PAN ID.

typedef uint16_t

Message length in bytes.

typedef uint8_t

An identifier for a task.

typedef struct Event_s
typedef struct EventQueue_s

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

typedef const struct EmberEventData_S

Complete events with a control and a handler procedure.

typedef uint16_t

Buffers used by the memory buffer system.

Functions#

uint8_t *
emberKeyContents(EmberKeyData *key)

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

Macro Definition Documentation#

EXTENDED_PAN_ID_SIZE#

#define EXTENDED_PAN_ID_SIZE
Value:
8

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


Definition at line 58 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EUI64_SIZE#

#define EUI64_SIZE
Value:
8

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


Definition at line 63 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EMBER_ENCRYPTION_KEY_SIZE#

#define EMBER_ENCRYPTION_KEY_SIZE
Value:
16

Size of an encryption key in bytes (16).


Definition at line 68 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EMBER_NULL_NODE_ID#

#define EMBER_NULL_NODE_ID
Value:
0xFFFFu

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


Definition at line 89 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EMBER_BROADCAST_ADDRESS#

#define EMBER_BROADCAST_ADDRESS
Value:
0xFFFF

Broadcast address.


Definition at line 92 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EMBER_USE_LONG_ADDRESS#

#define EMBER_USE_LONG_ADDRESS
Value:
0xFFFE

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


Definition at line 96 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EMBER_COORDINATOR_ADDRESS#

#define EMBER_COORDINATOR_ADDRESS
Value:
0x0000

The coordinator short address.


Definition at line 99 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EMBER_CAL_INVALID_VALUE#

#define EMBER_CAL_INVALID_VALUE
Value:
(0xFFFFFFFF)

Definition at line 804 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

Enumeration Documentation#

EmberNodeType#

EmberNodeType

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

Enumerator
EMBER_UNKNOWN_DEVICE
EMBER_STAR_COORDINATOR
EMBER_STAR_RANGE_EXTENDER
EMBER_STAR_END_DEVICE
EMBER_STAR_SLEEPY_END_DEVICE
EMBER_DIRECT_DEVICE
EMBER_MAC_MODE_DEVICE
EMBER_MAC_MODE_SLEEPY_DEVICE

Definition at line 106 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberNetworkStatus#

EmberNetworkStatus

Defines the possible join states for a node.

Enumerator
EMBER_NO_NETWORK
EMBER_JOINING_NETWORK
EMBER_JOINED_NETWORK
EMBER_RADIO_TEST

Definition at line 162 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberChildFlags#

EmberChildFlags

Child flags.

Enumerator
EMBER_CHILD_FLAGS_DEVICE_IS_RANGE_EXTENDER_BIT
EMBER_CHILD_FLAGS_DEVICE_IS_SLEEPY_BIT
EMBER_CHILD_FLAGS_HAVE_PENDING_DATA_BIT
EMBER_CHILD_FLAGS_AES_SECURITY_CAPABLE_BIT
EMBER_CHILD_FLAG_DEVICE_IS_EXTENDED_BIT

Definition at line 198 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberMessageOptions#

EmberMessageOptions

Message options.

Enumerator
EMBER_OPTIONS_NONE
EMBER_OPTIONS_SECURITY_ENABLED
EMBER_OPTIONS_ACK_REQUESTED
EMBER_OPTIONS_HIGH_PRIORITY
EMBER_OPTIONS_INDIRECT

Definition at line 225 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberMacAddressMode#

EmberMacAddressMode

802.15.4 addressing mode.

Enumerator
EMBER_MAC_ADDRESS_MODE_NONE
EMBER_MAC_ADDRESS_MODE_SHORT
EMBER_MAC_ADDRESS_MODE_LONG

Definition at line 338 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberEventUnits#

EmberEventUnits

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

Enumerator
EMBER_EVENT_INACTIVE
EMBER_EVENT_MS_TIME
EMBER_EVENT_QS_TIME
EMBER_EVENT_MINUTE_TIME
EMBER_EVENT_ZERO_DELAY

Definition at line 521 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

@2#

@2

Define tasks that prevent the stack from sleeping.

Enumerator
EMBER_OUTGOING_MESSAGES
EMBER_INCOMING_MESSAGES
EMBER_RADIO_IS_ON
EMBER_ASSOCIATING
EMBER_SCANNING

Definition at line 623 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberCounterType#

EmberCounterType

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

Enumerator
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

Definition at line 646 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberPhyType#

EmberPhyType

Define the PHY configuration of connect stack.

Enumerator
EMBER_RADIO_CONFIGURATOR
EMBER_STANDARD_PHY_2_4GHZ
EMBER_STANDARD_PHY_915MHZ
EMBER_STANDARD_PHY_863MHZ

Definition at line 765 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberCalType#

EmberCalType

Define the type of calibration requested.

Enumerator
EMBER_CAL_TEMP_VCO
EMBER_CAL_IRCAL
EMBER_CAL_ALL

Definition at line 788 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberTxStreamParameters#

EmberTxStreamParameters

Radio Stream mode.

Enumerator
TX_STREAM_PN9
TX_STREAM_CW

Definition at line 874 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

Typedef Documentation#

EmberEUI64#

typedef uint8_t EmberEUI64[EUI64_SIZE] [EUI64_SIZE]

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


Definition at line 73 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberNodeId#

typedef uint16_t EmberNodeId

IEEE 802.15.4 node ID. Also known as short address.


Definition at line 78 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberPanId#

typedef uint16_t EmberPanId

IEEE 802.15.4 PAN ID.


Definition at line 83 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberMessageLength#

typedef uint16_t EmberMessageLength

Message length in bytes.


Definition at line 219 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberTaskId#

typedef uint8_t EmberTaskId

An identifier for a task.


Definition at line 540 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

Event#

typedef struct Event_s Event

Definition at line 567 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EventQueue#

typedef struct EventQueue_s EventQueue

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


Definition at line 575 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberEventData#

typedef const struct EmberEventData_S EmberEventData

Complete events with a control and a handler procedure.

An application typically creates an array of events along with their handlers. The main loop passes the array to emberRunEvents() to call the handlers of any events whose time has arrived.


Definition at line 606 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h

EmberBuffer#

typedef uint16_t EmberBuffer

Buffers used by the memory buffer system.


Definition at line 759 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/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]key

A Pointer to an EmberKeyData structure.

Returns

  • uint8_t* Returns a pointer to the first byte of the key data.


Definition at line 511 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/stack/include/ember-types.h