EmberZNet API for accessing and setting stack information. See Stack Information for documentation.

License#

Copyright 2018 Silicon Laboratories Inc. www.silabs.com

The licensor of this software is Silicon Laboratories Inc. Your use of this software is governed by the terms of Silicon Labs Master Software License Agreement (MSLA) available at www.silabs.com/about-us/legal/master-software-license-agreement. This software is distributed to you in Source Code format and is governed by the sections of the MSLA applicable to Source Code.

/***************************************************************************/
#ifndef SILABS_STACK_INFO_H
#define SILABS_STACK_INFO_H

void emberStackStatusHandler(EmberStatus status);

EmberNetworkStatus emberNetworkState(void);

bool emberStackIsUp(void);

EmberStatus emberWriteNodeData(bool erase);

uint32_t emberMsToNextStackEvent(void);

void emberSetPowerDescriptor(uint16_t descriptor);

#ifdef DOXYGEN_SHOULD_SKIP_THIS
EmberEUI64 emberGetEui64(void);

bool emberIsLocalEui64(EmberEUI64 eui64);

EmberNodeId emberGetNodeId(void);

EmberNodeId emberRadioGetNodeId(void);

void emberSetManufacturerCode(uint16_t code);

void emberSetMaximumIncomingTransferSize(uint16_t size);

void emberSetMaximumOutgoingTransferSize(uint16_t size);

void emberSetDescriptorCapability(uint8_t capability);

#else   // Doxygen ignores the following
extern EmberEUI64 sli_802154mac_local_eui64;
#define emberGetEui64() (sli_802154mac_local_eui64)
#define emberIsLocalEui64(eui64) \
  (MEMCOMPARE((eui64), sli_802154mac_local_eui64, EUI64_SIZE) == 0)

EmberNodeId emberGetNodeId(void);
EmberNodeId emberRadioGetNodeId(void);

extern uint16_t sli_zigbee_manufacturer_code;
extern uint16_t sli_zigbee_power_descriptor;
extern uint16_t sli_zigbee_maximum_incoming_transfer_size;
extern uint16_t sli_zigbee_maximum_outgoing_transfer_size;
extern uint8_t sli_zigbee_descriptor_capability;

enum {
  EMBER_ROUTE_ERROR_NO_ROUTE_AVAILABLE    = 0x00,
  EMBER_ROUTE_ERROR_TREE_LINK_FAILURE     = 0x01,
  EMBER_ROUTE_ERROR_NON_TREE_LINK_FAILURE = 0x02,
  EMBER_ROUTE_ERROR_LOW_BATTERY_LEVEL     = 0x03,
  EMBER_ROUTE_ERROR_NO_ROUTING_CAPACITY   = 0x04,
  EMBER_ROUTE_ERROR_NO_INDIRECT_CAPACITY  = 0x05,
  EMBER_ROUTE_ERROR_INDIRECT_TRANSACTION_EXPIRY = 0x06,
  EMBER_ROUTE_ERROR_TARGET_DEVICE_UNAVAILABLE = 0x07,
  EMBER_ROUTE_ERROR_TARGET_ADDRESS_UNALLOCATED = 0x08,
  EMBER_ROUTE_ERROR_PARENT_LINK_FAILURE   = 0x09,
  EMBER_ROUTE_ERROR_VALIDATE_ROUTE        = 0x0A,
  EMBER_ROUTE_ERROR_SOURCE_ROUTE_FAILURE  = 0x0B,
  EMBER_ROUTE_ERROR_MANY_TO_ONE_ROUTE_FAILURE = 0x0C,
  EMBER_ROUTE_ERROR_ADDRESS_CONFLICT      = 0x0D,
  EMBER_ROUTE_ERROR_VERIFY_ADDRESSES      = 0x0E,
  EMBER_ROUTE_ERROR_PAN_IDENTIFIER_UPDATE = 0x0F,
  ZIGBEE_NETWORK_STATUS_NETWORK_ADDRESS_UPDATE = 0x10,
  ZIGBEE_NETWORK_STATUS_BAD_FRAME_COUNTER = 0x11,
  ZIGBEE_NETWORK_STATUS_BAD_KEY_SEQUENCE_NUMBER = 0x12,
  ZIGBEE_NETWORK_STATUS_UNKNOWN_COMMAND = 0x13
};

EmberStatus emberSetBrokenRouteErrorCode(uint8_t errorCode);

