Ember Common Data Types#

See ember-types.h for source code.

Modules#

EmberReleaseTypeStruct

EmberVersion

EmberZigbeeNetwork

EmberNetworkInitStruct

EmberBeaconSurvey

EmberBeaconData

EmberBeaconIterator

EmberNetworkParameters

EmberMultiPhyRadioParameters

EmberApsFrame

EmberChildData

EmberBindingTableEntry

EmberNeighborTableEntry

EmberRouteTableEntry

EmberMulticastTableEntry

EmberMultiprotocolPriorities

EmberCounterInfo

EmberExtraCounterInfo

EmberEventControl

EmberEventData

EmberTaskControl

EmberKeyData

EmberCertificateData

EmberPublicKeyData

EmberPrivateKeyData

EmberSmacData

EmberSignatureData

EmberMessageDigest

EmberAesMmoHashContext

EmberCertificate283k1Data

EmberPublicKey283k1Data

EmberPrivateKey283k1Data

EmberSignature283k1Data

EmberInitialSecurityState

EmberCurrentSecurityState

EmberTransientKeyData

EmberKeyStruct

EmberMfgSecurityStruct

EmberDutyCycleLimits

EmberPerDeviceDutyCycle

sl_nwk_packet_exchange_t

EmberMacFilterMatchStruct

SourceRouteTableEntry

EmberBeaconClassificationParams

EmberTokenInfo

EmberTokenData

EmberTagMapEntry

aps_duplicate_msg_entry

Miscellaneous Ember Types#

enum
EMBER_VERSION_TYPE_PRE_RELEASE = 0x00
EMBER_VERSION_TYPE_ALPHA_1 = 0x11
EMBER_VERSION_TYPE_ALPHA_2 = 0x12
EMBER_VERSION_TYPE_ALPHA_3 = 0x13
EMBER_VERSION_TYPE_BETA_1 = 0x21
EMBER_VERSION_TYPE_BETA_2 = 0x22
EMBER_VERSION_TYPE_BETA_3 = 0x23
EMBER_VERSION_TYPE_GA = 0xAA
}

Type of Ember software version.

enum
EMBER_STACK_PROFILE_NONE = 0x00
EMBER_STACK_PROFILE_ZIGBEE_PRO = 0x02
}

EmberReleaseTypeStruct Data that relates release type to the correct string.

enum
EMBER_SECURITY_LEVEL_NONE = 0x00
EMBER_SECURITY_LEVEL_Z3 = 0x05
}

EmberReleaseTypeStruct Data that relates release type to the correct string.

enum
EMBER_ZIGBEE_LEAVE_AND_REJOIN = 0x80
EMBER_ZIGBEE_LEAVE_WITHOUT_REJOIN = 0x00
}

EmberReleaseTypeStruct Data that relates release type to the correct string.

enum
EMBER_LEAVE_REASON_NONE = 0
EMBER_LEAVE_DUE_TO_NWK_LEAVE_MESSAGE = 1
EMBER_LEAVE_DUE_TO_APS_REMOVE_MESSAGE = 2
EMBER_LEAVE_DUE_TO_ZDO_LEAVE_MESSAGE = 3
EMBER_LEAVE_DUE_TO_ZLL_TOUCHLINK = 4
EMBER_LEAVE_DUE_TO_APP_EVENT_1 = 0xFF
}

EmberReleaseTypeStruct Data that relates release type to the correct string.

typedef uint16_t

16-bit ZigBee network address.

typedef uint16_t

802.15.4 PAN ID.

A structure containing the version information.

#define
EMBER_RELEASE_TYPE_TO_STRING_STRUCT_DATA undefined

EmberReleaseTypeStruct Data that relates release type to the correct string.

#define
EUI64_SIZE 8

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

#define
EXTENDED_PAN_ID_SIZE 8

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

#define
EMBER_ENCRYPTION_KEY_SIZE 16

Size of an encryption key in bytes (16).

#define
EMBER_CERTIFICATE_SIZE 48

Size of Implicit Certificates used for Certificate-based Key Exchange(CBKE).

#define
EMBER_PUBLIC_KEY_SIZE 22

Size of Public Keys used in Elliptical Cryptography ECMQV algorithms.

