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.

Modules#

EmberEndpointDescription

EmberEndpoint

Radio-specific Functions#

emberSetTxPowerMode(uint16_t txPowerMode)

Enable boost power mode and/or the alternate transmit path.

uint16_t

Return the current configuration of boost power mode and alternate transmitter output.

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.

uint8_t

Return the number of PHY interfaces present.

void

The radio calibration callback function.

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.

void
emberSetLongUpTime(bool hasLongUpTime)

Set the device uptime to be long or short the uptime is then advertised in the beacons.

void
emberSetHubConnectivity(bool connected)

Set the hub connectivity to be true or false the hub connectivity is then advertised in the beacons.

emberRadioGetSchedulerPriorities(EmberMultiprotocolPriorities *priorities)

Get the current scheduler priorities used for Zigbee multiprotocol operations.

emberRadioSetSchedulerPriorities(const EmberMultiprotocolPriorities *priorities)

Set the current scheduler priorities used for Zigbee multiprotocol operations.

Set the multiprotocol slip time.

emberRadioGetSchedulerSliptime(uint32_t *slipTime)

Get the multiprotocol slip time.

emberGetBeaconClassificationParams(EmberBeaconClassificationParams *param)

Get current beacon classification parameter settings.

emberSetBeaconClassificationParams(EmberBeaconClassificationParams *param)

Set current beacon classification parameters.

slx_zigbee_routing_set_route_record_policy(sl_zigbee_route_record_policy_type_t policy)

Set the route record policy.

uint8_t

Get the route record policy.

uint8_t

Get the total count of the tokens configured.

emberGetTokenInfo(uint8_t index, EmberTokenInfo *tokenInfo)

Get information of a token by providing the index.

emberGetTokenData(uint32_t token, uint32_t index, EmberTokenData *tokenData)

Get token data by providing the token key and index for the indexed token.

emberSetTokenData(uint32_t token, uint32_t index, EmberTokenData *tokenData)

Set token data by providing the token key, index for an indexed token and token data.

void

Update function to accept a rejoin channel mask for Multi-MAC end device types. The following function is called for a Multi-MAC end device to allow the user configuration of the device to update channel mask for the scenario where a rejoin is initiated due to end device timeout event. Based on the Multi-MAC end device configuration this call is expected to update the mask so that the rejoin interface will be selected. As per the SE 1.4 errata, the "Multi-MAC Selection" end device can change the rejoin interface where as the Multi-MAC Joining end devices shall not.

void
sl_zigbee_token_factory_reset(bool exclude_outgoing_fc, bool exclude_boot_counter)

Factory reset all configured zigbee tokens.

Variables#

const uint8_t

The application must provide a definition for this variable.

uint16_t
uint16_t
uint8_t
uint16_t const *
uint16_t const *
uint8_t

The application must provide a definition for this variable.

If emberEndpointCount is nonzero, the application must provide descriptions for each endpoint.

Functions#

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.

Return the current join status.

bool

Indicate whether the stack is currently up.

emberWriteNodeData(bool erase)

Write node data to the stack token.

uint32_t

Check when the next stack event is scheduled to run.

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.

EmberEUI64

Return the EUI64 ID of the local node.

bool
emberIsLocalEui64(EmberEUI64 eui64)

Determine whether eui64 is the local node's EUI64 ID.

EmberNodeId

Return the 16-bit node ID of local node on the current logical network.

EmberNodeId

Return the 16-bit node ID of local node on the network it is currently tuned on.

void

Set the manufacturer code to the specified value. The manufacturer code is one of the fields of the node descriptor.

void

Set the maximum incoming transfer size to the specified value. The maximum incoming transfer size is one of the fields of the node descriptor.

void

Set the maximum outgoing transfer size to the specified value. The maximum outgoing transfer size is one of the fields of the node descriptor.

void
emberSetDescriptorCapability(uint8_t capability)

Set the descriptor capability field of the node.

emberGetNetworkParameters(EmberNetworkParameters *parameters)

Copy the current network parameters into the structure provided by the caller.

emberGetRadioParameters(uint8_t phyIndex, EmberMultiPhyRadioParameters *parameters)

Copy the current radio parameters into the structure provided by the caller.

emberGetNodeType(EmberNodeType *resultLocation)

Copy the current node type into the location provided by the caller.

emberSetRadioChannel(uint8_t channel)

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.

uint8_t

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.

emberSetRadioPower(int8_t power)

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.

int8_t

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.

void *

Return the RAIL level handle required to make RAIL API calls. Will return NULL if RAIL is not in use.

EmberPanId

Return the local node's PAN ID of the current logical network.

EmberPanId

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.

void
emberGetExtendedPanId(uint8_t *resultLocation)

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.

uint8_t
emberGetEndpoint(uint8_t index)

Retrieve the endpoint number for the index'th endpoint. index must be less than the value of emberEndpointCount.

uint8_t

Retrieve the number of configured endpoints.