#define emberSetManufacturerCode(code) \
  (sli_zigbee_manufacturer_code = (code))
#define emberSetMaximumIncomingTransferSize(size) \
  (sli_zigbee_maximum_incoming_transfer_size = (size))
#define emberSetMaximumOutgoingTransferSize(size) \
  (sli_zigbee_maximum_outgoing_transfer_size = (size))
#define emberSetDescriptorCapability(capability) \
  (sli_zigbee_descriptor_capability = (capability))
#endif

EmberStatus emberGetNetworkParameters(EmberNetworkParameters *parameters);

EmberStatus emberGetRadioParameters(uint8_t phyIndex, EmberMultiPhyRadioParameters *parameters);

EmberStatus emberGetNodeType(EmberNodeType *resultLocation);

EmberStatus emberSetRadioChannel(uint8_t channel);

EmberStatus emberSetLogicalAndRadioChannel(uint8_t channel);

uint8_t emberGetRadioChannel(void);

EmberStatus emberSetRadioPower(int8_t power);

int8_t emberGetRadioPower(void);

void *emberGetRailHandle(void);

EmberPanId emberGetPanId(void);

EmberPanId emberRadioGetPanId(void);

EmberStatus emberSetRadioIeee802154CcaMode(uint8_t ccaMode);

void emberGetExtendedPanId(uint8_t *resultLocation);

extern const uint8_t emberStackProfileId[];

typedef struct {
  uint16_t profileId;
  uint16_t deviceId;
  uint8_t deviceVersion;
  uint8_t inputClusterCount;
  uint8_t outputClusterCount;
} EmberEndpointDescription;

typedef struct {
  uint8_t endpoint;
  EmberEndpointDescription const * description;
  uint16_t const * inputClusterList;
  uint16_t const * outputClusterList;
} EmberEndpoint;

extern uint8_t emberEndpointCount;

extern EmberEndpoint emberEndpoints[];

uint8_t emberGetEndpoint(uint8_t index);

uint8_t emberGetEndpointCount(void);

bool emberGetEndpointDescription(uint8_t endpoint,
                                 EmberEndpointDescription *result);

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

#ifdef DOXYGEN_SHOULD_SKIP_THIS
bool emberIsNodeIdValid(EmberNodeId nodeId);
#else
#define emberIsNodeIdValid(nodeId) ((nodeId) < EMBER_DISCOVERY_ACTIVE_NODE_ID)
#endif

EmberNodeId emberLookupNodeIdByEui64(EmberEUI64 eui64);

EmberStatus emberLookupEui64ByNodeId(EmberNodeId nodeId,
                                     EmberEUI64 eui64Return);

void emberCounterHandler(EmberCounterType type, EmberCounterInfo info);
bool emberCounterRequiresPhyIndex(EmberCounterType type);
bool emberCounterRequiresDestinationNodeId(EmberCounterType type);

void emberStackTokenChangedHandler(uint16_t tokenAddress);

bool emberRtosIdleHandler(uint32_t *idleTimeMs);

void emberRtosStackWakeupIsrHandler(void);

EmberStatus emberGetNeighbor(uint8_t index, EmberNeighborTableEntry *result);

EmberStatus emberSetRoutingShortcutThreshold(uint8_t costThresh);

uint8_t emberGetRoutingShortcutThreshold(void);

EmberStatus emberSetInitialNeighborOutgoingCost(uint8_t cost);

uint8_t emberGetInitialNeighborOutgoingCost(void);

void emberResetRejoiningNeighborsFC(bool reset);

bool emberIsResetRejoiningNeighborsFCEnabled(void);

EmberStatus emberGetNeighborFrameCounter(EmberEUI64 nodeEui64,
                                         uint32_t *returnFrameCounter);

EmberStatus emberSetNeighborFrameCounter(EmberEUI64 nodeEui64,
                                         uint32_t frameCounter);

EmberStatus emberGetRouteTableEntry(uint8_t index, EmberRouteTableEntry *result);

uint8_t emberStackProfile(void);

uint8_t emberSecurityLevel(void);


#define R21_COMPLIANCE_REVISION       21
#define R22_COMPLIANCE_REVISION       22
#define R23_COMPLIANCE_REVISION       23
#define PRE_R21_COMPLIANCE_REVISION   0

uint8_t sl_zigbee_get_stack_compliance_revision(void);