#define
EMBER_PRIVATE_KEY_SIZE 21

Size of Private Keys used in Elliptical Cryptography ECMQV algorithms.

#define
EMBER_SMAC_SIZE 16

Size of the SMAC used in Elliptical Cryptography ECMQV algorithms.

#define
EMBER_SIGNATURE_SIZE 42

Size of the DSA signature used in Elliptical Cryptography Digital Signature Algorithms.

#define
EMBER_AES_HASH_BLOCK_SIZE 16

The size of AES-128 MMO hash is 16-bytes. This is defined in the core. ZigBee specification.

#define
EMBER_CERTIFICATE_283K1_SIZE 74

Size of Implicit Certificates used for Certificate Based Key Exchange using the ECC283K1 curve in bytes.

#define
EMBER_PUBLIC_KEY_283K1_SIZE 37

Size of Public Keys used in SECT283k1 Elliptical Cryptography ECMQV algorithms.

#define
EMBER_PRIVATE_KEY_283K1_SIZE 36

Size of Private Keys used SECT283k1 in Elliptical Cryptography ECMQV algorithms.

#define
EMBER_SIGNATURE_283K1_SIZE 72

Size of the DSA signature used in SECT283k1 Elliptical Cryptography Digital Signature Algorithms.

#define
__EMBERSTATUS_TYPE__

Return type for Ember functions.

#define
NULL_BUFFER 0x0000u

EUI 64-bit ID (an IEEE address).

#define
EMBER_MAX_802_15_4_CHANNEL_NUMBER 26

The maximum 802.15.4 channel number is 26.

#define
EMBER_MIN_802_15_4_CHANNEL_NUMBER 11

The minimum 2.4GHz 802.15.4 channel number is 11.

#define
EMBER_MIN_SUBGHZ_CHANNEL_NUMBER 0

The minimum SubGhz channel number is 0.

#define
EMBER_ACTIVE_SCAN_DURATION 3
#define
EMBER_SUB_GHZ_SCAN_DURATION 5

The SubGhz scan duration is 5.

#define
EMBER_NUM_802_15_4_CHANNELS (EMBER_MAX_802_15_4_CHANNEL_NUMBER - EMBER_MIN_802_15_4_CHANNEL_NUMBER + 1)

There are sixteen 802.15.4 channels.

#define
EMBER_ALL_802_15_4_CHANNELS_MASK 0x07FFF800UL

A bitmask to scan all 2.4 GHz 802.15.4 channels.

#define
EMBER_MAX_CHANNELS_PER_PAGE 27

The maximum channels per page are 27 page bits 31...27, channel bits 26...0.

#define
EMBER_ALL_SUBGHZ_CHANNELS_MASK_FOR_PAGES_28_30_31 0x07FFFFFFUL

Sub-GHz channel bitmasks for pages 28, 30, 31.

#define
EMBER_MAX_SUBGHZ_CHANNEL_NUMBER_ON_PAGES_28_30_31 26

The maximum SubGhz channel number on pages 28, 30, 31 is 26.

#define
EMBER_ALL_SUBGHZ_CHANNELS_MASK_FOR_PAGES_29 0x1FF

SubGhz channel bitmasks for page 29.

#define
EMBER_MAX_SUBGHZ_CHANNEL_NUMBER_ON_PAGE_29 8

The maximum SubGhz channel number on page 29 is 8.

#define
EMBER_MIN_SUGBHZ_PAGE_NUMBER 28

The minimum SubGhz page number is 28.

#define
EMBER_MAX_SUGBHZ_PAGE_NUMBER 31

The maximum SubGhz page number is 31.

#define
EMBER_ALL_CHANNEL_PAGE_MASK 0xF8000000UL

A bitmask for the channel page within a channel mask.

#define
EMBER_PAGE_CHANNEL_MASK_FROM_CHANNEL_MASK (page, mask)

A page-channel mask for a given page and channel mask.

#define
EMBER_PAGE_CHANNEL_MASK_FROM_CHANNEL_NUMBER (page, channel)

A page-channel mask for a given page and channel.

#define
EMBER_ZIGBEE_COORDINATOR_ADDRESS 0x0000u

