Modules#
Stack Information#
See stack-info.h for source code.
See also config.h.
This documentation was produced from the following software release and build.
SOFTWARE_VERSION | 0x4700 | High byte = release number, low byte = patch number |
---|
This file provides definitions relevant to libraries. A running image may probe information about included libraries using the APIs defined in this section.
See library.h for more information.
Radio-specific Functions#
Enable boost power mode and/or the alternate transmit path.
Return the current configuration of boost power mode and alternate transmitter output.
Set the short node ID of the node. Notice that it can only be set if the stack is in the INITAL state.
Return the number of PHY interfaces present.
The radio calibration callback function.
Calibrate the current channel. The stack will notify the application of the need for channel calibration via the emberRadioNeedsCalibratingHandler() callback function during emberTick(). This function should only be called from within the context of the emberRadioNeedsCalibratingHandler() callback function. Calibration can take up to 150 ms. Note if this function is called when the radio is off, it will turn the radio on and leave it on.
Set the device uptime to be long or short the uptime is then advertised in the beacons.
Set the hub connectivity to be true or false the hub connectivity is then advertised in the beacons.
Get the current scheduler priorities used for Zigbee multiprotocol operations.
Set the current scheduler priorities used for Zigbee multiprotocol operations.
Set the multiprotocol slip time.
Get the multiprotocol slip time.
Variables#
The application must provide a definition for this variable.
The application must provide a definition for this variable.
If emberEndpointCount is nonzero, the application must provide descriptions for each endpoint.
Functions#
A callback invoked when the status of the stack changes. If the status parameter equals EMBER_NETWORK_UP, the emberGetNetworkParameters() function can be called to get the new network parameters. If any of the parameters are stored in nonvolatile memory by the application, the stored values should be updated.
Return the current join status.
Indicate whether the stack is currently up.
Write node data to the stack token.
Check when the next stack event is scheduled to run.
Set the power descriptor to the specified value. The power descriptor is a dynamic value, therefore this function should be called whenever the value changes.
Return the EUI64 ID of the local node.
Determine whether eui64
is the local node's EUI64 ID.
Return the 16-bit node ID of local node on the current logical network.
Return the 16-bit node ID of local node on the network it is currently tuned on.
Set the manufacturer code to the specified value. The manufacturer code is one of the fields of the node descriptor.
Set the maximum incoming transfer size to the specified value. The maximum incoming transfer size is one of the fields of the node descriptor.
Set the maximum outgoing transfer size to the specified value. The maximum outgoing transfer size is one of the fields of the node descriptor.
Set the descriptor capability field of the node.
Copy the current network parameters into the structure provided by the caller.
Copy the current radio parameters into the structure provided by the caller.
Copy the current node type into the location provided by the caller.
Set the channel to use for sending and receiving messages on the current logical network. For a list of available radio channels, see the technical specification for the RF communication module in your Developer Kit.
Set the current logical and physical channel.
Get the radio channel to which a node is set on the current logical network. The possible return values depend on the radio in use. For a list of available radio channels, see the technical specification for the RF communication module in your Developer Kit.
Set the radio output power at which a node is to operate for the current logical network. Ember radios have discrete power settings. For a list of available power settings, see the technical specification for the RF communication module in your Developer Kit. Note that using this API on a running network will directly impact the established link qualities which the neighboring nodes have with the node on which it is called. This can lead to disruption of existing routes and erratic network behavior. Note that, if the requested power level is not available on a given radio, this function will use the next higher available power level.
Get the radio output power of the current logical network at which a node is operating. Ember radios have discrete power settings. For a list of available power settings, see the technical specification for the RF communication module in your Developer Kit.
Return the RAIL level handle required to make RAIL API calls. Will return NULL if RAIL is not in use.
Return the local node's PAN ID of the current logical network.
Return the local node's PAN ID of the current radio network.
Set the configured 802.15.4 CCA mode in the radio. For a list of CCA modes, please refer to RAIL documentation regarding RAIL_IEEE802154_CcaMode_t.
Fetch a node's 8 byte Extended PAN identifier. If this is called when a device is not currently on a network (see emberNetworkState), the Extended PAN ID returned will be an invalid value.
Retrieve the endpoint number for the index'th endpoint. index
must be less than the value of emberEndpointCount.
Retrieve the endpoint description for the given endpoint.
Retrieve a cluster ID from one of the cluster lists associated with the given endpoint.
Determine whether nodeId
is valid.
Return the node ID that corresponds to the specified EUI64. The node ID is found by searching through all stack tables for the specified EUI64.
Return the EUI64 that corresponds to the specified node ID. The EUI64 is found by searching through all stack tables for the specified node ID.
A callback invoked to inform the application of the occurrence of an event defined by EmberCounterType, for example, transmissions and receptions at different layers of the stack.
A callback invoked to inform the application that a stack token has changed.
A callback to allow the application to manage idling the MCU.
A callback to request the application to wake up the stack task.
Copy a neighbor table entry to the structure that result
points to. Neighbor table entries are stored in ascending order by node ID, with all unused entries at the end of the table. The number of active neighbors can be obtained using emberNeighborCount().
Set the routing shortcut threshold to directly use a neighbor instead of performing routing.
Get the routing shortcut threshold used to separate between directly using a neighbor vs. performing routing.
Set neighbor's initial outgoing link cost.
Get neighbor's initial outgoing link cost.
Indicate whether a rejoining neighbor's incoming FC should be reset.
Check whether resetting the incoming FC for a rejoining neighbor is enabled.
Get the last received frame counter as found in the Network Auxiliary header for the specified neighbor or child.
Set the frame counter for the specified neighbor or child.
Copy a route table entry to the structure that the result
points to. Unused route table entries have a destination of 0xFFFF. The route table size can be obtained via emberRouteTableSize().
Return the stack profile of the network which the node has joined.
Return the security level of the network which the node has joined.
Return the depth of the node in the network.
Return the number of active entries in the neighbor table.
Return the size of the route table.
Increment and returns the Zigbee sequence number.
Get maximum number of NWK retries.
Get current beacon classification parameter settings.
Set current beacon classification parameters.
Set the route record policy.
Get the route record policy.
Get the total count of the tokens configured.
Get information of a token by providing the index.
Get token data by providing the token key and index for the indexed token.
Set token data by providing the token key, index for an indexed token and token data.
This indicates the presence, absence, or status of an Ember stack library.
Macros#
Radio-specific Functions Documentation#
emberSetTxPowerMode#
EmberStatus emberSetTxPowerMode (uint16_t txPowerMode)
Enable boost power mode and/or the alternate transmit path.
N/A | txPowerMode | Specifies which transmit power mode options should be activated. This parameter should be set to one of the literal values described in stack/include/ember-types.h. Any power option not specified in the txPowerMode parameter will be deactivated. |
Boost power mode is a high-performance radio mode, which offers increased transmit power and receive sensitivity at the cost of an increase in power consumption. emberInit() calls this function using the power mode and transmitter output settings as specified in the MFG_PHY_CONFIG token (with each bit inverted so that the default token value of 0xffff corresponds to normal power mode and bi-directional RF transmitter output). The application only needs to call emberSetTxPowerMode() to use a power mode or transmitter output setting different than specified in the MFG_PHY_CONFIG token. After the initial call to emberSetTxPowerMode(), the stack will automatically maintain the specified power mode configuration across sleep/wake cycles.
Returns
EMBER_SUCCESS if successful; an error code otherwise.
764
of file stack/include/stack-info.h
emberGetTxPowerMode#
uint16_t emberGetTxPowerMode (void )
Return the current configuration of boost power mode and alternate transmitter output.
N/A |
Returns
The current TX power mode.
771
of file stack/include/stack-info.h
emberSetNodeId#
EmberStatus emberSetNodeId (EmberNodeId nodeId)
Set the short node ID of the node. Notice that it can only be set if the stack is in the INITAL state.
N/A | nodeId | Specifies the short ID to be assigned to the node. |
Returns
EMBER_SUCCESS if successful; an error code otherwise.
780
of file stack/include/stack-info.h
emberGetPhyInterfaceCount#
uint8_t emberGetPhyInterfaceCount (void )
Return the number of PHY interfaces present.
N/A |
Returns
The number of PHY interface(s).
786
of file stack/include/stack-info.h
emberRadioNeedsCalibratingHandler#
void emberRadioNeedsCalibratingHandler (void )
The radio calibration callback function.
N/A |
The Voltage Controlled Oscillator (VCO) can drift with temperature changes. During every call to emberTick(), the stack will check to see if the VCO has drifted. If the VCO has drifted, the stack will call emberRadioNeedsCalibratingHandler() to inform the application that it should perform calibration of the current channel as soon as possible. Calibration can take up to 150 ms. The default callback function implementation provided here performs the calibration immediately. The application can define its own callback by defining ::EMBER_APPLICATION_HAS_CUSTOM_RADIO_CALIBRATION_CALLBACK in its CONFIGURATION_HEADER. It can then failsafe any critical processes or peripherals before calling ::emberCalibrateCurrentChannel(). The application must call ::emberCalibrateCurrentChannel() in response to this callback to maintain expected radio performance.
804
of file stack/include/stack-info.h
sl_mac_calibrate_current_channel#
void sl_mac_calibrate_current_channel (void )
Calibrate the current channel. The stack will notify the application of the need for channel calibration via the emberRadioNeedsCalibratingHandler() callback function during emberTick(). This function should only be called from within the context of the emberRadioNeedsCalibratingHandler() callback function. Calibration can take up to 150 ms. Note if this function is called when the radio is off, it will turn the radio on and leave it on.
N/A |
814
of file stack/include/stack-info.h
emberSetLongUpTime#
void emberSetLongUpTime (bool hasLongUpTime)
Set the device uptime to be long or short the uptime is then advertised in the beacons.
N/A | hasLongUpTime |
821
of file stack/include/stack-info.h
emberSetHubConnectivity#
void emberSetHubConnectivity (bool connected)
Set the hub connectivity to be true or false the hub connectivity is then advertised in the beacons.
N/A | connected |
826
of file stack/include/stack-info.h
emberIsUpTimeLong#
bool emberIsUpTimeLong (void )
N/A |
Returns
True if device uptime is long, false otherwise
830
of file stack/include/stack-info.h
emberIsHubConnected#
bool emberIsHubConnected (void )
N/A |
Returns
True if there is hub connectivity, false otherwise
834
of file stack/include/stack-info.h
emberRadioGetSchedulerPriorities#
EmberStatus emberRadioGetSchedulerPriorities (EmberMultiprotocolPriorities * priorities)
Get the current scheduler priorities used for Zigbee multiprotocol operations.
N/A | priorities | A pointer to a structure to store the current priorities in. This must not be NULL. |
Returns
EMBER_SUCCESS if called in a multiprotocol app and EMBER_INVALID_CALL otherwise.
For more details on what these priorities are and how to use them see UG305, the Dynamic Multiprotocol User Guide.
847
of file stack/include/stack-info.h
emberRadioSetSchedulerPriorities#
EmberStatus emberRadioSetSchedulerPriorities (const EmberMultiprotocolPriorities * priorities)
Set the current scheduler priorities used for Zigbee multiprotocol operations.
N/A | priorities | A pointer to a structure of the new priorities to use. This must not be NULL. |
Returns
EMBER_SUCCESS if called in a multiprotocol app and EMBER_INVALID_CALL otherwise.
For more details on what these priorities are and how to use them see UG305, the Dynamic Multiprotocol User Guide.
860
of file stack/include/stack-info.h
emberRadioSetSchedulerSliptime#
EmberStatus emberRadioSetSchedulerSliptime (uint32_t slipTime)
Set the multiprotocol slip time.
N/A | slipTime | The value to set the slip time to for each transmit. |
Returns
EMBER_SUCCESS if called in a multiprotocol app and EMBER_INVALID_CALL otherwise.
Use this to update the slip time passed to the radio scheduler for each transmit from the PHY layer. The smaller this is set the lower the potential multi-protocol induced latency is, but it makes packets more likely to fail to be transmitted. For more details on slip time see UG305.
873
of file stack/include/stack-info.h
emberRadioGetSchedulerSliptime#
EmberStatus emberRadioGetSchedulerSliptime (uint32_t * slipTime)
Get the multiprotocol slip time.
N/A | slipTime | A pointer to the place to store the current slip time |
Returns
EMBER_SUCCESS if called in a multiprotocol app and EMBER_INVALID_CALL otherwise.
Use this to get the current value of the multiprotocol slip time used for each transmit at the PHY layer. For more details on slip time see UG305.
884
of file stack/include/stack-info.h
Variable Documentation#
emberStackProfileId#
const uint8_t emberStackProfileId[]
The application must provide a definition for this variable.
365
of file stack/include/stack-info.h
emberEndpointCount#
uint8_t emberEndpointCount
The application must provide a definition for this variable.
402
of file stack/include/stack-info.h
emberEndpoints#
EmberEndpoint emberEndpoints[]
If emberEndpointCount is nonzero, the application must provide descriptions for each endpoint.
This can be done either by providing a definition of emberEndpoints or by providing definitions of emberGetEndpoint(), emberGetEndpointDescription() and emberGetEndpointCluster(). Using the array is often simpler, but consumes large amounts of memory if emberEndpointCount is large.
If the application provides definitions for the three functions, it must define EMBER_APPLICATION_HAS_GET_ENDPOINT in its CONFIGURATION_HEADER.
417
of file stack/include/stack-info.h
Function Documentation#
emberStackStatusHandler#
void emberStackStatusHandler (EmberStatus status)
A callback invoked when the status of the stack changes. If the status parameter equals EMBER_NETWORK_UP, the emberGetNetworkParameters() function can be called to get the new network parameters. If any of the parameters are stored in nonvolatile memory by the application, the stored values should be updated.
N/A | status | Stack status. One of the following: |
The application is free to begin messaging after it receives the EMBER_NETWORK_UP status. However, routes discovered immediately after the stack comes up may be suboptimal because the routes are based on the neighbor table's information about two-way links with neighboring nodes, which is obtained from periodic ZigBee Link Status messages. It can take two or three link status exchange periods (of 16 seconds each) before the neighbor table has a good estimate of link quality to neighboring nodes. Therefore, the application may improve the quality of initially discovered routes by waiting after startup to give the neighbor table time to be populated.
64
of file stack/include/stack-info.h
emberNetworkState#
EmberNetworkStatus emberNetworkState (void )
Return the current join status.
N/A |
Returns a value indicating whether the node is joining, joined to, or leaving a network.
Returns
An EmberNetworkStatus value indicating the current join status.
73
of file stack/include/stack-info.h
emberStackIsUp#
bool emberStackIsUp (void )
Indicate whether the stack is currently up.
N/A |
Returns true if the stack is joined to a network and ready to send and receive messages. This reflects only the state of the local node; it does not indicate whether other nodes are able to communicate with this node.
Returns
True if the stack is up, false otherwise.
84
of file stack/include/stack-info.h
emberWriteNodeData#
EmberStatus emberWriteNodeData (bool erase)
Write node data to the stack token.
N/A | erase | Indicates whether the node type should be erased. |
Returns
The status of the operation and an error code if unsuccessful.
92
of file stack/include/stack-info.h
emberMsToNextStackEvent#
uint32_t emberMsToNextStackEvent (void )
Check when the next stack event is scheduled to run.
N/A |
Returns
Returns the number of milliseconds before the next stack event is scheduled to run.
100
of file stack/include/stack-info.h
emberSetPowerDescriptor#
void emberSetPowerDescriptor (uint16_t descriptor)
Set the power descriptor to the specified value. The power descriptor is a dynamic value, therefore this function should be called whenever the value changes.
N/A | descriptor | The new power descriptor for the local node. |
108
of file stack/include/stack-info.h
emberGetEui64#
EmberEUI64 emberGetEui64 (void )
Return the EUI64 ID of the local node.
N/A |
Returns
The 64-bit ID.
115
of file stack/include/stack-info.h
emberIsLocalEui64#
bool emberIsLocalEui64 (EmberEUI64 eui64)
Determine whether eui64
is the local node's EUI64 ID.
N/A | eui64 | An EUI64 ID. |
Returns
True if
eui64
is the local node's ID, otherwise false.
123
of file stack/include/stack-info.h
emberGetNodeId#
EmberNodeId emberGetNodeId (void )
Return the 16-bit node ID of local node on the current logical network.
N/A |
Returns
The 16-bit ID.
130
of file stack/include/stack-info.h
emberRadioGetNodeId#
EmberNodeId emberRadioGetNodeId (void )
Return the 16-bit node ID of local node on the network it is currently tuned on.
N/A |
Returns
The 16-bit ID.
137
of file stack/include/stack-info.h
emberSetManufacturerCode#
void emberSetManufacturerCode (uint16_t code)
Set the manufacturer code to the specified value. The manufacturer code is one of the fields of the node descriptor.
N/A | code | The manufacturer code for the local node. |
144
of file stack/include/stack-info.h
emberSetMaximumIncomingTransferSize#
void emberSetMaximumIncomingTransferSize (uint16_t size)
Set the maximum incoming transfer size to the specified value. The maximum incoming transfer size is one of the fields of the node descriptor.
N/A | size | The maximum incoming transfer size for the local node. |
152
of file stack/include/stack-info.h
emberSetMaximumOutgoingTransferSize#
void emberSetMaximumOutgoingTransferSize (uint16_t size)
Set the maximum outgoing transfer size to the specified value. The maximum outgoing transfer size is one of the fields of the node descriptor.
N/A | size | The maximum outgoing transfer size for the local node. |
160
of file stack/include/stack-info.h
emberSetDescriptorCapability#
void emberSetDescriptorCapability (uint8_t capability)
Set the descriptor capability field of the node.
N/A | capability | The descriptor capability of the local node. |
166
of file stack/include/stack-info.h
emberGetNetworkParameters#
EmberStatus emberGetNetworkParameters (EmberNetworkParameters * parameters)
Copy the current network parameters into the structure provided by the caller.
N/A | parameters | A pointer to an EmberNetworkParameters value into which the current network parameters will be copied. |
Returns
An EmberStatus value indicating the success or failure of the command.
239
of file stack/include/stack-info.h
emberGetRadioParameters#
EmberStatus emberGetRadioParameters (uint8_t phyIndex, EmberMultiPhyRadioParameters * parameters)
Copy the current radio parameters into the structure provided by the caller.
N/A | phyIndex | The index of the PHY interface for radio parameters.
|
N/A | parameters |
Returns
An EmberStatus value indicating the success or failure of the command.
254
of file stack/include/stack-info.h
<