#ifdef DOXYGEN_SHOULD_SKIP_THIS
uint8_t emberTreeDepth(void);
#endif
uint8_t emberNeighborCount(void);
#ifdef DOXYGEN_SHOULD_SKIP_THIS
uint8_t emberRouteTableSize(void);

#else   // Doxgyen ignores the following
// The '+ 0' prevents anyone from accidentally assigning to these.
#define emberTreeDepth()           (sli_zigbee_tree_depth         + 0)
#define emberMaxDepth()            (sli_zigbee_max_depth          + 0)
#define emberRouteTableSize()      (sli_zigbee_route_table_size    + 0)

extern uint8_t sli_zigbee_default_security_level;
extern uint8_t sli_zigbee_max_hops;
extern uint8_t sli_zigbee_route_table_size;
extern uint8_t sli_zigbee_source_route_table_size;
extern uint8_t sli_zigbee_max_depth;                // The maximum tree depth.
extern uint8_t sli_zigbee_tree_depth;               // The current depth.
extern uint8_t sli_zigbee_end_device_configuration;

void emberSetStackProfile(uint8_t stackProfile);

void emberSetSecurityLevel(uint8_t securityLevel);
#endif

uint8_t emberNextZigbeeSequenceNumber(void);

uint8_t emberGetMaxNwkRetries(void);


EmberStatus emberSetTxPowerMode(uint16_t txPowerMode);

uint16_t emberGetTxPowerMode(void);

EmberStatus emberSetNodeId(EmberNodeId nodeId);

uint8_t emberGetPhyInterfaceCount(void);

void emberRadioNeedsCalibratingHandler(void);

void sl_mac_calibrate_current_channel(void);

//General connectivity status APIs

void emberSetLongUpTime(bool hasLongUpTime);

void emberSetHubConnectivity(bool connected);

bool emberIsUpTimeLong(void);

bool emberIsHubConnected(void);

EmberStatus emberRadioGetSchedulerPriorities(EmberMultiprotocolPriorities *priorities);

EmberStatus emberRadioSetSchedulerPriorities(const EmberMultiprotocolPriorities *priorities);

EmberStatus emberRadioSetSchedulerSliptime(uint32_t slipTime);

EmberStatus emberRadioGetSchedulerSliptime(uint32_t *slipTime);

EmberStatus emberGetBeaconClassificationParams(EmberBeaconClassificationParams* param);

EmberStatus emberSetBeaconClassificationParams(EmberBeaconClassificationParams* param);

EmberStatus slx_zigbee_routing_set_route_record_policy(sl_zigbee_route_record_policy_type_t policy);

uint8_t slx_zigbee_routing_get_route_record_policy(void);

uint8_t emberGetTokenCount(void);

EmberStatus emberGetTokenInfo(uint8_t index,
                              EmberTokenInfo *tokenInfo);
EmberStatus emberGetTokenData(uint32_t token,
                              uint32_t index,
                              EmberTokenData *tokenData);
EmberStatus emberSetTokenData(uint32_t token,
                              uint32_t index,
                              EmberTokenData *tokenData);

void emberUpdateMultiMacRejoinChannelMaskForSelectionOrJoiningDevice(uint32_t *rejoinChannelMask);

void sl_zigbee_token_factory_reset(bool exclude_outgoing_fc, bool exclude_boot_counter);

#endif // SILABS_STACK_INFO_H

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.

Macros#

#define

named constants for supported stack revisions

Variables#

const uint8_t

The application must provide a definition for this variable.

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.

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.

Returns

For more details on what these priorities are and how to use them see UG305, the Dynamic Multiprotocol User Guide.


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

emberRadioSetSchedulerPriorities#

EmberStatus emberRadioSetSchedulerPriorities (const EmberMultiprotocolPriorities * priorities)

Set the current scheduler priorities used for Zigbee multiprotocol operations.

Parameters
N/Apriorities

A pointer to a structure of the new priorities to use. This must not be NULL.

Returns

For more details on what these priorities are and how to use them see UG305, the Dynamic Multiprotocol User Guide.


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

emberRadioSetSchedulerSliptime#

EmberStatus emberRadioSetSchedulerSliptime (uint32_t slipTime)

Set the multiprotocol slip time.

Parameters
N/AslipTime

The value to set the slip time to for each transmit.

Returns

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.


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

emberRadioGetSchedulerSliptime#

