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:
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.
Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
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#
Macros#
Size of an extended PAN identifier in bytes (8).
Size of EUI64 (an IEEE address) in bytes (8).
Size of an encryption key in bytes (16).
A distinguished network ID that will never be assigned to any node. Used to indicate the absence of a node ID.
Broadcast address.
Special short address indicating the node should use long addressing as source address.
The coordinator short address.
Enumerations#
Define the possible types of nodes and the roles that a node might play in a network.
Defines the possible join states for a node.
Child flags.
Message options.
802.15.4 addressing mode.
Either marks an event as inactive or specifies the units for the event execution time.
Define tasks that prevent the stack from sleeping.
Define the event counters that can be requested from the application using emberGetCounter()
Define the PHY configuration of connect stack.
Define the type of calibration requested.
Typedefs#
EUI 64-bit ID (IEEE 802.15.4 long address).
IEEE 802.15.4 node ID. Also known as short address.
IEEE 802.15.4 PAN ID.
Message length in bytes.
An identifier for a task.
An event queue is currently just a list of events ordered by execution time.
Complete events with a control and a handler procedure.
Buffers used by the memory buffer system.
Functions#
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_SIZEValue:
8
Size of an extended PAN identifier in bytes (8).
58
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EUI64_SIZE#
#define EUI64_SIZEValue:
8
Size of EUI64 (an IEEE address) in bytes (8).
63
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EMBER_ENCRYPTION_KEY_SIZE#
#define EMBER_ENCRYPTION_KEY_SIZEValue:
16
Size of an encryption key in bytes (16).
68
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EMBER_NULL_NODE_ID#
#define EMBER_NULL_NODE_IDValue:
0xFFFFu
A distinguished network ID that will never be assigned to any node. Used to indicate the absence of a node ID.
89
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EMBER_BROADCAST_ADDRESS#
#define EMBER_BROADCAST_ADDRESSValue:
0xFFFF
Broadcast address.
92
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EMBER_USE_LONG_ADDRESS#
#define EMBER_USE_LONG_ADDRESSValue:
0xFFFE
Special short address indicating the node should use long addressing as source address.
96
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EMBER_COORDINATOR_ADDRESS#
#define EMBER_COORDINATOR_ADDRESSValue:
0x0000
The coordinator short address.
99
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EMBER_CAL_INVALID_VALUE#
#define EMBER_CAL_INVALID_VALUEValue:
(0xFFFFFFFF)
804
of file /mnt/raid/workspaces/ws.r4wf6JzLX/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 | 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. |
106
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EmberNetworkStatus#
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. |
EMBER_RADIO_TEST | The node is currently using its radio for test |
162
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EmberChildFlags#
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. |
EMBER_CHILD_FLAG_DEVICE_IS_EXTENDED_BIT | The child is connected through range extender. |
198
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EmberMessageOptions#
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. |
225
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EmberMacAddressMode#
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. |
338
of file /mnt/raid/workspaces/ws.r4wf6JzLX/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 | 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. |
521
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
@2#
@2
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. |
623
of file /mnt/raid/workspaces/ws.r4wf6JzLX/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 | 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. |
646
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EmberPhyType#
EmberPhyType
Define the PHY configuration of connect stack.
Enumerator | |
---|---|
EMBER_RADIO_CONFIGURATOR | Connect uses radio configurator PHY |
EMBER_STANDARD_PHY_2_4GHZ | Connect is configured to use only 2.4GHz standard PHY |
EMBER_STANDARD_PHY_915MHZ | Connect is configured to use only 915MHz standard PHY |
EMBER_STANDARD_PHY_863MHZ | Connect is configured to use only 863MHz standard PHY |
765
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EmberCalType#
EmberCalType
Define the type of calibration requested.
Enumerator | |
---|---|
EMBER_CAL_TEMP_VCO | Temperature calibration |
EMBER_CAL_IRCAL | Image Rejection calibration |
EMBER_CAL_ALL | Both calibrations |
788
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EmberTxStreamParameters#
EmberTxStreamParameters
Radio Stream mode.
Enumerator | |
---|---|
TX_STREAM_PN9 | Pseudo random PN9 byte sequence |
TX_STREAM_CW | An unmodulated carrier wave |
874
of file /mnt/raid/workspaces/ws.r4wf6JzLX/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).
73
of file /mnt/raid/workspaces/ws.r4wf6JzLX/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.
78
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EmberPanId#
typedef uint16_t EmberPanId
IEEE 802.15.4 PAN ID.
83
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EmberMessageLength#
typedef uint16_t EmberMessageLength
Message length in bytes.
219
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EmberTaskId#
typedef uint8_t EmberTaskId
An identifier for a task.
540
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
Event#
typedef struct Event_s Event
567
of file /mnt/raid/workspaces/ws.r4wf6JzLX/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.
575
of file /mnt/raid/workspaces/ws.r4wf6JzLX/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.
606
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h
EmberBuffer#
typedef uint16_t EmberBuffer
Buffers used by the memory buffer system.
759
of file /mnt/raid/workspaces/ws.r4wf6JzLX/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.
[in] | key | A Pointer to an EmberKeyData structure. |
Returns
uint8_t* Returns a pointer to the first byte of the key data.
511
of file /mnt/raid/workspaces/ws.r4wf6JzLX/overlay/gsdk/protocol/flex/stack/include/ember-types.h