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

EmberReleaseTypeStruct Data that relates release type to the correct string.

#define

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

#define

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

#define

Size of an encryption key in bytes (16).

#define

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

#define

Size of Public Keys used in Elliptical Cryptography ECMQV algorithms.

#define

Size of Private Keys used in Elliptical Cryptography ECMQV algorithms.

#define

Size of the SMAC used in Elliptical Cryptography ECMQV algorithms.

#define

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

#define

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

#define

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

#define

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

#define

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

#define

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

#define

Return type for Ember functions.

#define
NULL_BUFFER 0x0000u

EUI 64-bit ID (an IEEE address).

#define

The maximum 802.15.4 channel number is 26.

#define

The minimum 2.4GHz 802.15.4 channel number is 11.

#define

The minimum SubGhz channel number is 0.

#define

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

A bitmask to scan all 2.4 GHz 802.15.4 channels.

#define

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

#define

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

#define

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

#define

SubGhz channel bitmasks for page 29.

#define

The maximum SubGhz channel number on page 29 is 8.

#define

The minimum SubGhz page number is 28.

#define

The maximum SubGhz page number is 31.

#define

A bitmask for the channel page within a channel mask.

#define

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

#define

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

#define

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

#define

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

#define

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

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

#define

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

#define

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

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

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

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

#define

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

#define

The broadcast endpoint, as defined in the ZigBee spec.

#define

The GP endpoint, as defined in the ZigBee spec.

#define

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

#define

The profile ID used to address all the public profiles.

#define

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

#define

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

#define

Ember's Manufacturer ID.

#define

An invalid network index.

#define

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.