EmberStatus emberRadioGetSchedulerSliptime (uint32_t * slipTime)

Get the multiprotocol slip time.

Parameters
N/AslipTime

A pointer to the place to store the current slip time

Returns

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.


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

emberGetBeaconClassificationParams#

EmberStatus emberGetBeaconClassificationParams (EmberBeaconClassificationParams * param)

Get current beacon classification parameter settings.

Parameters
N/Aparam

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

emberSetBeaconClassificationParams#

EmberStatus emberSetBeaconClassificationParams (EmberBeaconClassificationParams * param)

Set current beacon classification parameters.

Parameters
N/Aparam

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

slx_zigbee_routing_set_route_record_policy#

EmberStatus slx_zigbee_routing_set_route_record_policy (sl_zigbee_route_record_policy_type_t policy)

Set the route record policy.

Parameters
N/Apolicy

A pointer to the place to store the current slip time

Returns

Use this to set the policy for sending a route record message to a concentrator Note that policies other than the default ROUTE_RECORD_POLICY_ACK_BY_SOURCE_ROUTED_MESSAGE may result in behavior not compliant with the Zigbee specification


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

slx_zigbee_routing_get_route_record_policy#

uint8_t slx_zigbee_routing_get_route_record_policy (void )

Get the route record policy.

Parameters
N/A

Returns

  • The route record policy

Use this to get the current value of the route record policy


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

emberGetTokenCount#

uint8_t emberGetTokenCount (void )

Get the total count of the tokens configured.

Parameters
N/A

Returns

  • The token count.

Use this to get the number of tokens configured in a node.


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

emberGetTokenInfo#

EmberStatus emberGetTokenInfo (uint8_t index, EmberTokenInfo * tokenInfo)

Get information of a token by providing the index.

Parameters
N/Aindex

An index to configured token array that ranges from 0 to emberGetTokenCount() - 1;

N/AtokenInfo

A pointer to hold the information in a structure provided by the caller.

Returns

  • Status of the call, EMBER_SUCCESS upon success or EMBER_INDEX_OUT_OF_RANGE for bad index.


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

emberGetTokenData#

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

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

Parameters
N/Atoken

A valid token key, which may be obtained using emberGetTokenInfo.

N/Aindex

An index in case the token is an indexed token, if token is indexed can be obtained from emberGetTokenInfo.

N/AtokenData

A pointer pointing to memory storage information, must be allocated and provided by the caller.

Returns

  • Status of the call, EMBER_SUCCESS upon success or EMBER_ERR_FATAL for errors.


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

emberSetTokenData#

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

Parameters
N/Atoken

A valid token key, which may be obtained using emberGetTokenInfo.

N/Aindex

An index in case the token is an indexed token, if token is indexed can be obtained from emberGetTokenInfo.

N/AtokenData

A pointer pointing to memory storage holding the token data provided by the caller.

Returns

  • Status of the call, EMBER_SUCCESS upon success or EMBER_ERR_FATAL for errors.


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

emberUpdateMultiMacRejoinChannelMaskForSelectionOrJoiningDevice#

void emberUpdateMultiMacRejoinChannelMaskForSelectionOrJoiningDevice (uint32_t * rejoinChannelMask)

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.

Parameters
N/ArejoinChannelMask

32-bit channel mask.


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

sl_zigbee_token_factory_reset#

void sl_zigbee_token_factory_reset (bool exclude_outgoing_fc, bool exclude_boot_counter)

Factory reset all configured zigbee tokens.

Parameters
N/Aexclude_outgoing_fc

Exclude network and APS outgoing frame counter tokens

N/Aexclude_boot_counter

Exclude stack boot counter token


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

Macro Definition Documentation#

R21_COMPLIANCE_REVISION#

#define R21_COMPLIANCE_REVISION
Value:
21

named constants for supported stack revisions


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

R22_COMPLIANCE_REVISION#

#define R22_COMPLIANCE_REVISION
Value:
22

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

R23_COMPLIANCE_REVISION#

#define R23_COMPLIANCE_REVISION
Value:
23

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

PRE_R21_COMPLIANCE_REVISION#

#define PRE_R21_COMPLIANCE_REVISION
Value:
0

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

Variable Documentation#

emberStackProfileId#

const uint8_t emberStackProfileId[]

The application must provide a definition for this variable.


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

emberEndpointCount#

uint8_t emberEndpointCount

The application must provide a definition for this variable.


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


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

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.


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