The network ID of the coordinator in a ZigBee network is 0x0000.

#define
EMBER_NULL_NODE_ID 0xFFFFu

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

#define
EMBER_NO_CHANNEL_PAGE_IN_USE 0

The channel page value used to indicate just the 2.4GHz channels.

#define
EMBER_NULL_EUI64 { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }

A distinguished EUI64 that is commonly used to indicate an invalid EUI64.

#define
EMBER_NULL_BINDING 0xFFu

A distinguished binding index used to indicate the absence of a binding.

#define
EMBER_TABLE_ENTRY_UNUSED_NODE_ID 0xFFFFu

A distinguished network ID that will never be assigned to any node.

#define
EMBER_MULTICAST_NODE_ID 0xFFFEu

A distinguished network ID that will never be assigned to any node. This value is returned when getting the remote node ID from the binding table and the given binding table index refers to a multicast binding entry.

#define
EMBER_UNKNOWN_NODE_ID 0xFFFDu

A distinguished network ID that will never be assigned to any node. This value is used when getting the remote node ID from the address or binding tables. It indicates that the address or binding table entry is currently in use but the node ID corresponding to the EUI64 in the table is currently unknown.

#define
EMBER_DISCOVERY_ACTIVE_NODE_ID 0xFFFCu

A distinguished network ID that will never be assigned to any node. This value is used when getting the remote node ID from the address or binding tables. It indicates that the address or binding table entry is currently in use and network address discovery is underway.

#define
EMBER_NULL_ADDRESS_TABLE_INDEX 0xFFu

A distinguished address table index used to indicate the absence of an address table entry.

#define
EMBER_ZDO_ENDPOINT 0u

The endpoint where the ZigBee Device Object (ZDO) resides.

#define
EMBER_BROADCAST_ENDPOINT 0xFFu

The broadcast endpoint, as defined in the ZigBee spec.

#define
EMBER_GP_ENDPOINT 0xF2u

The GP endpoint, as defined in the ZigBee spec.

#define
EMBER_ZDO_PROFILE_ID 0x0000u

The profile ID used by the ZigBee Device Object (ZDO).

#define
EMBER_WILDCARD_PROFILE_ID 0xFFFFu

The profile ID used to address all the public profiles.

#define
EMBER_MAXIMUM_STANDARD_PROFILE_ID 0x7FFFu

The maximum value for a profile ID in the standard profile range.

#define
EMBER_BROADCAST_TABLE_TIMEOUT_QS (20 * 4)

The broadcast table entry timeout, which specifies, in quarter seconds, how long an entry persists in the local device's broadcast table.

#define
EMBER_MANUFACTURER_ID 0x1002u

Ember's Manufacturer ID.

#define
EMBER_NULL_NETWORK_INDEX 0xFFu

An invalid network index.

#define
EMBER_DC_LIMIT_USE_DEFAULT 0

Use Ember's default duty cycle limit configurations.

Ember Concentrator Types#

enum
EMBER_ASSUME_TRUST_CENTER_IS_NOT_A_CONCENTRATOR = 0
EMBER_ASSUME_TRUST_CENTER_IS_LOW_RAM_CONCENTRATOR = 1
EMBER_ASSUME_TRUST_CENTER_IS_HIGH_RAM_CONCENTRATOR = 2
}

To configure non trust center node to assume a concentrator type of the trust center it join to, until it receive many-to-one route request from the trust center. For the trust center node, concentrator type is configured from the concentrator plugin. The stack by default assumes trust center be a low RAM concentrator that make other devices send route record to the trust center even without receiving a many-to-one route request. The assumed concentrator type can be changed by setting appropriate value to emberAssumedTrustCenterConcentratorType.

enum
EMBER_USE_PRECONFIGURED_KEY = 0
EMBER_SEND_KEY_IN_THE_CLEAR
EMBER_DENY_JOIN
EMBER_NO_ACTION
EMBER_ALLOW_REJOINS_ONLY
}

The decision made by the Trust Center when a node attempts to join.

enum
EMBER_STANDARD_SECURITY_SECURED_REJOIN = 0
EMBER_STANDARD_SECURITY_UNSECURED_JOIN = 1
EMBER_DEVICE_LEFT = 2
EMBER_STANDARD_SECURITY_UNSECURED_REJOIN = 3
}

