License#
Copyright 2018 Silicon Laboratories Inc. www.silabs.com
SPDX-License-Identifier: Zlib
The licensor of this software is Silicon Laboratories Inc.
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
This notice may not be removed or altered from any source distribution.
/***************************************************************************/
#ifdef SL_CATALOG_CONNECT_AES_SECURITY_PRESENT
#include <psa/crypto.h>
#endif
#define EMBER_HIGH_PRIORITY_TASKS \
(EMBER_OUTGOING_MESSAGES | EMBER_INCOMING_MESSAGES | EMBER_RADIO_IS_ON)
#define EMBER_INVALID_CHANNEL 65535
void emberStackStatusHandler(EmberStatus status);
void emberStackIsrHandler(void);
bool emberStackIdleHandler(uint32_t *idleTimeMs);
void emberRadioNeedsCalibratingHandler(void);
void emberStackPowerDown(void);
void emberStackPowerUp(void);
EmberNetworkStatus emberNetworkState(void);
bool emberStackIsUp(void);
EmberStatus emberSetSecurityKey(EmberKeyData *key);
EmberStatus emberGetSecurityKey(EmberKeyData *key);
#ifdef SL_CATALOG_CONNECT_AES_SECURITY_PRESENT
EmberStatus emberSetPsaSecurityKey(mbedtls_svc_key_id_t key_id);
EmberStatus emberRemovePsaSecurityKey(void);
mbedtls_svc_key_id_t emberGetKeyId(void);
#endif
EmberStatus emberSetRadioChannelExtended(uint16_t channel, bool persistent);
EmberStatus emberSetRadioChannel(uint16_t channel);
uint16_t emberGetRadioChannel(void);
uint16_t emberGetDefaultChannel(void);
EmberStatus emberPhyConfigInit(EmberPhyType phyType);
EmberStatus emberCalibrateCurrentChannelExtended(uint32_t calValueIn,
uint32_t *calValueOut);
EmberStatus emberCalibrateCurrentChannel(void);
EmberStatus emberApplyIrCalibration(uint32_t calValue);
EmberStatus emberTempCalibration(void);
EmberCalType emberGetCalType(void);
EmberStatus emberSetRadioPower(int16_t power, bool persistent);
int16_t emberGetRadioPower(void);
EmberStatus emberSetRadioPowerMode(bool radioOn);
EmberStatus emberSetMacParams(int8_t ccaThreshold,
uint8_t maxCcaAttempts,
uint8_t minBackoffExp,
uint8_t maxBackoffExp,
uint16_t ccaBackoff,
uint16_t ccaDuration,
uint8_t maxRetries,
uint32_t csmaTimeout,
uint16_t ackTimeout);
EmberStatus emberMacGetParentAddress(EmberMacAddress *parentAddress);
uint32_t emberStackIdleTimeMs(uint16_t *currentStackTasks);
uint32_t emberGetInt32uMillisecondTick(void);
uint16_t emberCurrentStackTasks(void);
bool emberOkToNap(void);
bool emberOkToHibernate(void);
uint8_t *emberGetEui64(void);
bool emberIsLocalEui64(EmberEUI64 eui64);
EmberNodeId emberGetNodeId(void);
EmberPanId emberGetPanId(void);
EmberNodeType emberGetNodeType(void);
EmberNodeId emberGetParentId(void);
EmberStatus emberGetVersionInfo(uint16_t *gsdk_version, uint16_t *connect_stack_version, uint32_t *bootloader_version);
EmberStatus emberGetCounter(EmberCounterType counterType, uint32_t *count);
void emberChildJoinHandler(EmberNodeType nodeType,
EmberNodeId nodeId);
Handlers#
A callback invoked when the status of the stack changes.
This handler is invoked in ISR context when certain stack-related ISR routines fire.
A callback to allow the application to manage idling the MCU.
The radio calibration callback function.
Invoked at coordinator, range extender, or mac mode nodes when a new child has joined the device.
APIs#
Immediately turns the radio power completely off.
Power up the radio. Typically called coming out of sleep.
Return the current join status.
Indicate whether the stack is currently up.
Write a key at the address of the formerly used security key. The key set by this function will not be used by the stack. The API is meant to be used to erase a key as it is now managed by PSA Crypto API.
Get the legacy security key. This function does not return the value set with the PSA Crypto API.
Set the channel for sending and receiving messages on the current network. The available channels depend on the radio config you use. Channels can differ more than the frequency if it's a multi-PHY config.
Set the channel for sending and receiving messages on the current network. The available channels depend on the radio config you use. Channels can differ more than the frequency if it's a multi-PHY config.
Get the radio channel, to which a node is set, on the current network. The available channels depend on the radio config you use. Channels can differ more than the frequency if it's a multi-PHY config.
Get the first available channel in the current radio configuration.
Indicate if the PHY configuration of the stack. Currently only supporting EMBER_RADIO_CONFIGURATOR and EMBER_STANDARD_PHY_2_4GHZ. It must be called before initializing the stack.
Perform image rejection calibration on the current channel. The stack will notify the application that it needs channel calibration via the emberRadioNeedsCalibratingHandler() callback function during emberTick(). This function should only be called from within the context of the emberRadioNeedsCalibratingHandler() callback function. Note if this function is called when the radio is off, it will turn the radio on and leave it on.
Perform image rejection calibration on the current channel. The stack will notify the application that it needs channel calibration via the emberRadioNeedsCalibratingHandler() callback function during emberTick(). This function should only be called from within the context of the emberRadioNeedsCalibratingHandler() callback function. Note if this function is called when the radio is off, it will turn the radio on and leave it on.
Apply Image Rejection calibration on the current channel. The stack will notify the application that it needs channel calibration via the emberRadioNeedsCalibratingHandler() callback function during emberTick(). This function should only be called from within the context of the emberRadioNeedsCalibratingHandler() callback function. Note if this function is called when the radio is off, it will turn the radio on and leave it on.
Perform Temperature VCO calibration calibration on the current channel. The stack will notify the application that it needs channel calibration via the emberRadioNeedsCalibratingHandler() callback function during emberTick(). This function should only be called from within the context of the emberRadioNeedsCalibratingHandler() callback function. Note if this function is called when the radio is off, it will turn the radio on and leave it on.
Fetch calibration type associated to the latest emberRadioNeedsCalibratingHandler() callback.
Set the radio output power at which a node is to operate for the current network. The radio has a finite power resolution, so it will approximate the requested power with the closest possible value at or below the requested value.
Get the radio output power of the current network at which a node is operating. This might be different to what you set using emberSetRadioPower because the radio has a finite power resolution, and emberSetRadioPower must approximate to the closest possible value at or below the requested value. This API however returns with the actual setting.
Allow the application to turn the radio on/off. This API is intended for use with direct devices only.
Set the MAC layer transmission parameters.
Retrieve the parent address. This API can be invoked only for nodes of EMBER_MAC_MODE_DEVICE or EMBER_MAC_MODE_SLEEPY_DEVICE type.
Return the time in milliseconds the stack could idle for.
Return the current time in milliseconds.
Return a bitmask indicating the stack's current tasks.
Indicate whether the stack is currently in a state with no high-priority tasks and may sleep.
Indicate whether the stack currently has any pending tasks.
Return the EUI64 ID of the local node.
Determine whether eui64
is the local node's EUI64 ID. EUI64 is easily accessible in SoC mode, but in Host-NCP, the address is stored on the NCP. This API can be used on the Host to compare a value with the locally stored one.
Return the 16-bit node ID of local node on the current network.
Return the local node's PAN ID of the current network.
Return an EmberNodeType value indicating the type of the node.
Return the parent's node ID.
Get the GSDK, Stack and bootloader versions all at once. The version format are not all the same. Please refer to the corresponding documentation to handle the information correctly.
Macros#
A mask of the tasks that prevent a device from sleeping.
Invalid channel number.
Functions#
Retrieve the stack counter corresponding to the passed counter type.
Handlers Documentation#
emberStackStatusHandler#
void emberStackStatusHandler (EmberStatus status)
A callback invoked when the status of the stack changes.
[in] | status | Stack status. One of the following: |
The application is free to begin messaging once it receives the EMBER_NETWORK_UP status.
72
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberStackIsrHandler#
void emberStackIsrHandler (void )
This handler is invoked in ISR context when certain stack-related ISR routines fire.
N/A |
77
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberStackIdleHandler#
bool emberStackIdleHandler (uint32_t * idleTimeMs)
A callback to allow the application to manage idling the MCU.
[inout] | idleTimeMs | A pointer to the time in millisecond the stack is allowed to idle. If the application decides to manage idling the MCU, it should update the passed value with the actual time the MCU was idled. |
Returns
true if the application is managing idling the MCU, false otherwise. If this function returns false, the stack will manage idling the MCU.
88
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberRadioNeedsCalibratingHandler#
void emberRadioNeedsCalibratingHandler (void )
The radio calibration callback function.
N/A |
This handler is invoked by the stack upon receiving a "calibration needed" event from the radio to inform the application that it should perform calibration of the current channel as soon as possible using the emberCalibrateCurrentChannel() API. While calibration only takes tens of microseconds, the application can failsafe any critical processes or peripherals before calling emberCalibrateCurrentChannel(). The application must call emberCalibrateCurrentChannel() in response to this callback to maintain expected radio performance.
102
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberChildJoinHandler#
void emberChildJoinHandler (EmberNodeType nodeType, EmberNodeId nodeId)
Invoked at coordinator, range extender, or mac mode nodes when a new child has joined the device.
[in] | nodeType | The role of the joining device (EMBER_STAR_RANGE_EXTENDER, EMBER_STAR_END_DEVICE, EMBER_STAR_SLEEPY_END_DEVICE, EMBER_MAC_MODE_DEVICE or EMBER_MAC_MODE_SLEEPY_DEVICE). |
[in] | nodeId | The node ID of the joining device. |
601
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
APIs Documentation#
emberStackPowerDown#
void emberStackPowerDown (void )
Immediately turns the radio power completely off.
N/A |
After calling this function, do not call any other stack function except emberStackPowerUp() because all other stack functions require that the radio is powered to operate properly.
118
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberStackPowerUp#
void emberStackPowerUp (void )
Power up the radio. Typically called coming out of sleep.
N/A |
For non-sleepy devices, also turns the radio on and leaves it in RX mode.
124
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/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.
133
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/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 and does not indicate whether or not other nodes are able to communicate with this node.
Returns
true if the stack is up, false otherwise.
144
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberSetSecurityKey#
EmberStatus emberSetSecurityKey (EmberKeyData * key)
Write a key at the address of the formerly used security key. The key set by this function will not be used by the stack. The API is meant to be used to erase a key as it is now managed by PSA Crypto API.
[in] | key | An EmberKeyData value containing the security key to be set. |
Returns
An EmberStatus value of EMBER_SUCCESS if the key was successfully set. Otherwise, it returns an EmberStatus value of EMBER_INVALID_CALL.
156
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberGetSecurityKey#
EmberStatus emberGetSecurityKey (EmberKeyData * key)
Get the legacy security key. This function does not return the value set with the PSA Crypto API.
[in] | key | An EmberKeyData where the legcay security key will be stored |
Returns
An EmberStatus value of EMBER_SUCCESS if the key was successfully read.
166
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberSetRadioChannelExtended#
EmberStatus emberSetRadioChannelExtended (uint16_t channel, bool persistent)
Set the channel for sending and receiving messages on the current network. The available channels depend on the radio config you use. Channels can differ more than the frequency if it's a multi-PHY config.
[in] | channel | A desired radio channel. |
[in] | persistent | A flag to instruct the stack to save the channel setting in persistent or not. Each persistent call triggers a token write. Excessive usage might cause flash to wear-out. |
Note
Care should be taken when using this API. All devices on a network must use the same channel.
Returns
An EmberStatus value of:
EMBER_SUCCESS if the stack accepted the channel change.
EMBER_INVALID_CALL if the node is currently performing frequency hopping.
EMBER_PHY_INVALID_CHANNEL if the passed channel is invalid.
EMBER_MAC_BUSY if the MAC is currently performing a high priority task.
222
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberSetRadioChannel#
EmberStatus emberSetRadioChannel (uint16_t channel)
Set the channel for sending and receiving messages on the current network. The available channels depend on the radio config you use. Channels can differ more than the frequency if it's a multi-PHY config.
[in] | channel | A desired radio channel. |
Note
Care should be taken when using this API. All devices on a network must use the same channel. Each call triggers a token write. Excessive usage might cause flash to wear-out.
Returns
An EmberStatus value of:
EMBER_SUCCESS if the stack accepted the channel change.
EMBER_INVALID_CALL if the node is currently performing frequency hopping.
EMBER_PHY_INVALID_CHANNEL if the passed channel is invalid.
EMBER_MAC_BUSY if the MAC is currently performing a high priority task.
242
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberGetRadioChannel#
uint16_t emberGetRadioChannel (void )
Get the radio channel, to which a node is set, on the current network. The available channels depend on the radio config you use. Channels can differ more than the frequency if it's a multi-PHY config.
N/A |
Returns
The current radio channel.
250
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberGetDefaultChannel#
uint16_t emberGetDefaultChannel (void )
Get the first available channel in the current radio configuration.
N/A |
Returns
The first available channel in the radio configuration. 0xffff if error
257
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberPhyConfigInit#
EmberStatus emberPhyConfigInit (EmberPhyType phyType)
Indicate if the PHY configuration of the stack. Currently only supporting EMBER_RADIO_CONFIGURATOR and EMBER_STANDARD_PHY_2_4GHZ. It must be called before initializing the stack.
N/A | phyType |
Returns
EMBER_BAD_ARGUMENT if phyType is incorrect EMBER_INVALID_CALL if API is called after stack initialization EMBER_SUCCESS otherwise
267
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberCalibrateCurrentChannelExtended#
EmberStatus emberCalibrateCurrentChannelExtended (uint32_t calValueIn, uint32_t * calValueOut)
Perform image rejection calibration on the current channel. The stack will notify the application that it needs channel calibration via the emberRadioNeedsCalibratingHandler() callback function during emberTick(). This function should only be called from within the context of the emberRadioNeedsCalibratingHandler() callback function. Note if this function is called when the radio is off, it will turn the radio on and leave it on.
[in] | calValueIn | the calibration value to use. Set to EMBER_CAL_INVALID_VALUE to perform automatic calibration. |
[out] | calValueOut | a pointer to the calibration value that was used. This parameter is ignored when set to NULL. |
Returns
An EmberStatus value indicating the success or failure of the command.
286
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberCalibrateCurrentChannel#
EmberStatus emberCalibrateCurrentChannel (void )
Perform image rejection calibration on the current channel. The stack will notify the application that it needs channel calibration via the emberRadioNeedsCalibratingHandler() callback function during emberTick(). This function should only be called from within the context of the emberRadioNeedsCalibratingHandler() callback function. Note if this function is called when the radio is off, it will turn the radio on and leave it on.
N/A |
297
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberApplyIrCalibration#
EmberStatus emberApplyIrCalibration (uint32_t calValue)
Apply Image Rejection calibration on the current channel. The stack will notify the application that it needs channel calibration via the emberRadioNeedsCalibratingHandler() callback function during emberTick(). This function should only be called from within the context of the emberRadioNeedsCalibratingHandler() callback function. Note if this function is called when the radio is off, it will turn the radio on and leave it on.
[in] | calValue | the calibration value to apply. Should not be set to EMBER_CAL_INVALID_VALUE. |
Returns
An EmberStatus value indicating the success or failure of the command.
313
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberTempCalibration#
EmberStatus emberTempCalibration (void )
Perform Temperature VCO calibration calibration on the current channel. The stack will notify the application that it needs channel calibration via the emberRadioNeedsCalibratingHandler() callback function during emberTick(). This function should only be called from within the context of the emberRadioNeedsCalibratingHandler() callback function. Note if this function is called when the radio is off, it will turn the radio on and leave it on.
N/A |
Returns
An EmberStatus value indicating the success or failure of the command.
326
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberGetCalType#
EmberCalType emberGetCalType (void )
Fetch calibration type associated to the latest emberRadioNeedsCalibratingHandler() callback.
N/A |
Returns
An EmberCalType value indicating which type of calibration should be performed.
334
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberSetRadioPower#
EmberStatus emberSetRadioPower (int16_t power, bool persistent)
Set the radio output power at which a node is to operate for the current network. The radio has a finite power resolution, so it will approximate the requested power with the closest possible value at or below the requested value.
[in] | power | Desired radio output power, in deci-dBm. |
[in] | persistent | A flag to instruct the stack to save the power setting in persistent or not. |
Note
Care should be taken when using this API on a running network, because it directly impacts the established link qualities neighboring nodes have with the node on which it is called. This can lead to disruption of existing routes and erratic network behavior.
Returns
An EmberStatus value indicating the success or failure of the command. Failure indicates that the requested power level is out of range.
353
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberGetRadioPower#
int16_t emberGetRadioPower (void )
Get the radio output power of the current network at which a node is operating. This might be different to what you set using emberSetRadioPower because the radio has a finite power resolution, and emberSetRadioPower must approximate to the closest possible value at or below the requested value. This API however returns with the actual setting.
N/A |
Returns
Current radio output power, in deci-dBm.
363
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberSetRadioPowerMode#
EmberStatus emberSetRadioPowerMode (bool radioOn)
Allow the application to turn the radio on/off. This API is intended for use with direct devices only.
[in] | radioOn | If this parameter is true, the radio is turned on, otherwise it's turned off. |
Returns
An EmberStatus value indicating the success or failure of the command. Failure indicates that the node type is a type other than EMBER_DIRECT_DEVICE.
375
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberSetMacParams#
EmberStatus emberSetMacParams (int8_t ccaThreshold, uint8_t maxCcaAttempts, uint8_t minBackoffExp, uint8_t maxBackoffExp, uint16_t ccaBackoff, uint16_t ccaDuration, uint8_t maxRetries, uint32_t csmaTimeout, uint16_t ackTimeout)
Set the MAC layer transmission parameters.
[in] | ccaThreshold | The CCA RSSI threshold, in dBm, above which the channel is considered 'busy'. This parameter is by default set to EMBER_RADIO_CCA_THRESHOLD. |
[in] | maxCcaAttempts | The maximum number of clear channel assessment attempts that are performed prior to fail to transmit a packet with EMBER_PHY_TX_CCA_FAIL status. This parameter is set by default to 4. If this parameter is set to 0, the CCA assessment shall not be performed. |
[in] | minBackoffExp | The backoff exponent used if the initial channel clear assessment fails. This parameter is set by default to 3. Note: this is meaningful only if the checkCca parameter is set to true. |
[in] | maxBackoffExp | The backoff exponent used if the final channel clear assessment fails. This parameter is set by default to 5. Note: this is meaningful only if the checkCca parameter is set to true. |
[in] | ccaBackoff | The backoff unit period in microsecond. It is multiplied by the random backoff exponential controlled by minBackoffExp and maxBackoffExp to determine the overall backoff period. This parameter is set by default to the PHY symbol time in microseconds multiplied by 20. |
[in] | ccaDuration | The minimum desired CCA check duration in microseconds. This parameter is set by default to the PHY symbol time in microseconds multiplied by 8. |
[in] | maxRetries | The number of transmission retries that is performed if no acknowledgment was received. This parameter is set by default to 3 (which means that a total of 4 transmission attempts will be performed). |
[in] | csmaTimeout | An overall timeout in microsecond time base for the the CSMA operations. This value is set by default to 0 which means that no timeout is imposed. |
[in] | ackTimeout | The ack timeout in microseconds after which the transmitting gives up waiting for an acknowledgment. This parameter is set by default to (EMBER_MAC_ACK_TIMEOUT_MS * 1000). |
Note
The CSMA/CA (CCA) values are directly used in RAIL's
RAIL_CsmaConfig_t
and further information can be found in the RAIL API documentation.
Returns
An EmberStatus value indicating whether the MAC parameters were successfully set or the reason of failure.
432
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberMacGetParentAddress#
EmberStatus emberMacGetParentAddress (EmberMacAddress * parentAddress)
Retrieve the parent address. This API can be invoked only for nodes of EMBER_MAC_MODE_DEVICE or EMBER_MAC_MODE_SLEEPY_DEVICE type.
N/A | parentAddress |
Returns
An EmberStatus value of EMBER_SUCCESS if the parent address was successfully retrieved, otherwise an EmberStatus value indicating the reason of failure.
449
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberStackIdleTimeMs#
uint32_t emberStackIdleTimeMs (uint16_t * currentStackTasks)
Return the time in milliseconds the stack could idle for.
[in] | currentStackTasks | A pointer to an integer that is written with the active stack tasks at the time of the API call. |
Returns
Allowed idle time in milliseconds.
458
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberGetInt32uMillisecondTick#
uint32_t emberGetInt32uMillisecondTick (void )
Return the current time in milliseconds.
N/A |
Returns
Current time in milliseconds.
464
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberCurrentStackTasks#
uint16_t emberCurrentStackTasks (void )
Return a bitmask indicating the stack's current tasks.
N/A |
The mask EMBER_HIGH_PRIORITY_TASKS defines which tasks are high-priority. Devices should not sleep if any high-priority tasks are active. Active tasks that are not high-priority are waiting for messages to arrive from other devices. If there are active tasks, but no high-priority ones, the device may sleep but should periodically wake up and call emberPollForData() to receive messages. Parents will hold messages for EMBER_INDIRECT_TRANSMISSION_TIMEOUT_MS milliseconds before discarding them.
Returns
A bitmask of the stack's active tasks.
479
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberOkToNap#
bool emberOkToNap (void )
Indicate whether the stack is currently in a state with no high-priority tasks and may sleep.
N/A |
Tasks may be expecting incoming messages, in which case the device should periodically wake up and call emberPollForData() to receive messages. This function can only be called when the node type is EMBER_STAR_SLEEPY_END_DEVICE.
Returns
true if the application may sleep but the stack may be expecting incoming messages.
492
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberOkToHibernate#
bool emberOkToHibernate (void )
Indicate whether the stack currently has any pending tasks.
N/A |
If no tasks are pending , emberTick() does not need to be called until next stack API function is called. This function can only be called when the node type is EMBER_STAR_SLEEPY_END_DEVICE.
Returns
true if the application may sleep for as long as it wishes.
502
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberGetEui64#
uint8_t * emberGetEui64 (void )
Return the EUI64 ID of the local node.
N/A |
Returns
The 64-bit ID.
508
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberIsLocalEui64#
bool emberIsLocalEui64 (EmberEUI64 eui64)
Determine whether eui64
is the local node's EUI64 ID. EUI64 is easily accessible in SoC mode, but in Host-NCP, the address is stored on the NCP. This API can be used on the Host to compare a value with the locally stored one.
[in] | eui64 | An EUI64 ID. |
Returns
true if
eui64
is the local node's ID, otherwise false.
519
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberGetNodeId#
EmberNodeId emberGetNodeId (void )
Return the 16-bit node ID of local node on the current network.
N/A |
Returns
The 16-bit ID. Byte order is little endian.
525
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberGetPanId#
EmberPanId emberGetPanId (void )
Return the local node's PAN ID of the current network.
N/A |
Returns
The PAN ID.
531
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberGetNodeType#
EmberNodeType emberGetNodeType (void )
Return an EmberNodeType value indicating the type of the node.
N/A |
Returns
The node type.
537
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberGetParentId#
EmberNodeId emberGetParentId (void )
Return the parent's node ID.
N/A |
Returns
The parent's node ID.
543
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
emberGetVersionInfo#
EmberStatus emberGetVersionInfo (uint16_t * gsdk_version, uint16_t * connect_stack_version, uint32_t * bootloader_version)
Get the GSDK, Stack and bootloader versions all at once. The version format are not all the same. Please refer to the corresponding documentation to handle the information correctly.
N/A | gsdk_version | |
N/A | connect_stack_version | |
N/A | bootloader_version |
Returns
EMBER_SUCCESS if successful
550
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
Macro Definition Documentation#
EMBER_HIGH_PRIORITY_TASKS#
#define EMBER_HIGH_PRIORITY_TASKSValue:
(EMBER_OUTGOING_MESSAGES | EMBER_INCOMING_MESSAGES | EMBER_RADIO_IS_ON)
A mask of the tasks that prevent a device from sleeping.
44
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
EMBER_INVALID_CHANNEL#
#define EMBER_INVALID_CHANNELValue:
65535
Invalid channel number.
51
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h
Function Documentation#
emberGetCounter#
EmberStatus emberGetCounter (EmberCounterType counterType, uint32_t * count)
Retrieve the stack counter corresponding to the passed counter type.
[in] | counterType | An EmberCounterType value indicating the stack counter to be retrieved. |
[out] | count | The counter of the requested |
Returns
An EmberStatus value of EMBER_SUCCESS if the stack counter was successfully retrieved. An EmberStatus value of EMBER_INVALID_CALL if the passed counterType is invalid. An EmberStatus value of EMBER_LIBRARY_NOT_PRESENT if the stack counter library is not present.
578
of file /mnt/raid/workspaces/ws.tfWcRzYcf/overlay/gsdk/protocol/flex/stack/include/stack-info.h