emberNetworkState#

EmberNetworkStatus emberNetworkState (void )

Return the current join status.

Parameters
N/A

Returns a value indicating whether the node is joining, joined to, or leaving a network.

Returns


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

emberStackIsUp#

bool emberStackIsUp (void )

Indicate whether the stack is currently up.

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


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

emberWriteNodeData#

EmberStatus emberWriteNodeData (bool erase)

Write node data to the stack token.

Parameters
N/Aerase

Indicates whether the node type should be erased.

Returns

  • The status of the operation and an error code if unsuccessful.


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

emberMsToNextStackEvent#

uint32_t emberMsToNextStackEvent (void )

Check when the next stack event is scheduled to run.

Parameters
N/A

Returns

  • Returns the number of milliseconds before the next stack event is scheduled to run.


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

Parameters
N/Adescriptor

The new power descriptor for the local node.


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

emberGetEui64#

EmberEUI64 emberGetEui64 (void )

Return the EUI64 ID of the local node.

Parameters
N/A

Returns

  • The 64-bit ID.


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

emberIsLocalEui64#

bool emberIsLocalEui64 (EmberEUI64 eui64)

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

Parameters
N/Aeui64

An EUI64 ID.

Returns

  • True if eui64 is the local node's ID, otherwise false.


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

Parameters
N/A

Returns

  • The 16-bit ID.


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

Parameters
N/A

Returns

  • The 16-bit ID.


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

Parameters
N/Acode

The manufacturer code for the local node.


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

Parameters
N/Asize

The maximum incoming transfer size for the local node.


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

Parameters
N/Asize

The maximum outgoing transfer size for the local node.


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

emberSetDescriptorCapability#

void emberSetDescriptorCapability (uint8_t capability)

Set the descriptor capability field of the node.

Parameters
N/Acapability

The descriptor capability of the local node.


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

Parameters
N/Aparameters

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.


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

Parameters
N/AphyIndex

The index of the PHY interface for radio parameters.

  • For 2.4 or SubGHz only (switched) device, index will be ignored.

  • For simultaneous dual radio, returns radio parameters based on the provided PHY index. parameters A pointer to an EmberMultiPhyRadioParameters value into which the current radio parameters will be copied.

N/Aparameters

Returns

  • An EmberStatus value indicating the success or failure of the command.


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

emberGetNodeType#

EmberStatus emberGetNodeType (EmberNodeType * resultLocation)

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

Parameters
N/AresultLocation

A pointer to an EmberNodeType value into which the current node type will be copied.

Returns

  • An EmberStatus value that indicates the success or failure of the command.


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

emberSetRadioChannel#

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

Parameters
N/Achannel

The desired radio channel.

Note: When using this API, all devices on a network must use the same channel.

Returns

  • An EmberStatus value indicating the success or failure of the command.


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

emberSetLogicalAndRadioChannel#

EmberStatus emberSetLogicalAndRadioChannel (uint8_t channel)

Set the current logical and physical channel.

Parameters
N/Achannel

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

emberGetRadioChannel#

uint8_t emberGetRadioChannel (void )

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.

Parameters
N/A

Returns

  • The current radio channel.


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

emberSetRadioPower#

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

Parameters
N/Apower

A desired radio output power, in dBm.

Returns

  • An EmberStatus value indicating the success or failure of the command. Failure indicates that the requested power level is out of range.


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

emberGetRadioPower#

int8_t emberGetRadioPower (void )

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.

Parameters
N/A

Returns

  • The current radio output power, in dBm.


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

emberGetRailHandle#

void * emberGetRailHandle (void )

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

Parameters
N/A

Returns

  • A RAIL handle


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

emberGetPanId#

EmberPanId emberGetPanId (void )

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

Parameters
N/A

Returns

  • A PAN ID.


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

emberRadioGetPanId#

EmberPanId emberRadioGetPanId (void )

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

Parameters
N/A

Returns

  • A PAN ID.


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

emberSetRadioIeee802154CcaMode#

EmberStatus emberSetRadioIeee802154CcaMode (uint8_t ccaMode)

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.

Parameters
N/AccaMode

A RAIL_IEEE802154_CcaMode_t value

Returns

  • EMBER_SUCCESS upon success, EMBER_ERR_FATAL otherwise.

