Modules#
EmberBeaconClassificationParams
Ember Common Data Types#
See ember-types.h for source code.
Miscellaneous Ember Types#
Type of Ember software version.
EmberReleaseTypeStruct Data that relates release type to the correct string.
EmberReleaseTypeStruct Data that relates release type to the correct string.
EmberReleaseTypeStruct Data that relates release type to the correct string.
EmberReleaseTypeStruct Data that relates release type to the correct string.
16-bit ZigBee network address.
802.15.4 PAN ID.
A structure containing the version information.
EmberReleaseTypeStruct Data that relates release type to the correct string.
Size of EUI64 (an IEEE address) in bytes (8).
Size of an extended PAN identifier in bytes (8).
Size of an encryption key in bytes (16).
Size of Implicit Certificates used for Certificate-based Key Exchange(CBKE).
Size of Public Keys used in Elliptical Cryptography ECMQV algorithms.
Size of Private Keys used in Elliptical Cryptography ECMQV algorithms.
Size of the SMAC used in Elliptical Cryptography ECMQV algorithms.
Size of the DSA signature used in Elliptical Cryptography Digital Signature Algorithms.
The size of AES-128 MMO hash is 16-bytes. This is defined in the core. ZigBee specification.
Size of Implicit Certificates used for Certificate Based Key Exchange using the ECC283K1 curve in bytes.
Size of Public Keys used in SECT283k1 Elliptical Cryptography ECMQV algorithms.
Size of Private Keys used SECT283k1 in Elliptical Cryptography ECMQV algorithms.
Size of the DSA signature used in SECT283k1 Elliptical Cryptography Digital Signature Algorithms.
Return type for Ember functions.
EUI 64-bit ID (an IEEE address).
The maximum 802.15.4 channel number is 26.
The minimum 2.4GHz 802.15.4 channel number is 11.
The minimum SubGhz channel number is 0.
The SubGhz scan duration is 5.
There are sixteen 802.15.4 channels.
A bitmask to scan all 2.4 GHz 802.15.4 channels.
The maximum channels per page are 27 page bits 31...27, channel bits 26...0.
Sub-GHz channel bitmasks for pages 28, 30, 31.
The maximum SubGhz channel number on pages 28, 30, 31 is 26.
SubGhz channel bitmasks for page 29.
The maximum SubGhz channel number on page 29 is 8.
The minimum SubGhz page number is 28.
The maximum SubGhz page number is 31.
A bitmask for the channel page within a channel mask.
A page-channel mask for a given page and channel mask.
A page-channel mask for a given page and channel.
The network ID of the coordinator in a ZigBee network is 0x0000.
A distinguished network ID that will never be assigned to any node. It is used to indicate the absence of a node ID.
The channel page value used to indicate just the 2.4GHz channels.
A distinguished EUI64 that is commonly used to indicate an invalid EUI64.
A distinguished binding index used to indicate the absence of a binding.
A distinguished network ID that will never be assigned to any node.
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.
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.
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.
A distinguished address table index used to indicate the absence of an address table entry.
The endpoint where the ZigBee Device Object (ZDO) resides.
The broadcast endpoint, as defined in the ZigBee spec.
The profile ID used by the ZigBee Device Object (ZDO).
The profile ID used to address all the public profiles.
The maximum value for a profile ID in the standard profile range.
The broadcast table entry timeout, which specifies, in quarter seconds, how long an entry persists in the local device's broadcast table.
Ember's Manufacturer ID.
An invalid network index.
Use Ember's default duty cycle limit configurations.
ZigBee Broadcast Addresses#
ZigBee specifies three different broadcast addresses that reach different collections of nodes. Broadcasts are normally sent only to routers. Broadcasts can also be forwarded to end devices, either all of them or only those that do not sleep. Broadcasting to end devices is both significantly more resource-intensive and significantly less reliable than broadcasting to routers.
Ember Concentrator Types#
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.
The decision made by the Trust Center when a node attempts to join.
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.
Notes the last rejoin reason.
Defines the lists of clusters that must be provided for each endpoint.
Either marks an event as inactive or specifies the units for the event execution time.
The type of method used for joining.
Defines the events reported to the application by the emberCounterHandler().
txPowerModes for emberSetTxPowerMode and mfglibSetPower#
The application should call emberSetTxPowerMode() with the txPowerMode parameter set to this value to disable all power mode options, resulting in normal power mode and bi-directional RF transmitter output.
The application should call emberSetTxPowerMode() with the txPowerMode parameter set to this value to enable boost power mode.
The application should call emberSetTxPowerMode() with the txPowerMode parameter set to this value to enable the alternate transmitter output.
The application should call emberSetTxPowerMode() with the txPowerMode parameter set to this value to enable both boost mode and the alternate transmitter output.
Counters Request Definitions#
This is the Initial Security Bitmask that controls the use of various security features.
This is the Extended Security Bitmask that controls the use of various extended security features.
This is the Current Security Bitmask that details the use of various security features.
This bitmask describes the presence of fields within the EmberKeyStruct.
This denotes the type of security key.
This denotes the status of an attempt to establish a key with another device.
This enumeration determines whether or not a Trust Center answers trust center link key requests.
This enumeration determines whether or not a Trust Center answers app link key requests.
This is a ZigBee application profile ID that has been assigned to Ember Corporation.
The types of MAC passthrough messages that an application may receive. This is a bitmask.
This function allows access to the actual key data bytes of the EmberKeyData structure.
This function allows access to the actual certificate data bytes of the EmberCertificateData structure.
This function allows access to the actual public key data bytes of the EmberPublicKeyData structure.
This function allows access to the actual private key data bytes of the EmberPrivateKeyData structure.
This function allows access to the actual SMAC (Secured Message Authentication Code) data of the EmberSmacData structure.
This function allows access to the actual ECDSA signature data of the EmberSignatureData structure.
This function allows access to the actual certificate data bytes of the Ember283k1CertificateData structure.
This function allows access to the actual public key data bytes of the Ember283k1PublicKeyData structure.
This function allows access to the actual private key data bytes of the Ember283k1PrivateKeyData structure.
This function allows access to the actual ECDSA signature data of the Ember283k1SignatureData structure.
This is a ZigBee application profile ID that has been assigned to Ember Corporation.
Ember's first private profile ID.
Ember's last private profile ID.
This is an EmberInitialSecurityBitmask value but it does not actually set anything. It is the default mode used by the ZigBee Pro stack. It is defined here so that no legacy code is broken by referencing it.
The short address of the trust center. This address never changes dynamically.
This is the legacy name for the Distributed Trust Center Mode.
This is the legacy name for the Trust Center Global Link Key.
This magic number prevents accidentally changing the key settings. The emberSetMfgSecurityConfig() API will return EMBER_INVALID_CALL unless it is passed in.
ZDO response status.#
Most responses to ZDO commands contain a status byte. The meaning of this byte is defined by the ZigBee Device Profile.
Network and IEEE Address Request/Response#
Defines for ZigBee device profile cluster IDs follow. These include descriptions of the formats of the messages.Note that each message starts with a 1-byte transaction sequence number. This sequence number is used to match a response command frame to the request frame that it is replying to. The application shall maintain a 1-byte counter that is copied into this field and incremented by one for each command sent. When a value of 0xff is reached, the next command shall re-start the counter with a value of 0x00.Network request: <transaction sequence number: 1> <EUI64:8> <type:1> <start index:1>IEEE request: <transaction sequence number: 1> <node ID:2> <type:1> <start index:1> <type> = 0x00 single address response, ignore the start index = 0x01 extended response -> sends kid's IDs as wellResponse: <transaction sequence number: 1> <status:1> <EUI64:8> <node ID:2> <ID count:1> <start index:1> <child ID:2>*
Node Descriptor Request/Response#
Request: <transaction sequence number: 1> <node ID:2> Response: <transaction sequence number: 1> <status:1> <node ID:2>// <node descriptor: 13>//// Node Descriptor field is divided into subfields of bitmasks as follows:// (Note: All lengths below are given in bits rather than bytes.)// Logical Type: 3// Complex Descriptor Available: 1// User Descriptor Available: 1// (reserved/unused): 3// APS Flags: 3// Frequency Band: 5// MAC capability flags: 8// Manufacturer Code: 16// Maximum buffer size: 8// Maximum incoming transfer size: 16// Server mask: 16// Maximum outgoing transfer size: 16// Descriptor Capability Flags: 8// See ZigBee document 053474, Section 2.3.2.3 for more details.
Power Descriptor Request / Response#
Request: <transaction sequence number: 1> <node ID:2> Response: <transaction sequence number: 1> <status:1> <node ID:2> <current power mode, available power sources:1> <current power source, current power source level:1>// See ZigBee document 053474, Section 2.3.2.4 for more details.
Simple Descriptor Request / Response#
Request: <transaction sequence number: 1> <node ID:2> <endpoint:1>Response: <transaction sequence number: 1> <status:1> <node ID:2> <length:1> <endpoint:1> <app profile ID:2> <app device ID:2> <app device version, app flags:1> <input cluster count:1> <input cluster:2>* <output cluster count:1> <output cluster:2>*
Active Endpoints Request / Response#
Request: <transaction sequence number: 1> <node ID:2>Response: <transaction sequence number: 1> <status:1> <node ID:2> <endpoint count:1> <endpoint:1>*
Match Descriptors Request / Response#
Request: <transaction sequence number: 1> <node ID:2> <app profile ID:2> <input cluster count:1> <input cluster:2>* <output cluster count:1> <output cluster:2>*Response: <transaction sequence number: 1> <status:1> <node ID:2> <endpoint count:1> <endpoint:1>*
Discovery Cache Request / Response#
Request: <transaction sequence number: 1> <source node ID:2> <source EUI64:8>Response: <transaction sequence number: 1> <status (== EMBER_ZDP_SUCCESS):1>
End Device Announce and End Device Announce Response#
Request: <transaction sequence number: 1> <node ID:2> <EUI64:8> <capabilities:1>No response is sent.
System Server Discovery Request / Response#
This is broadcast and only servers which have matching services respond. The response contains the request services that the recipient provides.Request: <transaction sequence number: 1> <server mask:2>Response: <transaction sequence number: 1> <status (== EMBER_ZDP_SUCCESS):1> <server mask:2>
Parent Announce and Parent Announce Response#
This is broadcast and only servers which have matching children respond. The response contains the list of children that the recipient now holds.Request: <transaction sequence number: 1> <number of children:1> <child EUI64:8> <child Age:4>*Response: <transaction sequence number: 1> <number of children:1> <child EUI64:8> <child Age:4>*
ZDO server mask bits#
These are used in server discovery requests and responses.
Find Node Cache Request / Response#
This is broadcast and only discovery servers which have the information for the device of interest, or the device of interest itself, respond. The requesting device can then direct any service discovery requests to the responder.Request: <transaction sequence number: 1> <device of interest ID:2> <d-of-i EUI64:8>Response: <transaction sequence number: 1> <responder ID:2> <device of interest ID:2> <d-of-i EUI64:8>
End Device Bind Request / Response#
Request: <transaction sequence number: 1> <node ID:2> <EUI64:8> <endpoint:1> <app profile ID:2> <input cluster count:1> <input cluster:2>* <output cluster count:1> <output cluster:2>*Response: <transaction sequence number: 1> <status:1>
Binding types and Request / Response#
Bind and unbind have the same formats. There are two possible formats, depending on whether the destination is a group address or a device address. Device addresses include an endpoint, groups don't.Request: <transaction sequence number: 1> <source EUI64:8> <source endpoint:1> <cluster ID:2> <destination address:3 or 10>Destination address: <0x01:1> <destination group:2>Or: <0x03:1> <destination EUI64:8> <destination endpoint:1>Response: <transaction sequence number: 1> <status:1>
LQI Table Request / Response#
Request: <transaction sequence number: 1> <start index:1>Response: <transaction sequence number: 1> <status:1> <neighbor table entries:1> <start index:1> <entry count:1> <entry:22>* <entry> = <extended PAN ID:8> <EUI64:8> <node ID:2> <device type, RX on when idle, relationship:1> <permit joining:1> <depth:1> <LQI:1>The device-type byte has the following fields: Name Mask Valuesdevice type 0x03 0x00 coordinator 0x01 router 0x02 end device 0x03 unknownrx mode 0x0C 0x00 off when idle 0x04 on when idle 0x08 unknownrelationship 0x70 0x00 parent 0x10 child 0x20 sibling 0x30 other 0x40 previous childreserved 0x10The permit-joining byte has the following fields Name Mask Valuespermit joining 0x03 0x00 not accepting join requests 0x01 accepting join requests 0x02 unknownreserved 0xFC
Routing Table Request / Response#
Request: <transaction sequence number: 1> <start index:1>Response: <transaction sequence number: 1> <status:1> <routing table entries:1> <start index:1> <entry count:1> <entry:5>* <entry> = <destination address:2> <status:1> <next hop:2>The status byte has the following fields: Name Mask Valuesstatus 0x07 0x00 active 0x01 discovery underway 0x02 discovery failed 0x03 inactive 0x04 validation underwayflags 0x38 0x08 memory constrained 0x10 many-to-one 0x20 route record requiredreserved 0xC0
Binding Table Request / Response#
Request: <transaction sequence number: 1> <start index:1>Response: <transaction sequence number: 1> <status:1> <binding table entries:1> <start index:1> <entry count:1> <entry:14/21>* <entry> = <source EUI64:8> <source endpoint:1> <cluster ID:2> <dest addr mode:1> <dest:2/8> <dest endpoint:0/1>If Dest. Address Mode = 0x03, then the Long Dest. Address will be used and Dest. endpoint will be included. If Dest. Address Mode = 0x01, then the Short Dest. Address will be used and there will be no Dest. endpoint.
Leave Request / Response#
Request: <transaction sequence number: 1> <EUI64:8> <flags:1> The flag bits are: 0x40 remove children 0x80 rejoinResponse: <transaction sequence number: 1> <status:1>
Permit Joining Request / Response#
Request: <transaction sequence number: 1> <duration:1> <permit authentication:1>Response: <transaction sequence number: 1> <status:1>
Network Update Request / Response#
Request: <transaction sequence number: 1> <scan channels:4> <duration:1> <count:0/1> <manager:0/2> If the duration is in 0x00 ... 0x05, 'count' is present but not 'manager'. Perform 'count' scans of the given duration on the given channels. If duration is 0xFE, 'channels' should have a single channel and 'count' and 'manager' are not present. Switch to the indicated channel. If duration is 0xFF, 'count' is not present. Set the active channels and the network manager ID to the values given. Unicast requests always get a response, which is INVALID_REQUEST if the duration is not a legal value.Response: <transaction sequence number: 1> <status:1> <scanned channels:4> <transmissions:2> <failures:2> <energy count:1> <energy:1>*
Unsupported#
Not mandatory and not supported.
ZDO configuration flags.#
Control which ZDO requests are passed to the application. These are normally controlled via the following configuration definitions:EMBER_APPLICATION_RECEIVES_SUPPORTED_ZDO_REQUESTS EMBER_APPLICATION_HANDLES_UNSUPPORTED_ZDO_REQUESTS EMBER_APPLICATION_HANDLES_ENDPOINT_ZDO_REQUESTS EMBER_APPLICATION_HANDLES_BINDING_ZDO_REQUESTSSee ember-configuration.h for more information.
Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.
Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.
Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.
Defines the entropy source used by the stack.
Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.
Defines the trust center APS encryption mode when sending a newer (alternate) network key to a device. The value settings below do not take effect when sending the initial network key during joining or rejoining.
Radio power mode.
Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.
Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.
Defines the maximum number of PHYs supported.
PHY index for 2.4 GHz radio interface, valid for simultaneous multi radio network.
PHY index for Sub-GHz radio interface, valid for simultaneous multi radio network.
Enumerations#
Defines the possible types of nodes and the roles that a node might play in a network.
The configuration advertised by the end device to the parent when joining/rejoining.
Defines the options that should be used when initializing the node's network configuration.
Options to allow/disallow rejoins using the default link key.
Options to use when sending a message.
Defines the possible incoming message types.
Defines the possible outgoing message types.
A type of command received by the stack.
indication of the action taken on a packet
A type of packet received by the stack.
Defines the possible join states for a node.
Type for a network scan.
Defines binding types.
Type of Ember keep alive method defining the keep alive message type that a parent accepts to prevent child aging. This is configured in a parent router and communicated and stored in an end-device.
Types of source route discovery modes used by the concentrator.
Packet transmit priorities in terms of getting into the MAC queue.
Policies for sending a route record to the concentrator.
Macros#
Returns true if nodeId (short address) is a broadcast address.
Miscellaneous Ember Types Documentation#
EmberVersionType#
EmberVersionType
Type of Ember software version.
Enumerator | |
---|---|
EMBER_VERSION_TYPE_PRE_RELEASE | |
EMBER_VERSION_TYPE_ALPHA_1 | |
EMBER_VERSION_TYPE_ALPHA_2 | |
EMBER_VERSION_TYPE_ALPHA_3 | |
EMBER_VERSION_TYPE_BETA_1 | |
EMBER_VERSION_TYPE_BETA_2 | |
EMBER_VERSION_TYPE_BETA_3 | |
EMBER_VERSION_TYPE_GA |
53
of file stack/include/ember-types.h
EmberStackProfile#
EmberStackProfile
EmberReleaseTypeStruct Data that relates release type to the correct string.
Enumerator | |
---|---|
EMBER_STACK_PROFILE_NONE | |
EMBER_STACK_PROFILE_ZIGBEE_PRO |
447
of file stack/include/ember-types.h
EmberSecurityLevel#
EmberSecurityLevel
EmberReleaseTypeStruct Data that relates release type to the correct string.
Enumerator | |
---|---|
EMBER_SECURITY_LEVEL_NONE | |
EMBER_SECURITY_LEVEL_Z3 |
458
of file stack/include/ember-types.h
EmberLeaveRequestFlags#
EmberLeaveRequestFlags
EmberReleaseTypeStruct Data that relates release type to the correct string.
Enumerator | |
---|---|
EMBER_ZIGBEE_LEAVE_AND_REJOIN | Leave and rejoin. |
EMBER_ZIGBEE_LEAVE_WITHOUT_REJOIN | Leave. |
469
of file stack/include/ember-types.h
EmberLeaveReason#
EmberLeaveReason
EmberReleaseTypeStruct Data that relates release type to the correct string.
Enumerator | |
---|---|
EMBER_LEAVE_REASON_NONE | |
EMBER_LEAVE_DUE_TO_NWK_LEAVE_MESSAGE | |
EMBER_LEAVE_DUE_TO_APS_REMOVE_MESSAGE | |
EMBER_LEAVE_DUE_TO_ZDO_LEAVE_MESSAGE | |
EMBER_LEAVE_DUE_TO_ZLL_TOUCHLINK | |
EMBER_LEAVE_DUE_TO_APP_EVENT_1 |
489
of file stack/include/ember-types.h
EmberMulticastId#
typedef uint16_t EmberMulticastId
16-bit ZigBee network address.
16-bit ZigBee multicast group identifier.
224
of file stack/include/ember-types.h
EmberDutyCycleHectoPct#
typedef uint16_t EmberDutyCycleHectoPct
802.15.4 PAN ID.
The percent of duty cycle for a limit.
Duty cycle, limits, and thresholds are reported in units of percent * 100 (i.e., 10000 = 100.00%, 1 = 0.01%).
237
of file stack/include/ember-types.h
emberVersion#
const EmberVersion emberVersion
A structure containing the version information.
115
of file stack/include/ember-types.h
ZigBee Broadcast Addresses Documentation#
Ember Concentrator Types Documentation#
EmberAssumeTrustCenterConcentratorType#
EmberAssumeTrustCenterConcentratorType
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.
Enumerator | |
---|---|
EMBER_ASSUME_TRUST_CENTER_IS_NOT_A_CONCENTRATOR | To assume trust center is not a concentrator. |
EMBER_ASSUME_TRUST_CENTER_IS_LOW_RAM_CONCENTRATOR | To assume trust center is a low RAM concentrator. |
EMBER_ASSUME_TRUST_CENTER_IS_HIGH_RAM_CONCENTRATOR | To assume trust center is a high RAM concentrator. |
1018
of file stack/include/ember-types.h
EmberJoinDecision#
EmberJoinDecision
The decision made by the Trust Center when a node attempts to join.
Enumerator | |
---|---|
EMBER_USE_PRECONFIGURED_KEY | Allow the node to join. The node has the key. |
EMBER_SEND_KEY_IN_THE_CLEAR | Allow the node to join. Send the key to the node. |
EMBER_DENY_JOIN | Deny join. |
EMBER_NO_ACTION | Take no action. |
EMBER_ALLOW_REJOINS_ONLY | Allow rejoins only. |
1036
of file stack/include/ember-types.h
EmberDeviceUpdate#
EmberDeviceUpdate
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.
Enumerator | |
---|---|
EMBER_STANDARD_SECURITY_SECURED_REJOIN | |
EMBER_STANDARD_SECURITY_UNSECURED_JOIN | |
EMBER_DEVICE_LEFT | |
EMBER_STANDARD_SECURITY_UNSECURED_REJOIN |
1071
of file stack/include/ember-types.h
EmberRejoinReason#
EmberRejoinReason
Notes the last rejoin reason.
Enumerator | |
---|---|
EMBER_REJOIN_REASON_NONE | |
EMBER_REJOIN_DUE_TO_NWK_KEY_UPDATE | |
EMBER_REJOIN_DUE_TO_LEAVE_MESSAGE | |
EMBER_REJOIN_DUE_TO_NO_PARENT | |
EMBER_REJOIN_DUE_TO_ZLL_TOUCHLINK | |
EMBER_REJOIN_DUE_TO_END_DEVICE_REBOOT | |
EMBER_REJOIN_DUE_TO_APP_EVENT_5 | |
EMBER_REJOIN_DUE_TO_APP_EVENT_4 | |
EMBER_REJOIN_DUE_TO_APP_EVENT_3 | |
EMBER_REJOIN_DUE_TO_APP_EVENT_2 | |
EMBER_REJOIN_DUE_TO_APP_EVENT_1 |
1096
of file stack/include/ember-types.h
EmberClusterListId#
EmberClusterListId
Defines the lists of clusters that must be provided for each endpoint.
Enumerator | |
---|---|
EMBER_INPUT_CLUSTER_LIST | Input clusters the endpoint will accept. |
EMBER_OUTPUT_CLUSTER_LIST | Output clusters the endpoint can send. |
1127
of file 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 approximate milliseconds each). |
EMBER_EVENT_MINUTE_TIME | The execution time is in 'binary' minutes (65536 approximate milliseconds each). |
EMBER_EVENT_ZERO_DELAY | The event is scheduled to run at the earliest opportunity. |
1144
of file stack/include/ember-types.h
EmberJoinMethod#
EmberJoinMethod
The type of method used for joining.
Enumerator | |
---|---|
EMBER_USE_MAC_ASSOCIATION | Devices normally use MAC association to join a network, which respects the "permit joining" flag in the MAC beacon. This value should be used by default. |
EMBER_USE_NWK_REJOIN | For networks where the "permit joining" flag is never turned on, devices will need to use a ZigBee NWK Rejoin. This value causes the rejoin to be sent withOUT NWK security and the Trust Center will be asked to send the NWK key to the device. The NWK key sent to the device can be encrypted with the device's corresponding Trust Center link key. That is determined by the EmberJoinDecision on the Trust Center returned by the emberTrustCenterJoinHandler(). |
EMBER_USE_NWK_REJOIN_HAVE_NWK_KEY | |
EMBER_USE_CONFIGURED_NWK_STATE | For networks where all network and security information is known ahead of time, a router device may be commissioned such that it does not need to send any messages to begin communicating on the network. |
1168
of file stack/include/ember-types.h
EmberCounterType#
EmberCounterType
Defines the events reported to the application by the emberCounterHandler().
Enumerator | |
---|---|
EMBER_COUNTER_MAC_RX_BROADCAST | The MAC received a broadcast. |
EMBER_COUNTER_MAC_TX_BROADCAST | The MAC transmitted a broadcast. |
EMBER_COUNTER_MAC_RX_UNICAST | The MAC received a unicast. |
EMBER_COUNTER_MAC_TX_UNICAST_SUCCESS | The MAC successfully transmitted a unicast. |
EMBER_COUNTER_MAC_TX_UNICAST_RETRY | The MAC retried a unicast. This is a placeholder and is not used by the emberCounterHandler() callback. Instead, the number of MAC retries are returned in the data parameter of the callback for the |
EMBER_COUNTER_MAC_TX_UNICAST_FAILED | The MAC unsuccessfully transmitted a unicast. |
EMBER_COUNTER_APS_DATA_RX_BROADCAST | The APS layer received a data broadcast. |
EMBER_COUNTER_APS_DATA_TX_BROADCAST | The APS layer transmitted a data broadcast. |
EMBER_COUNTER_APS_DATA_RX_UNICAST | The APS layer received a data unicast. |
EMBER_COUNTER_APS_DATA_TX_UNICAST_SUCCESS | The APS layer successfully transmitted a data unicast. |
EMBER_COUNTER_APS_DATA_TX_UNICAST_RETRY | The APS layer retried a data unicast. This is a placeholder and is not used by the |
EMBER_COUNTER_APS_DATA_TX_UNICAST_FAILED | The APS layer unsuccessfully transmitted a data unicast. |
EMBER_COUNTER_ROUTE_DISCOVERY_INITIATED | The network layer successfully submitted a new route discovery to the MAC. |
EMBER_COUNTER_NEIGHBOR_ADDED | An entry was added to the neighbor table. |
EMBER_COUNTER_NEIGHBOR_REMOVED | An entry was removed from the neighbor table. |
EMBER_COUNTER_NEIGHBOR_STALE | A neighbor table entry became stale because it had not been heard from. |
EMBER_COUNTER_JOIN_INDICATION | A node joined or rejoined to the network via this node. |
EMBER_COUNTER_CHILD_REMOVED | An entry was removed from the child table. |
EMBER_COUNTER_ASH_OVERFLOW_ERROR | EZSP-UART only. An overflow error occurred in the UART. |
EMBER_COUNTER_ASH_FRAMING_ERROR | EZSP-UART only. A framing error occurred in the UART. |
EMBER_COUNTER_ASH_OVERRUN_ERROR | EZSP-UART only. An overrun error occurred in the UART. |
EMBER_COUNTER_NWK_FRAME_COUNTER_FAILURE | A message was dropped at the Network layer because the NWK frame counter was not higher than the last message seen from that source. |
EMBER_COUNTER_APS_FRAME_COUNTER_FAILURE | A message was dropped at the APS layer because the APS frame counter was not higher than the last message seen from that source. |
EMBER_COUNTER_ASH_XOFF | EZSP-UART only. An XOFF was transmitted by the UART. |
EMBER_COUNTER_APS_LINK_KEY_NOT_AUTHORIZED | An encrypted message was dropped by the APS layer because the sender's key has not been authenticated. As a result, the key is not authorized for use in APS data messages. |
EMBER_COUNTER_NWK_DECRYPTION_FAILURE | A NWK encrypted message was received but dropped because decryption failed. |
EMBER_COUNTER_APS_DECRYPTION_FAILURE | An APS encrypted message was received but dropped because decryption failed. |
EMBER_COUNTER_ALLOCATE_PACKET_BUFFER_FAILURE | The number of failures to allocate a set of linked packet buffers. This doesn't necessarily mean that the packet buffer count was 0 at the time, but that the number requested was greater than the number free. |
EMBER_COUNTER_RELAYED_UNICAST | The number of relayed unicast packets. |
EMBER_COUNTER_PHY_TO_MAC_QUEUE_LIMIT_REACHED | The number of times a packet was dropped due to reaching the preset PHY-to-MAC queue limit (emMaxPhyToMacQueueLength). The limit will determine how many messages are accepted by the PHY between calls to emberTick(). After that limit is reached, packets will be dropped. The number of dropped packets will be recorded in this counter. NOTE: For each call to emberCounterHandler() there may be more than 1 packet that was dropped due to the limit reached. The actual number of packets dropped will be returned in the 'data' parameter passed to that function. |
EMBER_COUNTER_PACKET_VALIDATE_LIBRARY_DROPPED_COUNT | The number of times a packet was dropped due to the packet-validate library checking a packet and rejecting it due to length or other formatting problems. |
EMBER_COUNTER_TYPE_NWK_RETRY_OVERFLOW | The number of times the NWK retry queue is full and a new message failed to be added. |
EMBER_COUNTER_PHY_CCA_FAIL_COUNT | The number of times the PHY layer was unable to transmit due to a failed CCA. |
EMBER_COUNTER_BROADCAST_TABLE_FULL | The number of times a NWK broadcast was dropped because the broadcast table was full. |
EMBER_COUNTER_PTA_LO_PRI_REQUESTED | The number of times a low-priority packet traffic arbitration request has been made. |
EMBER_COUNTER_PTA_HI_PRI_REQUESTED | The number of times a high-priority packet traffic arbitration request has been made. |
EMBER_COUNTER_PTA_LO_PRI_DENIED | The number of times a low-priority packet traffic arbitration request has been denied. |
EMBER_COUNTER_PTA_HI_PRI_DENIED | The number of times a high-priority packet traffic arbitration request has been denied. |
EMBER_COUNTER_PTA_LO_PRI_TX_ABORTED | The number of times a low-priority packet traffic arbitration transmission has been aborted. |
EMBER_COUNTER_PTA_HI_PRI_TX_ABORTED | The number of times a high-priority packet traffic arbitration transmission has been aborted. |
EMBER_COUNTER_ADDRESS_CONFLICT_SENT | The number of times an address conflict has caused node_id change, and an address conflict error is sent |
EMBER_COUNTER_TYPE_COUNT | A placeholder giving the number of Ember counter types. |
1409
of file stack/include/ember-types.h
EmberTaskId#
typedef uint8_t EmberTaskId
brief An identifier for a task.
1649
of file stack/include/ember-types.h
txPowerModes for emberSetTxPowerMode and mfglibSetPower Documentation#
Counters Request Definitions Documentation#
EmberInitialSecurityBitmask#
EmberInitialSecurityBitmask
This is the Initial Security Bitmask that controls the use of various security features.
Enumerator | |
---|---|
EMBER_DISTRIBUTED_TRUST_CENTER_MODE | Enables Distributed Trust Center Mode for the device forming the network. (Previously known as EMBER_NO_TRUST_CENTER_MODE) |
EMBER_TRUST_CENTER_GLOBAL_LINK_KEY | Enables a Global Link Key for the Trust Center. All nodes will share the same Trust Center Link Key. |
EMBER_PRECONFIGURED_NETWORK_KEY_MODE | Enables devices that perform MAC Association with a pre-configured Network Key to join the network. It is only set on the Trust Center. |
EMBER_HAVE_TRUST_CENTER_EUI64 | This denotes that the EmberInitialSecurityState::preconfiguredTrustCenterEui64 has a value in it containing the trust center EUI64. The device will only join a network and accept commands from a trust center with that EUI64. Normally this bit is NOT set and the EUI64 of the trust center is learned during the join process. When commissioning a device to join onto an existing network that is using a trust center and without sending any messages, this bit must be set and the field EmberInitialSecurityState::preconfiguredTrustCenterEui64 must be populated with the appropriate EUI64. |
EMBER_TRUST_CENTER_USES_HASHED_LINK_KEY | This denotes that the EmberInitialSecurityState::preconfiguredKey is not the actual Link Key but a Root Key known only to the Trust Center. It is hashed with the IEEE Address of the destination device to create the actual Link Key used in encryption. This is bit is only used by the Trust Center. The joining device need not set this. |
EMBER_HAVE_PRECONFIGURED_KEY | This denotes that the EmberInitialSecurityState::preconfiguredKey element has valid data that should be used to configure the initial security state. |
EMBER_HAVE_NETWORK_KEY | This denotes that the EmberInitialSecurityState::networkKey element has valid data that should be used to configure the initial security state. |
EMBER_GET_LINK_KEY_WHEN_JOINING | This denotes to a joining node that it should attempt to acquire a Trust Center Link Key during joining. This is necessary if the device does not have a pre-configured key, or wants to obtain a new one (since it may be using a well-known key during joining). |
EMBER_REQUIRE_ENCRYPTED_KEY | This denotes that a joining device should only accept an encrypted network key from the Trust Center (using its pre-configured key). A key sent in-the-clear by the Trust Center will be rejected and the join will fail. This option is only valid when using a pre-configured key. |
EMBER_NO_FRAME_COUNTER_RESET | This denotes whether the device should NOT reset its outgoing frame counters (both NWK and APS) when emberSetInitialSecurityState() is called. Normally it is advised to reset the frame counter before joining a new network. However, when a device is joining to the same network again (but not using emberRejoinNetwork()), it should keep the NWK and APS frame counters stored in its tokens. NOTE: The application is allowed to dynamically change the behavior via EMBER_EXT_NO_FRAME_COUNTER_RESET field. |
EMBER_GET_PRECONFIGURED_KEY_FROM_INSTALL_CODE | This denotes that the device should obtain its pre-configured key from an installation code stored in the manufacturing token. The token contains a value that will be hashed to obtain the actual pre-configured key. If that token is not valid, the call to emberSetInitialSecurityState() will fail. |
1877
of file stack/include/ember-types.h
EmberExtendedSecurityBitmask#
EmberExtendedSecurityBitmask
This is the Extended Security Bitmask that controls the use of various extended security features.
Enumerator | |
---|---|
EMBER_SECURE_NETWORK_KEY_ROTATION | This denotes that the network key update can only happen if the network key update request is unicast and encrypted i.e. broadcast network key update requests will not be processed if bit 1 is set |
EMBER_JOINER_GLOBAL_LINK_KEY | This denotes whether a joiner node (router or end-device) uses a Global Link Key or a Unique Link Key. |
EMBER_EXT_NO_FRAME_COUNTER_RESET | This denotes whether the device's outgoing frame counter is allowed to be reset during forming or joining. If the flag is set, the outgoing frame counter is not allowed to be reset. If the flag is not set, the frame counter is allowed to be reset. |
EMBER_NWK_LEAVE_WITHOUT_REJOIN_NOT_ALLOWED | This denotes whether a device should discard or accept network leave without rejoin commands. |
EMBER_NWK_LEAVE_REQUEST_NOT_ALLOWED | This denotes whether a router node should discard or accept network Leave Commands. |
1969
of file stack/include/ember-types.h
EmberCurrentSecurityBitmask#
EmberCurrentSecurityBitmask
This is the Current Security Bitmask that details the use of various security features.
Enumerator | |
---|---|
EMBER_STANDARD_SECURITY_MODE_ | This denotes that the device is running in a network with ZigBee Standard Security. |
EMBER_DISTRIBUTED_TRUST_CENTER_MODE_ | This denotes that the device is running in a network without a centralized Trust Center. |
EMBER_TRUST_CENTER_GLOBAL_LINK_KEY_ | This denotes that the device has a Global Link Key. The Trust Center Link Key is the same across multiple nodes. |
EMBER_HAVE_TRUST_CENTER_LINK_KEY | This denotes that the node has a Trust Center Link Key. |
EMBER_TRUST_CENTER_USES_HASHED_LINK_KEY_ | This denotes that the Trust Center is using a Hashed Link Key. |
2083
of file stack/include/ember-types.h
EmberKeyStructBitmask#
EmberKeyStructBitmask
This bitmask describes the presence of fields within the EmberKeyStruct.
Enumerator | |
---|---|
EMBER_KEY_HAS_SEQUENCE_NUMBER | This indicates that the key has a sequence number associated with it. (i.e., a Network Key). |
EMBER_KEY_HAS_OUTGOING_FRAME_COUNTER | This indicates that the key has an outgoing frame counter and the corresponding value within the EmberKeyStruct has been populated. |
EMBER_KEY_HAS_INCOMING_FRAME_COUNTER | This indicates that the key has an incoming frame counter and the corresponding value within the EmberKeyStruct has been populated. |
EMBER_KEY_HAS_PARTNER_EUI64 | This indicates that the key has an associated Partner EUI64 address and the corresponding value within the EmberKeyStruct has been populated. |
EMBER_KEY_IS_AUTHORIZED | This indicates the key is authorized for use in APS data messages. If the key is not authorized for use in APS data messages it has not yet gone through a key agreement protocol, such as CBKE (i.e., ECC). |
EMBER_KEY_PARTNER_IS_SLEEPY | This indicates that the partner associated with the link is a sleepy end device. This bit is set automatically if the local device hears a device announce from the partner indicating it is not an 'RX on when idle' device. |
EMBER_UNCONFIRMED_TRANSIENT_KEY | This indicates that the transient key which is being added is unconfirmed. This bit is set when we add a transient key while the EmberTcLinkKeyRequestPolicy is EMBER_ALLOW_TC_LINK_KEY_REQUEST_AND_GENERATE_NEW_KEY |
2133
of file stack/include/ember-types.h
EmberKeyType#
EmberKeyType
This denotes the type of security key.
Enumerator | |
---|---|
EMBER_TRUST_CENTER_LINK_KEY | This denotes that the key is a Trust Center Link Key. |
EMBER_CURRENT_NETWORK_KEY | This denotes that the key is the Current Network Key. |
EMBER_NEXT_NETWORK_KEY | This denotes that the key is the Next Network Key. |
EMBER_APPLICATION_LINK_KEY | This denotes that the key is an Application Link Key. |
2179
of file stack/include/ember-types.h
EmberKeyStatus#
EmberKeyStatus
This denotes the status of an attempt to establish a key with another device.
Enumerator | |
---|---|
EMBER_KEY_STATUS_NONE | |
EMBER_APP_LINK_KEY_ESTABLISHED | |
EMBER_TRUST_CENTER_LINK_KEY_ESTABLISHED | |
EMBER_KEY_ESTABLISHMENT_TIMEOUT | |
EMBER_KEY_TABLE_FULL | |
EMBER_TC_RESPONDED_TO_KEY_REQUEST | |
EMBER_TC_APP_KEY_SENT_TO_REQUESTER | |
EMBER_TC_RESPONSE_TO_KEY_REQUEST_FAILED | |
EMBER_TC_REQUEST_KEY_TYPE_NOT_SUPPORTED | |
EMBER_TC_NO_LINK_KEY_FOR_REQUESTER | |
EMBER_TC_REQUESTER_EUI64_UNKNOWN | |
EMBER_TC_RECEIVED_FIRST_APP_KEY_REQUEST | |
EMBER_TC_TIMEOUT_WAITING_FOR_SECOND_APP_KEY_REQUEST | |
EMBER_TC_NON_MATCHING_APP_KEY_REQUEST_RECEIVED | |
EMBER_TC_FAILED_TO_SEND_APP_KEYS | |
EMBER_TC_FAILED_TO_STORE_APP_KEY_REQUEST | |
EMBER_TC_REJECTED_APP_KEY_REQUEST | |
EMBER_TC_FAILED_TO_GENERATE_NEW_KEY | |
EMBER_TC_FAILED_TO_SEND_TC_KEY | |
EMBER_TRUST_CENTER_IS_PRE_R21 | |
EMBER_TC_REQUESTER_VERIFY_KEY_TIMEOUT | |
EMBER_TC_REQUESTER_VERIFY_KEY_FAILURE | |
EMBER_TC_REQUESTER_VERIFY_KEY_SUCCESS | |
EMBER_VERIFY_LINK_KEY_FAILURE | |
EMBER_VERIFY_LINK_KEY_SUCCESS |
2225
of file stack/include/ember-types.h
EmberTcLinkKeyRequestPolicy#
EmberTcLinkKeyRequestPolicy
This enumeration determines whether or not a Trust Center answers trust center link key requests.
Enumerator | |
---|---|
EMBER_DENY_TC_LINK_KEY_REQUESTS | |
EMBER_ALLOW_TC_LINK_KEY_REQUEST_AND_SEND_CURRENT_KEY | |
EMBER_ALLOW_TC_LINK_KEY_REQUEST_AND_GENERATE_NEW_KEY |
2277
of file stack/include/ember-types.h
EmberAppLinkKeyRequestPolicy#
EmberAppLinkKeyRequestPolicy
This enumeration determines whether or not a Trust Center answers app link key requests.
Enumerator | |
---|---|
EMBER_DENY_APP_LINK_KEY_REQUESTS | |
EMBER_ALLOW_APP_LINK_KEY_REQUEST |
2297
of file stack/include/ember-types.h
EmberKeySettings#
EmberKeySettings
This is a ZigBee application profile ID that has been assigned to Ember Corporation.
It is used to send for sending messages that have a specific, non-standard, interaction with the Ember stack. Its only current use is for stack counters requests.
Enumerator | |
---|---|
EMBER_KEY_PERMISSIONS_NONE | |
EMBER_KEY_PERMISSIONS_READING_ALLOWED | |
EMBER_KEY_PERMISSIONS_HASHING_ALLOWED |
2427
of file stack/include/ember-types.h
EmberMacPassthroughType#
EmberMacPassthroughType
The types of MAC passthrough messages that an application may receive. This is a bitmask.
Enumerator | |
---|---|
EMBER_MAC_PASSTHROUGH_NONE | No MAC passthrough messages. |
EMBER_MAC_PASSTHROUGH_SE_INTERPAN | SE InterPAN messages. |
EMBER_MAC_PASSTHROUGH_EMBERNET | EmberNet and first generation (v1) standalone bootloader messages. |
EMBER_MAC_PASSTHROUGH_EMBERNET_SOURCE | EmberNet messages filtered by their source address. |
EMBER_MAC_PASSTHROUGH_APPLICATION | Application-specific passthrough messages. |
EMBER_MAC_PASSTHROUGH_CUSTOM | Custom inter-pan filter. |
2526
of file stack/include/ember-types.h
emberKeyContents#
uint8_t* emberKeyContents (EmberKeyData * key)
This function allows access to the actual key data bytes of the EmberKeyData structure.
Type | Direction | Argument Name | Description |
---|---|---|---|
EmberKeyData * | N/A | key | A pointer to an EmberKeyData structure. |
Returns
uint8_t* Returns a pointer to the first byte of the Key data.
2315
of file stack/include/ember-types.h
emberCertificateContents#
uint8_t* emberCertificateContents (EmberCertificateData * cert)
This function allows access to the actual certificate data bytes of the EmberCertificateData structure.
Type | Direction | Argument Name | Description |
---|---|---|---|
EmberCertificateData * | N/A | cert | A pointer to an EmberCertificateData structure. |
Returns
uint8_t* Returns a pointer to the first byte of the certificate data.
2328
of file stack/include/ember-types.h
emberPublicKeyContents#
uint8_t* emberPublicKeyContents (EmberPublicKeyData * key)
This function allows access to the actual public key data bytes of the EmberPublicKeyData structure.
Type | Direction | Argument Name | Description |
---|---|---|---|
EmberPublicKeyData * | N/A | key | A pointer to an EmberPublicKeyData structure. |
Returns
uint8_t* Returns a pointer to the first byte of the public key data.
2341
of file stack/include/ember-types.h
emberPrivateKeyContents#
uint8_t* emberPrivateKeyContents (EmberPrivateKeyData * key)
This function allows access to the actual private key data bytes of the EmberPrivateKeyData structure.
Type | Direction | Argument Name | Description |
---|---|---|---|
EmberPrivateKeyData * | N/A | key | A pointer to an EmberPrivateKeyData structure. |
Returns
uint8_t* Returns a pointer to the first byte of the private key data.
2354
of file stack/include/ember-types.h
emberSmacContents#
uint8_t* emberSmacContents (EmberSmacData * key)
This function allows access to the actual SMAC (Secured Message Authentication Code) data of the EmberSmacData structure.
Type | Direction | Argument Name | Description |
---|---|---|---|
EmberSmacData * | N/A | key |
2364
of file stack/include/ember-types.h
emberSignatureContents#
uint8_t* emberSignatureContents (EmberSignatureData * sig)
This function allows access to the actual ECDSA signature data of the EmberSignatureData structure.
Type | Direction | Argument Name | Description |
---|---|---|---|
EmberSignatureData * | N/A | sig |
2373
of file stack/include/ember-types.h
emberCertificate283k1Contents#
uint8_t* emberCertificate283k1Contents (EmberCertificate283k1Data * cert)
This function allows access to the actual certificate data bytes of the Ember283k1CertificateData structure.
Type | Direction | Argument Name | Description |
---|---|---|---|
EmberCertificate283k1Data * | N/A | cert | A pointer to an ::Ember283k1CertificateData structure. |
Returns
uint8_t* Returns a pointer to the first byte of the certificate data.
2386
of file stack/include/ember-types.h
emberPublicKey283k1Contents#
uint8_t* emberPublicKey283k1Contents (EmberPublicKey283k1Data * key)
This function allows access to the actual public key data bytes of the Ember283k1PublicKeyData structure.
Type | Direction | Argument Name | Description |
---|---|---|---|
EmberPublicKey283k1Data * | N/A | key | A pointer to an Ember283k1PublicKeyData structure. |
Returns
uint8_t* Returns a pointer to the first byte of the public key data.
2399
of file stack/include/ember-types.h
emberPrivateKey283k1Contents#
uint8_t* emberPrivateKey283k1Contents (EmberPrivateKey283k1Data * key)
This function allows access to the actual private key data bytes of the Ember283k1PrivateKeyData structure.
Type | Direction | Argument Name | Description |
---|---|---|---|
EmberPrivateKey283k1Data * | N/A | key | A pointer to an Ember283k1PrivateKeyData structure. |
Returns
uint8_t* Returns a pointer to the first byte of the private key data.
2412
of file stack/include/ember-types.h
ember283k1SignatureContents#
uint8_t* ember283k1SignatureContents (Ember283k1SignatureData * sig)
This function allows access to the actual ECDSA signature data of the Ember283k1SignatureData structure.
Type | Direction | Argument Name | Description |
---|---|---|---|
Ember283k1SignatureData * | N/A | sig |
2421
of file stack/include/ember-types.h
ZDO response status. Documentation#
EmberZdoStatus#
EmberZdoStatus
Enumerator | |
---|---|
EMBER_ZDP_SUCCESS | |
EMBER_ZDP_INVALID_REQUEST_TYPE | |
EMBER_ZDP_DEVICE_NOT_FOUND | |
EMBER_ZDP_INVALID_ENDPOINT | |
EMBER_ZDP_NOT_ACTIVE | |
EMBER_ZDP_NOT_SUPPORTED | |
EMBER_ZDP_TIMEOUT | |
EMBER_ZDP_NO_MATCH | |
EMBER_ZDP_NO_ENTRY | |
EMBER_ZDP_NO_DESCRIPTOR | |
EMBER_ZDP_INSUFFICIENT_SPACE | |
EMBER_ZDP_NOT_PERMITTED | |
EMBER_ZDP_TABLE_FULL | |
EMBER_ZDP_NOT_AUTHORIZED | |
EMBER_ZDP_DEVICE_BINDING_TABLE_FULL | |
EMBER_ZDP_INVALID_INDEX | |
EMBER_NWK_ALREADY_PRESENT | |
EMBER_NWK_TABLE_FULL | |
EMBER_NWK_UNKNOWN_DEVICE |
2572
of file stack/include/ember-types.h
Network and IEEE Address Request/Response Documentation#
Node Descriptor Request/Response Documentation#
Power Descriptor Request / Response Documentation#
Simple Descriptor Request / Response Documentation#
Active Endpoints Request / Response Documentation#
Match Descriptors Request / Response Documentation#
Discovery Cache Request / Response Documentation#
End Device Announce and End Device Announce Response Documentation#
System Server Discovery Request / Response Documentation#
Parent Announce and Parent Announce Response Documentation#
ZDO server mask bits Documentation#
EmberZdoServerMask#
EmberZdoServerMask
Enumerator | |
---|---|
EMBER_ZDP_PRIMARY_TRUST_CENTER | |
EMBER_ZDP_SECONDARY_TRUST_CENTER | |
EMBER_ZDP_PRIMARY_BINDING_TABLE_CACHE | |
EMBER_ZDP_SECONDARY_BINDING_TABLE_CACHE | |
EMBER_ZDP_PRIMARY_DISCOVERY_CACHE | |
EMBER_ZDP_SECONDARY_DISCOVERY_CACHE | |
EMBER_ZDP_NETWORK_MANAGER |
2784
of file stack/include/ember-types.h
Find Node Cache Request / Response Documentation#
End Device Bind Request / Response Documentation#
Binding types and Request / Response Documentation#
LQI Table Request / Response Documentation#
Routing Table Request / Response Documentation#
Binding Table Request / Response Documentation#
Leave Request / Response Documentation#
Permit Joining Request / Response Documentation#
Network Update Request / Response Documentation#
Unsupported Documentation#
ZDO configuration flags. Documentation#
EmberZdoConfigurationFlags#
EmberZdoConfigurationFlags
Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.
Enumerator | |
---|---|
EMBER_APP_RECEIVES_SUPPORTED_ZDO_REQUESTS | |
EMBER_APP_HANDLES_UNSUPPORTED_ZDO_REQUESTS | |
EMBER_APP_HANDLES_ZDO_ENDPOINT_REQUESTS | |
EMBER_APP_HANDLES_ZDO_BINDING_REQUESTS |
3066
of file stack/include/ember-types.h
EmberMultiPhyNwkConfig#
EmberMultiPhyNwkConfig
Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.
Enumerator | |
---|---|
EMBER_MULTI_PHY_ROUTERS_ALLOWED | |
EMBER_MULTI_PHY_BROADCASTS_ENABLED | |
EMBER_MULTI_PHY_DISABLED |
3094
of file stack/include/ember-types.h
@0#
@0
Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.
Enumerator | |
---|---|
PRIORITIZE_BEACONS_BASED_ON_PARENT_CLASSIFICATION | |
PRIORITIZE_BEACONS_BASED_ON_TC_CONNECTVITY | |
TC_CONNECTIVITY | |
LONG_UPTIME | |
BAD_PARENT_CONNECTIVITY | |
EMBER_OUTGOING_MESSAGES | Messages are waiting for transmission. |
EMBER_INCOMING_MESSAGES | One or more incoming messages are being 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 (EMBER_COORDINATOR, EMBER_ROUTER, or EMBER_END_DEVICE), the radio is always on. |
EMBER_TRANSPORT_ACTIVE | The transport layer has messages awaiting an ACK. |
EMBER_APS_LAYER_ACTIVE | The ZigBee APS layer has messages awaiting an ACK. |
EMBER_ASSOCIATING | The node is currently trying to associate with a ZigBee PRO network. |
EMBER_ZLL_TOUCH_LINKING | The node is currently touch linking. |
EMBER_NETWORK_TIMEOUT_REQUEST | Network Timeout Request Event. |
EMBER_SEND_ORPHAN_NOTIFICATION | Sending Orphan Notification Event. |
EMBER_MAC_DATA_POLL_SUPER_RETRY | MAC Data Poll Super Retry Event . |
3137
of file stack/include/ember-types.h
EmberEntropySource#
EmberEntropySource
Defines the entropy source used by the stack.
Enumerator | |
---|---|
EMBER_ENTROPY_SOURCE_ERROR | |
EMBER_ENTROPY_SOURCE_RADIO | |
EMBER_ENTROPY_SOURCE_MBEDTLS_TRNG | |
EMBER_ENTROPY_SOURCE_MBEDTLS |
3154
of file stack/include/ember-types.h
@1#
@1
Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.
Enumerator | |
---|---|
EMBER_POLL_TIMEOUT_10_SECONDS | |
EMBER_POLL_TIMEOUT_2_MINUTES | |
EMBER_POLL_TIMEOUT_4_MINUTES | |
EMBER_POLL_TIMEOUT_8_MINUTES | |
EMBER_POLL_TIMEOUT_16_MINUTES | |
EMBER_POLL_TIMEOUT_32_MINUTES | |
EMBER_POLL_TIMEOUT_64_MINUTES | |
EMBER_POLL_TIMEOUT_128_MINUTES | |
EMBER_POLL_TIMEOUT_256_MINUTES | |
EMBER_POLL_TIMEOUT_512_MINUTES | |
EMBER_POLL_TIMEOUT_1024_MINUTES | |
EMBER_POLL_TIMEOUT_2048_MINUTES | |
EMBER_POLL_TIMEOUT_4096_MINUTES | |
EMBER_POLL_TIMEOUT_8192_MINUTES | |
EMBER_POLL_TIMEOUT_16384_MINUTES |
3166
of file stack/include/ember-types.h
EmberTcApsEncryptMode#
EmberTcApsEncryptMode
Defines the trust center APS encryption mode when sending a newer (alternate) network key to a device. The value settings below do not take effect when sending the initial network key during joining or rejoining.
Enumerator | |
---|---|
TC_APS_ENCRYPT_DEFAULT | Default: don't encrypt broadcasts, encrypt unicasts |
TC_APS_ENCRYPT_ENABLE | Encrypt both broadcasts and unicasts |
TC_APS_ENCRYPT_DISABLE | Do not encrypt broadcasts and unicasts |
3190
of file stack/include/ember-types.h
EmberRadioPowerMode#
typedef uint8_t EmberRadioPowerMode
Radio power mode.
3130
of file stack/include/ember-types.h
Enumeration Documentation#
EmberNodeType#
EmberNodeType
Defines the possible types of nodes and the roles that a node might play in a network.
Enumerator | |
---|---|
EMBER_UNKNOWN_DEVICE | The device is not joined. |
EMBER_COORDINATOR | Will relay messages and can act as a parent to other nodes. |
EMBER_ROUTER | Will relay messages and can act as a parent to other nodes. |
EMBER_END_DEVICE | Communicates only with its parent and will not relay messages. |
EMBER_SLEEPY_END_DEVICE | An end device whose radio can be turned off to save power. The application must call emberPollForData() to receive messages. |
EMBER_WIREFREE_INITIATOR_DEVICE | Sleepy end device which transmits with wake up frames (CSL). |
EMBER_WIREFREE_TARGET_DEVICE | Sleepy end device which duty cycles the radio Rx (CSL). |
545
of file stack/include/ember-types.h
EmberEndDeviceConfiguration#
EmberEndDeviceConfiguration
The configuration advertised by the end device to the parent when joining/rejoining.
Enumerator | |
---|---|
EMBER_END_DEVICE_CONFIG_NONE | |
EMBER_END_DEVICE_CONFIG_PERSIST_DATA_ON_PARENT |
573
of file stack/include/ember-types.h
EmberNetworkInitBitmask#
EmberNetworkInitBitmask
Defines the options that should be used when initializing the node's network configuration.
Enumerator | |
---|---|
EMBER_NETWORK_INIT_NO_OPTIONS | |
EMBER_NETWORK_INIT_PARENT_INFO_IN_TOKEN | The Parent Node ID and EUI64 are stored in a token. This prevents the need to perform an Orphan scan on startup. |
EMBER_NETWORK_INIT_END_DEVICE_REJOIN_ON_REBOOT | Z3 compliant end devices on a network must send a rejoin request on reboot. |
600
of file stack/include/ember-types.h
EmberApsRejoinMode#
EmberApsRejoinMode
Options to allow/disallow rejoins using the default link key.
Enumerator | |
---|---|
NO_REJOIN | |
REJOIN_ANY_LINK_KEY | |
REJOIN_NON_DEFAULT_LINK_KEY |
669
of file stack/include/ember-types.h
EmberApsOption#
EmberApsOption
Options to use when sending a message.
The discover-route, APS-retry, and APS-indirect options may be used together. Poll response cannot be combined with any other options.
Enumerator | |
---|---|
EMBER_APS_OPTION_NONE | No options. |
EMBER_APS_OPTION_DSA_SIGN | This signs the application layer message body (APS Frame not included) and appends the ECDSA signature to the end of the message, which is needed by Smart Energy applications and requires the CBKE and ECC libraries. The emberDsaSignHandler() function is called after DSA signing is complete but before the message has been sent by the APS layer. Note that when passing a buffer to the stack for DSA signing, the final byte in the buffer has a special significance as an indicator of how many leading bytes should be ignored for signature purposes. See the API documentation of emberDsaSign() or the dsaSign EZSP command for more details about this requirement. |
EMBER_APS_OPTION_ENCRYPTION | Send the message using APS Encryption using the Link Key shared with the destination node to encrypt the data at the APS Level. |
EMBER_APS_OPTION_RETRY | Resend the message using the APS retry mechanism. This option and the enable route discovery option must be enabled for an existing route to be repaired automatically. |
EMBER_APS_OPTION_ENABLE_ROUTE_DISCOVERY | Send the message with the NWK 'enable route discovery' flag, which causes a route discovery to be initiated if no route to the destination is known. Note that in the mesh stack, this option and the APS retry option must be enabled an existing route to be repaired automatically. |
EMBER_APS_OPTION_FORCE_ROUTE_DISCOVERY | Send the message with the NWK 'force route discovery' flag, which causes a route discovery to be initiated even if one is known. |
EMBER_APS_OPTION_SOURCE_EUI64 | Include the source EUI64 in the network frame. |
EMBER_APS_OPTION_DESTINATION_EUI64 | Include the destination EUI64 in the network frame. |
EMBER_APS_OPTION_ENABLE_ADDRESS_DISCOVERY | Send a ZDO request to discover the node ID of the destination if it is not already known. |
EMBER_APS_OPTION_POLL_RESPONSE | This message is being sent in response to a call to emberPollHandler(). It causes the message to be sent immediately instead of being queued up until the next poll from the (end device) destination. |
EMBER_APS_OPTION_ZDO_RESPONSE_REQUIRED | This incoming message is a valid ZDO request and the application is responsible for sending a ZDO response. This flag is used only within emberIncomingMessageHandler() when EMBER_APPLICATION_RECEIVES_UNSUPPORTED_ZDO_REQUESTS is defined. |
EMBER_APS_OPTION_FRAGMENT | This message is part of a fragmented message. This option may only be set for unicasts. The groupId field gives the index of this fragment in the low-order byte. If the low-order byte is zero this is the first fragment and the high-order byte contains the number of fragments in the message. |
687
of file stack/include/ember-types.h
EmberIncomingMessageType#
EmberIncomingMessageType
Defines the possible incoming message types.
Enumerator | |
---|---|
EMBER_INCOMING_UNICAST | Unicast. |
EMBER_INCOMING_UNICAST_REPLY | Unicast reply. |
EMBER_INCOMING_MULTICAST | Multicast. |
EMBER_INCOMING_MULTICAST_LOOPBACK | Multicast sent by the local device. |
EMBER_INCOMING_BROADCAST | Broadcast. |
EMBER_INCOMING_BROADCAST_LOOPBACK | Broadcast sent by the local device. |
758
of file stack/include/ember-types.h
EmberOutgoingMessageType#
EmberOutgoingMessageType
Defines the possible outgoing message types.
Enumerator | |
---|---|
EMBER_OUTGOING_DIRECT | Unicast sent directly to an EmberNodeId. |
EMBER_OUTGOING_VIA_ADDRESS_TABLE | Unicast sent using an entry in the address table. |
EMBER_OUTGOING_VIA_BINDING | Unicast sent using an entry in the binding table. |
EMBER_OUTGOING_MULTICAST | Multicast message. This value is passed to emberMessageSentHandler() only. It may not be passed to emberSendUnicast(). |
EMBER_OUTGOING_MULTICAST_WITH_ALIAS | An aliased multicast message. This value is passed to emberMessageSentHandler() only. It may not be passed to emberSendUnicast(). |
EMBER_OUTGOING_BROADCAST_WITH_ALIAS | An aliased Broadcast message. This value is passed to emberMessageSentHandler() only. It may not be passed to emberSendUnicast(). |
EMBER_OUTGOING_BROADCAST | A broadcast message. This value is passed to emberMessageSentHandler() only. It may not be passed to emberSendUnicast(). |
782
of file stack/include/ember-types.h
EmberZigbeeCommandType#
EmberZigbeeCommandType
A type of command received by the stack.
This enumeration indicates which protocol layer in the Ember stack an incoming command was meant for, or from which protocol layer an outgoing command is being sent.
Enumerator | |
---|---|
EMBER_ZIGBEE_COMMAND_TYPE_RAW_MAC | Describes an 802.15.4 raw MAC message, unprocessed by the stack. |
EMBER_ZIGBEE_COMMAND_TYPE_MAC_COMMAND | Describes an 802.15.4 MAC layer command. |
EMBER_ZIGBEE_COMMAND_TYPE_NWK | Describes a ZigBee Network layer command. |
EMBER_ZIGBEE_COMMAND_TYPE_APS | Describes a ZigBee Application Support layer command. |
EMBER_ZIGBEE_COMMAND_TYPE_ZDO | Describes a ZigBee Device Object command. |
EMBER_ZIGBEE_COMMAND_TYPE_ZCL | Describes a ZigBee Cluster Library command. |
EMBER_ZIGBEE_COMMAND_TYPE_BEACON | Not a MAC command, but enumerated here for simplicity. |
816
of file stack/include/ember-types.h
EmberPacketAction#
EmberPacketAction
indication of the action taken on a packet
Enumerator | |
---|---|
EMBER_DROP_PACKET | |
EMBER_ACCEPT_PACKET | |
EMBER_MANGLE_PACKET | |
EMBER_ACCEPT_PACKET_OVERRIDE_SECURITY | This action allows unencrypted packets to pass through the stack. We only support this action in the network layer for now. WARNING: Using this packet handler action may have serious security implications |
EMBER_ACCEPT_PACKET_SKIP_NWK_CRYPTO | This action allows unencrypted incoming packets to skip NWK decryption as well as outgoing packets to skip NWK encryption irrespective of the encryption flag in the NWK header. We only support this action in the network layer for now. |
840
of file stack/include/ember-types.h
EmberZigbeePacketType#
EmberZigbeePacketType
A type of packet received by the stack.
This enum provides a way to indicate which protocol layer in the Ember stack an incoming packet is meant for, or from which protocol layer an outgoing command is being sent from.
Enumerator | |
---|---|
EMBER_ZIGBEE_PACKET_TYPE_RAW_MAC | Describes an 802.15.4 raw MAC message, unprocessed by the stack. |
EMBER_ZIGBEE_PACKET_TYPE_MAC_COMMAND | Describes an 802.15.4 MAC layer command. |
EMBER_ZIGBEE_PACKET_TYPE_NWK_DATA | Describes a ZigBee Network layer data message. |
EMBER_ZIGBEE_PACKET_TYPE_NWK_COMMAND | Describes a ZigBee Network layer command. |
EMBER_ZIGBEE_PACKET_TYPE_APS_DATA | Describes a ZigBee Application Support layer data message. |
EMBER_ZIGBEE_PACKET_TYPE_APS_COMMAND | Describes a ZigBee Application Support layer command. |
EMBER_ZIGBEE_PACKET_TYPE_ZDO | Describes a ZigBee Device Object command. |
EMBER_ZIGBEE_PACKET_TYPE_ZCL | Describes a ZigBee Cluster Library command. |
EMBER_ZIGBEE_PACKET_TYPE_BEACON | Distinguishing between raw MAC and beacons for simplicity |
EMBER_ZIGBEE_PACKET_TYPE_INTERPAN | Describes a ZigBee Light Link message. |
EMBER_ZIGBEE_PACKET_TYPE_NWK_DATA_PRE_DECRYPTION | Describes a ZigBee Network layer data message prior to (potential) decryption. |
EMBER_ZIGBEE_PACKET_TYPE_NWK_COMMAND_PRE_DECRYPTION | Describes a ZigBee Network layer command prior to (potential) decryption. |
869
of file 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_JOINED_NETWORK_NO_PARENT | The node is an end device joined to a network but its parent is not responding. |
EMBER_JOINED_NETWORK_WF_INITIATOR | The node is an Wire free initiator |
EMBER_JOINED_NETWORK_WF_TARGET | The node is an Wire free target |
EMBER_LEAVING_NETWORK | The node is in the process of leaving its current network. |
905
of file stack/include/ember-types.h
EmberNetworkScanType#
EmberNetworkScanType
Type for a network scan.
Enumerator | |
---|---|
EMBER_ENERGY_SCAN | An energy scan scans each channel for its RSSI value. |
EMBER_ACTIVE_SCAN | An active scan scans each channel for available networks. Use this scan type during network-steering to filter for beacons with available child capacity. The network found callback emberAfNetworkFoundCallback fires for all received beacons, while only beacons matching the capacity criteria and therefore viable for joining are cached |
EMBER_START_RADIO_OFF_SCAN | A fake scan that is used to turn off the radio. |
EMBER_STACK_GP_CHANNEL_DELIVERY_SCAN | A green power channel delivery scan. |
EMBER_ACTIVE_SCAN_ROUTER | An active scan scans each channel for available networks. Use this scan type during network-steering to filter for and cache beacons with available router capacity - Note that this scan type temporarily sets nodeType to EMBER_ROUTER for the duration of the scan process. The network found callback emberAfNetworkFoundCallback fires for all received beacons, while only beacons matching the capacity criteria and therefore viable for joining are cached |
EMBER_LAST_SCAN_TYPE |
942
of file stack/include/ember-types.h
EmberBindingType#
EmberBindingType
Defines binding types.
Enumerator | |
---|---|
EMBER_UNUSED_BINDING | A binding that is currently not in use. |
EMBER_UNICAST_BINDING | A unicast binding whose 64-bit identifier is the destination EUI64. |
EMBER_MANY_TO_ONE_BINDING | A unicast binding whose 64-bit identifier is the many-to-one destination EUI64. Route discovery should be disabled when sending unicasts via many-to-one bindings. |
EMBER_MULTICAST_BINDING | A multicast binding whose 64-bit identifier is the group address. This binding can be used to send messages to the group and to receive messages sent to the group. |
970
of file stack/include/ember-types.h
EmberKeepAliveMode#
EmberKeepAliveMode
Type of Ember keep alive method defining the keep alive message type that a parent accepts to prevent child aging. This is configured in a parent router and communicated and stored in an end-device.
EMBER_KEEP_ALIVE_SUPPORT_UNKNOWN which is initialized at end-device boot time, means parent's keep alive mechanism is unknown to end-device.
EMBER_MAC_DATA_POLL_KEEP_ALIVE means that the parent does not need explicit keep alive messages and will use incoming mac data polls as a sign that a child should not be aged out.
EMBER_END_DEVICE_TIMEOUT_KEEP_ALIVE means that the parent needs explicit keep alive messages (net work timeout requests) to keep the child in its child table.
EMBER_KEEP_ALIVE_SUPPORT_ALL basically maps to EMBER_MAC_DATA_POLL_KEEP_ALIVE as the preferred approach between the two.
Enumerator | |
---|---|
EMBER_KEEP_ALIVE_SUPPORT_UNKNOWN | |
EMBER_MAC_DATA_POLL_KEEP_ALIVE | |
EMBER_END_DEVICE_TIMEOUT_KEEP_ALIVE | |
EMBER_KEEP_ALIVE_SUPPORT_ALL |
3225
of file stack/include/ember-types.h
EmberSourceRouteDiscoveryMode#
EmberSourceRouteDiscoveryMode
Types of source route discovery modes used by the concentrator.
EMBER_SOURCE_ROUTE_DISCOVERY_OFF no source route discovery is scheduled EMBER_SOURCE_ROUTE_DISCOVERY_ON source routes discovery is scheduled, and it is triggered periodically EMBER_SOURCE_ROUTE_DISCOVERY_RESCHEDULE source routes discoveries are re-scheduled to be sent once immediately and then triggered periodically
Enumerator | |
---|---|
EMBER_SOURCE_ROUTE_DISCOVERY_OFF | off |
EMBER_SOURCE_ROUTE_DISCOVERY_ON | on |
EMBER_SOURCE_ROUTE_DISCOVERY_RESCHEDULE | reschedule |
3246
of file stack/include/ember-types.h
EmberTransmitPriority#
EmberTransmitPriority
Packet transmit priorities in terms of getting into the MAC queue.
EMBER_MAC_TRANSMIT_PRIORITY_HIGH High priority headers go on the front of the queue. EMBER_MAC_TRANSMIT_PRIORITY_NORMAL Normal priority headers go on the back of the queue. EMBER_MAC_TRANSMIT_PRIORITY_SCAN_OKAY Normally, only beacon requests and orphan notifications can be sent during a scan. They are submitted with SCAN_OKAY and go on the front of the queue. Other packets could be submitted with this priority, but it is not recommended.
Enumerator | |
---|---|
EMBER_MAC_TRANSMIT_PRIORITY_HIGH | |
EMBER_MAC_TRANSMIT_PRIORITY_NORMAL | |
EMBER_MAC_TRANSMIT_PRIORITY_SCAN_OKAY |
3276
of file stack/include/ember-types.h
sl_zigbee_route_record_policy_type_t#
sl_zigbee_route_record_policy_type_t
Policies for sending a route record to the concentrator.
When sending a unicast to a concentrator, the message may be preceded by a route record packet depending on the type of concentrator and the route record policy
Enumerator | |
---|---|
ROUTE_RECORD_POLICY_ACK_BY_SOURCE_ROUTED_MESSAGE | ROUTE_RECORD_POLICY_ACK_BY_SOURCE_ROUTED_MESSAGE is the default policy A low RAM concentrator will be sent a route record ahead of any unicast A high RAM concentrator will be sent a route record ahead of any unicast until a source routed unicast is received from it. |
ROUTE_RECORD_POLICY_DONT_SEND | ROUTE_RECORD_POLICY_DONT_SEND policy means that the local node never sends a route record message (Note: Non-compliant) |
ROUTE_RECORD_POLICY_NO_ACK_REQUIRED | ROUTE_RECORD_POLICY_NO_ACK_REQUIRED A low RAM concentrator will be sent a route record ahead of any unicast A high RAM concentrator will be sent a route record ahead of any unicast (Note: Non-compliant) |
3295
of file stack/include/ember-types.h