The Status of the Update Device message sent to the Trust Center. The device may have joined or rejoined insecurely, rejoined securely, or left. MAC Security has been deprecated and therefore there is no secure join.

enum
EMBER_REJOIN_REASON_NONE = 0
EMBER_REJOIN_DUE_TO_NWK_KEY_UPDATE = 1
EMBER_REJOIN_DUE_TO_LEAVE_MESSAGE = 2
EMBER_REJOIN_DUE_TO_NO_PARENT = 3
EMBER_REJOIN_DUE_TO_ZLL_TOUCHLINK = 4
EMBER_REJOIN_DUE_TO_END_DEVICE_REBOOT = 5
EMBER_REJOIN_DUE_TO_APP_EVENT_5 = 0xFB
EMBER_REJOIN_DUE_TO_APP_EVENT_4 = 0xFC
EMBER_REJOIN_DUE_TO_APP_EVENT_3 = 0xFD
EMBER_REJOIN_DUE_TO_APP_EVENT_2 = 0xFE
EMBER_REJOIN_DUE_TO_APP_EVENT_1 = 0xFF
}

Notes the last rejoin reason.

enum
EMBER_INPUT_CLUSTER_LIST = 0
EMBER_OUTPUT_CLUSTER_LIST = 1
}

Defines the lists of clusters that must be provided for each endpoint.

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
EMBER_USE_MAC_ASSOCIATION = 0
EMBER_USE_NWK_REJOIN = 1
EMBER_USE_NWK_REJOIN_HAVE_NWK_KEY = 2
EMBER_USE_CONFIGURED_NWK_STATE = 3
EMBER_USE_NWK_COMMISSIONING_JOIN = 4
EMBER_USE_NWK_COMMISSIONING_REJOIN = 5
EMBER_USE_NWK_COMMISSIONING_REJOIN_HAVE_NWK_KEY = 6
}

The type of method used for joining.

enum
EMBER_COUNTER_MAC_RX_BROADCAST = 0
EMBER_COUNTER_MAC_TX_BROADCAST = 1
EMBER_COUNTER_MAC_RX_UNICAST = 2
EMBER_COUNTER_MAC_TX_UNICAST_SUCCESS = 3
EMBER_COUNTER_MAC_TX_UNICAST_RETRY = 4
EMBER_COUNTER_MAC_TX_UNICAST_FAILED = 5
EMBER_COUNTER_APS_DATA_RX_BROADCAST = 6
EMBER_COUNTER_APS_DATA_TX_BROADCAST = 7
EMBER_COUNTER_APS_DATA_RX_UNICAST = 8
EMBER_COUNTER_APS_DATA_TX_UNICAST_SUCCESS = 9
EMBER_COUNTER_APS_DATA_TX_UNICAST_RETRY = 10
EMBER_COUNTER_APS_DATA_TX_UNICAST_FAILED = 11
EMBER_COUNTER_ROUTE_DISCOVERY_INITIATED = 12
EMBER_COUNTER_NEIGHBOR_ADDED = 13
EMBER_COUNTER_NEIGHBOR_REMOVED = 14
EMBER_COUNTER_NEIGHBOR_STALE = 15
EMBER_COUNTER_JOIN_INDICATION = 16
EMBER_COUNTER_CHILD_REMOVED = 17
EMBER_COUNTER_ASH_OVERFLOW_ERROR = 18
EMBER_COUNTER_ASH_FRAMING_ERROR = 19
EMBER_COUNTER_ASH_OVERRUN_ERROR = 20
EMBER_COUNTER_NWK_FRAME_COUNTER_FAILURE = 21
EMBER_COUNTER_APS_FRAME_COUNTER_FAILURE = 22
EMBER_COUNTER_ASH_XOFF = 23
EMBER_COUNTER_APS_LINK_KEY_NOT_AUTHORIZED = 24
EMBER_COUNTER_NWK_DECRYPTION_FAILURE = 25
EMBER_COUNTER_APS_DECRYPTION_FAILURE = 26
EMBER_COUNTER_ALLOCATE_PACKET_BUFFER_FAILURE = 27