Note

  • The default CCA mode for Zigbee is RAIL_IEEE802154_CCA_MODE_RSSI.

  • As mentioned in the RAIL documentation, on platforms that don't support different CCA modes, a call to this function will do nothing.


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

emberGetExtendedPanId#

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.

Parameters
N/AresultLocation

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

emberGetEndpoint#

uint8_t emberGetEndpoint (uint8_t index)

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

Parameters
N/Aindex

The index of an endpoint (as distinct from its endpoint number). This must be less than the value of emberEndpointCount.

This function is provided by the stack, using the data from emberEndpoints, unless the application defines EMBER_APPLICATION_HAS_GET_ENDPOINT in its CONFIGURATION_HEADER.

Returns

  • The endpoint number for the index'th endpoint.


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

emberGetEndpointCount#

uint8_t emberGetEndpointCount (void )

Retrieve the number of configured endpoints.

Parameters
N/A

the value of emberEndpointCount.

This function return the number of configured endpoints on SoC, or the number of configured endpoints on Host + on NCP.

Returns

  • The number of configured endpoint.


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

emberGetEndpointDescription#

bool emberGetEndpointDescription (uint8_t endpoint, EmberEndpointDescription * result)

Retrieve the endpoint description for the given endpoint.

Parameters
N/Aendpoint

The endpoint whose description is to be returned.

N/Aresult

A pointer to the location to which to copy the endpoint description.

This function is provided by the stack, using the data from emberEndpoints, unless the application defines ::EMBER_APPLICATION_HAS_GET_ENDPOINT in its ::CONFIGURATION_HEADER.

Returns

  • True if the description was copied to result, or false if the endpoint is not active.


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

emberGetEndpointCluster#

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.

Parameters
N/Aendpoint

The endpoint from which the cluster ID is to be read.

N/AlistId

The list from which the cluster ID is to be read.

N/AlistIndex

The index of the desired cluster ID in the list. This value must be less than the length of the list. The length can be found in the EmberEndpointDescription for this endpoint.

This function is provided by the stack, using the data from emberEndpoints, unless the application defines ::EMBER_APPLICATION_HAS_GET_ENDPOINT in its CONFIGURATION_HEADER.

Returns

  • The cluster ID at position listIndex in the specified endpoint cluster list.


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

emberIsNodeIdValid#

bool emberIsNodeIdValid (EmberNodeId nodeId)

Determine whether nodeId is valid.

Parameters
N/AnodeId

A node ID.

Returns

  • True if nodeId is valid, false otherwise.


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

emberLookupNodeIdByEui64#

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.

Parameters
N/Aeui64

The EUI64 of the node to look up.

Returns


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

emberLookupEui64ByNodeId#

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

Parameters
N/AnodeId

The short ID of the node to look up.

N/Aeui64Return

The EUI64 of the node is copied here if it is known.

Returns


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

emberCounterHandler#

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.

Parameters
N/Atype

Type of the event.

N/Ainfo

could map to:

  1. data: For transmission events, the number of retries used. For most other events, this parameter is unused and is set to zero.

  2. phyIndex: use for mac specific counters specifying if they belong to sub-GHz or 2.4 GHz.

  3. destinationNodeId: identifying which connection/destinationId a specific counter refers to.

  4. Any combination of the parameters above.

The application must define ::EMBER_APPLICATION_HAS_COUNTER_HANDLER in its CONFIGURATION_HEADER to use this. This function may be called in ISR context, so processing should be kept to a minimum.


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

emberCounterRequiresPhyIndex#

bool emberCounterRequiresPhyIndex (EmberCounterType type)
Parameters
N/Atype

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

emberCounterRequiresDestinationNodeId#

bool emberCounterRequiresDestinationNodeId (EmberCounterType type)
Parameters
N/Atype

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

emberStackTokenChangedHandler#

void emberStackTokenChangedHandler (uint16_t tokenAddress)

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

Parameters
N/AtokenAddress

The address of the stack token that has changed.


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

emberRtosIdleHandler#

bool emberRtosIdleHandler (uint32_t * idleTimeMs)

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

Parameters
N/AidleTimeMs

The time in millisecond the stack is allowed to idle.

Returns

  • True if the application is managing idling the MCU, false otherwise. If this function returns false, the stack will manage idling the MCU.


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

emberRtosStackWakeupIsrHandler#

void emberRtosStackWakeupIsrHandler (void )

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

Parameters
N/A

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

emberGetNeighbor#

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