bool
emberGetEndpointDescription(uint8_t endpoint, EmberEndpointDescription *result)

Retrieve the endpoint description for the given endpoint.

uint16_t
emberGetEndpointCluster(uint8_t endpoint, EmberClusterListId listId, uint8_t listIndex)

Retrieve a cluster ID from one of the cluster lists associated with the given endpoint.

bool
emberIsNodeIdValid(EmberNodeId nodeId)

Determine whether nodeId is valid.

EmberNodeId
emberLookupNodeIdByEui64(EmberEUI64 eui64)

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.

emberLookupEui64ByNodeId(EmberNodeId nodeId, EmberEUI64 eui64Return)

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.

void
emberCounterHandler(EmberCounterType type, EmberCounterInfo info)

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.

bool
emberCounterRequiresPhyIndex(EmberCounterType type)
bool
void
emberStackTokenChangedHandler(uint16_t tokenAddress)

A callback invoked to inform the application that a stack token has changed.

bool
emberRtosIdleHandler(uint32_t *idleTimeMs)

A callback to allow the application to manage idling the MCU.

void

A callback to request the application to wake up the stack task.

emberGetNeighbor(uint8_t index, EmberNeighborTableEntry *result)

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.

uint8_t

Get the routing shortcut threshold used to separate between directly using a neighbor vs. performing routing.

Set neighbor's initial outgoing link cost.

uint8_t

Get neighbor's initial outgoing link cost.

void

Indicate whether a rejoining neighbor's incoming FC should be reset.

bool

Check whether resetting the incoming FC for a rejoining neighbor is enabled.

emberGetNeighborFrameCounter(EmberEUI64 nodeEui64, uint32_t *returnFrameCounter)

Get the last received frame counter as found in the Network Auxiliary header for the specified neighbor or child.

emberSetNeighborFrameCounter(EmberEUI64 nodeEui64, uint32_t frameCounter)

Set the frame counter for the specified neighbor or child.

emberGetRouteTableEntry(uint8_t index, EmberRouteTableEntry *result)

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().

uint8_t

Return the stack profile of the network which the node has joined.

uint8_t

Return the security level of the network which the node has joined.

uint8_t

return the value of the stack compliance revision, as is reflected in the node descriptor

uint8_t

Return the depth of the node in the network.

uint8_t

Return the number of active entries in the neighbor table.

uint8_t

Return the size of the route table.

uint8_t

Increment and returns the Zigbee sequence number.

uint8_t

Get maximum number of NWK retries.

enum EmberLibraryStatus enum EmberLibraryId EmberLibraryStatus
emberGetLibraryStatus(EmberLibraryId libraryId)

This indicates the presence, absence, or status of an Ember stack library.

Macros#

#define

named constants for supported stack revisions

#define
#define
EMBER_VERSION_TYPE EMBER_VERSION_TYPE_GA
#define
SOFTWARE_VERSION EMBER_FULL_VERSION

Radio-specific Functions Documentation#

emberSetTxPowerMode#

EmberStatus emberSetTxPowerMode (uint16_t txPowerMode)

Enable boost power mode and/or the alternate transmit path.

Parameters
N/AtxPowerMode

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


Definition at line 789 of file stack/include/stack-info.h

emberGetTxPowerMode#

uint16_t emberGetTxPowerMode (void )

Return the current configuration of boost power mode and alternate transmitter output.

Parameters
N/A

Returns

  • The current TX power mode.


Definition at line 796 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.

Parameters
N/AnodeId

Specifies the short ID to be assigned to the node.

Returns


Definition at line 805 of file stack/include/stack-info.h

emberGetPhyInterfaceCount#

uint8_t emberGetPhyInterfaceCount (void )

Return the number of PHY interfaces present.

Parameters
N/A

Returns

  • The number of PHY interface(s).


Definition at line 811 of file stack/include/stack-info.h

emberRadioNeedsCalibratingHandler#

void emberRadioNeedsCalibratingHandler (void )

The radio calibration callback function.

Parameters
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.


Definition at line 829 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.

Parameters
N/A

Definition at line 839 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.

Parameters
N/AhasLongUpTime

Definition at line 846 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.

Parameters
N/Aconnected

Definition at line 851 of file stack/include/stack-info.h

emberIsUpTimeLong#

bool emberIsUpTimeLong (void )
Parameters
N/A

Returns

  • True if device uptime is long, false otherwise


Definition at line 855 of file stack/include/stack-info.h

emberIsHubConnected#

bool emberIsHubConnected (void )
Parameters
N/A

Returns

  • True if there is hub connectivity, false otherwise


Definition at line 859 of file stack/include/stack-info.h

emberRadioGetSchedulerPriorities#

EmberStatus emberRadioGetSchedulerPriorities (EmberMultiprotocolPriorities * priorities)

Get the current scheduler priorities used for Zigbee multiprotocol operations.

Parameters
N/Apriorities

A pointer to a structure to store the current priorities in. This must not be NULL.