Parameters
N/Aindex

The index of a neighbor table entry.

N/Aresult

A pointer to the location to which to copy the neighbor table entry.

Returns

  • EMBER_ERR_FATAL if the index is greater or equal to the number of active neighbors, or if the device is an end device. Returns EMBER_SUCCESS otherwise.


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

emberSetRoutingShortcutThreshold#

EmberStatus emberSetRoutingShortcutThreshold (uint8_t costThresh)

Set the routing shortcut threshold to directly use a neighbor instead of performing routing.

Parameters
N/AcostThresh

the routing shortcut value that should be used to directly use a neighbor instead of performing routing.

Returns

  • ::return EMBER_BAD_ARGUMENT if the costThresh is not 1, 3, 5, 7 Returns EMBER_SUCCESS otherwise.


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

emberGetRoutingShortcutThreshold#

uint8_t emberGetRoutingShortcutThreshold (void )

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

Parameters
N/A

Returns

  • the routingShortcutThresh which takes one of the following values: 1, 3, 5, or 7.


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

emberSetInitialNeighborOutgoingCost#

EmberStatus emberSetInitialNeighborOutgoingCost (uint8_t cost)

Set neighbor's initial outgoing link cost.

Parameters
N/Acost

The new default cost.

Returns


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

emberGetInitialNeighborOutgoingCost#

uint8_t emberGetInitialNeighborOutgoingCost (void )

Get neighbor's initial outgoing link cost.

Parameters
N/A

Returns

  • The default cost associated with new neighbor's outgoing links. NOTE: There is no EZSP version of this function yet.


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

emberResetRejoiningNeighborsFC#

void emberResetRejoiningNeighborsFC (bool reset)

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

Parameters
N/Areset

True or False.

Returns

  • ::void NOTE: There is no EZSP version of this function yet.


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

emberIsResetRejoiningNeighborsFCEnabled#

bool emberIsResetRejoiningNeighborsFCEnabled (void )

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

Parameters
N/A

Returns

  • ::True or False. NOTE: There is no EZSP version of this function yet.


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

emberGetNeighborFrameCounter#

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

Parameters
N/AnodeEui64

The neighbor or child EUI to search.

N/AreturnFrameCounter

The frame counter variable to fill in.

Returns

  • EmberStatus depending on whether the frame counter is found in the neighbor or child table.


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

emberSetNeighborFrameCounter#

EmberStatus emberSetNeighborFrameCounter (EmberEUI64 nodeEui64, uint32_t frameCounter)

Set the frame counter for the specified neighbor or child.

Parameters
N/AnodeEui64

The neighbor or child EUI to search.

N/AframeCounter

The frame counter to set.

Returns

  • EmberStatus depending on whether the frame counter is set in the neighbor or child table.


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

emberGetRouteTableEntry#

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

Parameters
N/Aindex

The index of a route table entry.

N/Aresult

A pointer to the location to which to copy the route table entry.

Returns


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

emberStackProfile#

uint8_t emberStackProfile (void )

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

Parameters
N/A

Returns

  • The stack profile.


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

emberSecurityLevel#

uint8_t emberSecurityLevel (void )

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

Parameters
N/A

Returns

  • The security level.


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

sl_zigbee_get_stack_compliance_revision#

uint8_t sl_zigbee_get_stack_compliance_revision (void )

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

Parameters
N/A

Returns

  • integer value of the compliance revision


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

emberTreeDepth#

uint8_t emberTreeDepth (void )

Return the depth of the node in the network.

Parameters
N/A

Returns

  • The current depth.


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

emberNeighborCount#

uint8_t emberNeighborCount (void )

Return the number of active entries in the neighbor table.

Parameters
N/A

Returns

  • The number of active entries in the neighbor table.


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

emberRouteTableSize#

uint8_t emberRouteTableSize (void )

Return the size of the route table.

Parameters
N/A

Returns

  • The size of the route table.


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

emberNextZigbeeSequenceNumber#

uint8_t emberNextZigbeeSequenceNumber (void )

Increment and returns the Zigbee sequence number.

Parameters
N/A

Returns

  • The next Zigbee sequence number.


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

emberGetMaxNwkRetries#

uint8_t emberGetMaxNwkRetries (void )

Get maximum number of NWK retries.

Parameters
N/A

Returns the maximum number of NWK retries that will be attempted

Returns

  • uint8_t Max NWK retries


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