Developing with ZBOSS SDK for Zigbee
|
Data Structures | |
struct | zb_zdo_signal_leave_params_s |
Leave parameters. More... | |
struct | zb_zdo_signal_nlme_status_indication_params_s |
NLME status indication parameters. More... | |
struct | zb_zdo_signal_leave_indication_params_s |
Leave Indication parameters. More... | |
struct | zb_nwk_signal_device_associated_params_s |
Association parameters. More... | |
struct | zb_zdo_signal_device_annce_params_s |
Association parameters. More... | |
struct | zb_zdo_signal_can_sleep_params_s |
Sleep signal parameters. More... | |
struct | zb_zdo_signal_macsplit_dev_boot_params_s |
Macsplit device boot parameters. More... | |
struct | zb_zdo_signal_fb_initiator_finished_params_s |
F&B Initiator Finished signal parameters. More... | |
struct | zb_zdo_signal_device_update_params_s |
Device Updated signal parameters. More... | |
struct | zb_zdo_signal_device_authorized_params_s |
Device Authorized signal parameters. More... | |
struct | zb_zdo_app_signal_hdr_s |
Macros | |
#define | ZB_ZDO_SIGNAL_GET_PARAMS(sg_p, type) ((type *)(void *)((((zb_uint8_t *)sg_p) + sizeof(zb_zdo_app_signal_hdr_t)))) |
#define | ZB_ZDO_SIGNAL_CUT_HEADER(buf) zb_buf_cut_left(buf, sizeof(zb_zdo_app_signal_hdr_t)) |
Cuts ZBOSS signal headers while keeping the signal parameter (if it was in the buffer). More... | |
#define | ZB_GET_APP_SIGNAL_STATUS(param) zb_buf_get_status(param) |
Get status from the application signal. More... | |
Functions | |
void | zboss_signal_handler (zb_uint8_t param) |
zb_zdo_app_signal_type_t | zb_get_app_signal (zb_uint8_t param, zb_zdo_app_signal_hdr_t **sg_p) |
Unpack application signal buffer in zboss_signal_handler() More... | |
ZDP status values | |
| |
#define | ZB_ZDP_STATUS_SUCCESS 0x00 |
#define | ZB_ZDP_STATUS_INV_REQUESTTYPE 0x80 |
#define | ZB_ZDP_STATUS_DEVICE_NOT_FOUND 0x81 |
#define | ZB_ZDP_STATUS_INVALID_EP 0x82 |
#define | ZB_ZDP_STATUS_NOT_ACTIVE 0x83 |
#define | ZB_ZDP_STATUS_NOT_SUPPORTED 0x84 |
#define | ZB_ZDP_STATUS_TIMEOUT 0x85 |
#define | ZB_ZDP_STATUS_NO_MATCH 0x86 |
#define | ZB_ZDP_STATUS_NO_ENTRY 0x88 |
#define | ZB_ZDP_STATUS_NO_DESCRIPTOR 0x89 |
#define | ZB_ZDP_STATUS_INSUFFICIENT_SPACE 0x8a |
#define | ZB_ZDP_STATUS_NOT_PERMITTED 0x8b |
#define | ZB_ZDP_STATUS_TABLE_FULL 0x8c |
#define | ZB_ZDP_STATUS_NOT_AUTHORIZED 0x8d |
#define | ZB_ZDP_STATUS_INVALID_INDEX 0x8f |
#define | ZB_ZDP_STATUS_TIMEOUT_BY_STACK 0xff |
Status codes for F&B Initiator Finished signal | |
#define | ZB_ZDO_FB_INITIATOR_STATUS_SUCCESS 0U |
#define | ZB_ZDO_FB_INITIATOR_STATUS_CANCEL 1U |
#define | ZB_ZDO_FB_INITIATOR_STATUS_ALARM 2U |
#define | ZB_ZDO_FB_INITIATOR_STATUS_ERROR 3U |
Authorization types for @ref ZB_ZDO_SIGNAL_DEVICE_AUTHORIZED | |
#define | ZB_ZDO_AUTHORIZATION_TYPE_LEGACY 0U |
#define | ZB_ZDO_AUTHORIZATION_TYPE_R21_TCLK 1U |
Authorization statuses for ZB_ZDO_AUTHORIZATION_TYPE_LEGACY value of @ref | |
#define | ZB_ZDO_LEGACY_DEVICE_AUTHORIZATION_SUCCESS 0U |
#define | ZB_ZDO_LEGACY_DEVICE_AUTHORIZATION_FAILED 1U |
Authorization statuses for ZB_ZDO_AUTHORIZATION_TYPE_R21_TCLK value of @ref | |
#define | ZB_ZDO_TCLK_AUTHORIZATION_SUCCESS 0U |
#define | ZB_ZDO_TCLK_AUTHORIZATION_TIMEOUT 1U |
#define | ZB_ZDO_TCLK_AUTHORIZATION_FAILED 2U |
There are tools that allow an application to handle Zigbee events like network formation, association status, leave indication, and others. Due to its nature, different Zigbee events appear asynchronously and ZBOSS informs the application about it through application signals. The application may handle or ignore a received signal. All application signals are processed in the application with a predefined callback function zboss_signal_handler(). It is mandatory for each application to implement this function, even if there is no need to process a signal.
There are policies that should be taken into account while implementing zboss_signal_handler() function:
#define ZB_BDB_SIGNAL_DEVICE_FIRST_START 5U |
Device started for the first time after the NVRAM erase.
When generated:
Status codes:
Signal parameters:
#define ZB_BDB_SIGNAL_DEVICE_REBOOT 6U |
Device started using the NVRAM contents.
When generated:
Status codes:
Signal parameters:
#define ZB_BDB_SIGNAL_FINDING_AND_BINDING_INITIATOR_FINISHED 13U |
BDB finding and binding for an initiator endpoint completed.
When generated:
Status codes:
Signal parameters:
#define ZB_BDB_SIGNAL_FINDING_AND_BINDING_TARGET_FINISHED 12U |
BDB finding and binding for a target endpoint completed.
When generated:
Status codes:
Signal parameters:
#define ZB_BDB_SIGNAL_FORMATION 11U |
BDB network formation completed (Network formation only).
When generated:
Status codes:
Signal parameters:
#define ZB_BDB_SIGNAL_STEERING 10U |
BDB network steering completed (Network steering only).
When generated:
Status codes:
Has additional data of type zb_zdo_signal_leave_indication_params_t.
Signal parameters:
#define ZB_BDB_SIGNAL_WWAH_REJOIN_STARTED 20U |
WWAH Rejoin start indication.
When generated:
Status codes:
Signal parameters: no
#define ZB_COMMON_SIGNAL_CAN_SLEEP 22U |
Notifies the application that the MCU can sleep for the specified period of time.
When generated:
Status codes:
Signal parameters:
#define ZB_GET_APP_SIGNAL_STATUS | ( | param | ) | zb_buf_get_status(param) |
Get status from the application signal.
param | - buffer reference |
#define ZB_NLME_STATUS_INDICATION 50U |
NLME status indication. Application may implement additional logic based on receiving some statuses.
#define ZB_NWK_SIGNAL_DEVICE_ASSOCIATED 18U |
Obsolete signal, used for pre-R21 ZBOSS API compatibility. Use ZB_ZDO_SIGNAL_DEVICE_ANNCE signal instead!
When generated:
Status codes:
Signal parameters:
#define ZB_NWK_SIGNAL_NO_ACTIVE_LINKS_LEFT 24U |
Notifies the application about the Neighbor Table expiration. It means that the neighbor devices did not send the Link Status messages for ZB_NWK_ROUTER_AGE_LIMIT * ZB_NWK_LINK_STATUS_PERIOD seconds.
When generated:
Status codes:
Signal parameters:
#define ZB_NWK_SIGNAL_PANID_CONFLICT_DETECTED 49U |
PAN ID conflict has been detected. Application has to decide whether to initiate its resolution or not.
#define ZB_SIGNAL_SUBGHZ_RESUME 42U |
ZC resumed our device tx (sub-ghz only)
#define ZB_SIGNAL_SUBGHZ_SUSPEND 41U |
ZC / our MAC suspended our device tx: out of Duty cycle (sub-ghz only)
#define ZB_ZDO_AUTHORIZATION_TYPE_LEGACY 0U |
Authorization type for legacy devices ( < r21)
#define ZB_ZDO_AUTHORIZATION_TYPE_R21_TCLK 1U |
Authorization type for r21 device through TCLK
#define ZB_ZDO_FB_INITIATOR_STATUS_ALARM 2U |
F&B on the Initiator side is finished by timeout
#define ZB_ZDO_FB_INITIATOR_STATUS_CANCEL 1U |
F&B on the Initiator side is canceled
#define ZB_ZDO_FB_INITIATOR_STATUS_ERROR 3U |
F&B on the Initiator side is failure finished
#define ZB_ZDO_FB_INITIATOR_STATUS_SUCCESS 0U |
F&B with a Target on the Initiator side is success completed
#define ZB_ZDO_LEGACY_DEVICE_AUTHORIZATION_FAILED 1U |
Authorization failed
#define ZB_ZDO_LEGACY_DEVICE_AUTHORIZATION_SUCCESS 0U |
Authorization success
#define ZB_ZDO_SIGNAL_CUT_HEADER | ( | buf | ) | zb_buf_cut_left(buf, sizeof(zb_zdo_app_signal_hdr_t)) |
Cuts ZBOSS signal headers while keeping the signal parameter (if it was in the buffer).
buf | - pointer to a zb_buf_t structure. The buffer must be the one passed into zboss_signal_handler. |
#define ZB_ZDO_SIGNAL_DEFAULT_START 0U |
Obsolete signal, used for pre-R21 ZBOSS API compatibility. Not recommended to use.
When generated:
Status codes:
Signal parameters:
#define ZB_ZDO_SIGNAL_DEVICE_ANNCE 2U |
Notifies the application about the new device appearance.
When generated:
Status codes:
Signal parameters:
#define ZB_ZDO_SIGNAL_DEVICE_AUTHORIZED 47U |
Notifies the Zigbee Trust center application about a new device is authorized in the network. For Zigbee R21 devices it means that the TCLK exchange procedure was finished, for the legacy devices it means that the Transport key was send to the device.
When generated:
Status codes:
#define ZB_ZDO_SIGNAL_DEVICE_UPDATE 48U |
Notifies the Zigbee Trust center or parent router application about a new device joined, rejoined or left the network.
When generated:
Status codes:
Signal parameters:
#define ZB_ZDO_SIGNAL_ERROR 4U |
Corrupted or incorrect signal information.
When generated:
Status codes:
Signal parameters:
#define ZB_ZDO_SIGNAL_GET_PARAMS | ( | sg_p, | |
type | |||
) | ((type *)(void *)((((zb_uint8_t *)sg_p) + sizeof(zb_zdo_app_signal_hdr_t)))) |
Obtains pointer to parameters passed with application signal.
sg_p | - pointer to application signal |
type | - parameter type |
Example
#define ZB_ZDO_SIGNAL_LEAVE 3U |
Notifies the application that the device itself has left the network.
When generated:
Status codes:
Signal parameters:
#define ZB_ZDO_SIGNAL_LEAVE_INDICATION 19U |
Network leave indication.
When generated:
Status codes:
Signal parameters:
#define ZB_ZDO_SIGNAL_PRODUCTION_CONFIG_READY 23U |
Notifies the application that the application specific part of the production configuration was found and restored and provides the application with this data.
When generated:
Status codes:
Signal parameters:
#define ZB_ZDO_SIGNAL_SKIP_STARTUP 1U |
Notifies the application that ZBOSS framework (scheduler, buffer pool, etc.) has started, but no join/rejoin/formation/BDB initialization has been done yet.
When generated:
Status codes:
Signal parameters:
#define ZB_ZDO_TCLK_AUTHORIZATION_FAILED 2U |
Authorization failed
#define ZB_ZDO_TCLK_AUTHORIZATION_SUCCESS 0U |
Authorization success
#define ZB_ZDO_TCLK_AUTHORIZATION_TIMEOUT 1U |
Authorization timeout
#define ZB_ZDP_STATUS_DEVICE_NOT_FOUND 0x81 |
The supplied endpoint was equal to 0x00 or between 0xf1 and 0xff.
#define ZB_ZDP_STATUS_INSUFFICIENT_SPACE 0x8a |
The device is not in the proper state to support the requested operation.
#define ZB_ZDP_STATUS_INV_REQUESTTYPE 0x80 |
The requested device did not exist on a device following a child descriptor request to a parent.
#define ZB_ZDP_STATUS_INVALID_EP 0x82 |
The requested endpoint is not described by simple descriptor.
#define ZB_ZDP_STATUS_INVALID_INDEX 0x8f |
Custom internal statuses.
#define ZB_ZDP_STATUS_NO_DESCRIPTOR 0x89 |
The device does not have storage space to support the requested operation.
#define ZB_ZDP_STATUS_NO_ENTRY 0x88 |
A child descriptor was not available following a discovery request to a parent.
#define ZB_ZDP_STATUS_NO_MATCH 0x86 |
The unbind request was unsuccessful due to the coordinator or source device not having an entry in its binding table to unbind.
#define ZB_ZDP_STATUS_NOT_ACTIVE 0x83 |
The requested optional feature is not supported on the target device.
#define ZB_ZDP_STATUS_NOT_AUTHORIZED 0x8d |
The index in the received command is out of bounds.
#define ZB_ZDP_STATUS_NOT_PERMITTED 0x8b |
The device does not have table space to support the operation.
#define ZB_ZDP_STATUS_NOT_SUPPORTED 0x84 |
A timeout has occurred with the requested operation.
#define ZB_ZDP_STATUS_SUCCESS 0x00 |
The requested operation or transmission was completed successfully. The supplied request type was invalid.
#define ZB_ZDP_STATUS_TABLE_FULL 0x8c |
The permissions configuration table on the target indicates that the request is not authorized from this device.
#define ZB_ZDP_STATUS_TIMEOUT 0x85 |
The end device bind request was unsuccessful due to a failure to match any suitable clusters.
Association parameters.
Stack passes this parameter to application when some device associates to that.
typedef struct zb_zdo_app_signal_hdr_s zb_zdo_app_signal_hdr_t |
Application signal header
typedef zb_uint8_t zb_zdo_app_signal_type_t |
Type for signals passed to zboss_signal_handler().
Holds one of zdo_app_signal_type. Previously it was defined as enum but was converted to a set of defines due to MISRA violations.
Type for Authorization types for ZB_ZDO_SIGNAL_DEVICE_AUTHORIZED.
Type for Status codes for F&B Initiator Finished signal.
Holds one of zdo_fb_initiator_finished_status. Kept only for backward compatibility as zdo_fb_initiator_finished_status were declared previously as enum. Can be removed in future releases.
Type for Authorization statuses for ZB_ZDO_AUTHORIZATION_TYPE_LEGACY value of zdo_authorization_type type.
typedef struct zb_zdo_signal_can_sleep_params_s zb_zdo_signal_can_sleep_params_t |
Sleep signal parameters.
Stack passes this parameter to application when device ready to sleep.
Association parameters.
Stack passes this parameter to application when some device joins/rejoins to network.
Leave Indication parameters.
Stack passes this parameter to application upon receipt of leave indication primitive.
typedef struct zb_zdo_signal_leave_params_s zb_zdo_signal_leave_params_t |
Leave parameters.
Stack passes this parameter to application when device leave the network.
Macsplit device boot parameters.
Macsplit passes this parameter to application when device is booted.
typedef struct zb_zdo_signal_nlme_status_indication_params_s zb_zdo_signal_nlme_status_indication_params_t |
NLME status indication parameters.
Stack passes this parameter to application when NLME status indication is generated.
Type for Authorization types for ZB_ZDO_SIGNAL_DEVICE_AUTHORIZED.
typedef zb_ret_t zb_zdp_status_t |
Type for ZDP status values.
Holds one of zdp_status. Kept for backward compatibility as zdp_status were declared previously as enum.
zb_zdo_app_signal_type_t zb_get_app_signal | ( | zb_uint8_t | param, |
zb_zdo_app_signal_hdr_t ** | sg_p | ||
) |
Unpack application signal buffer in zboss_signal_handler()
param | - parameter of zboss_signal_handler() |
sg_p | - pointer to the extended signal info, if application wants it. Can be NULL. |
void zboss_signal_handler | ( | zb_uint8_t | param | ) |
ZBOSS application signal handler.
Mandatory for all applications implemented on the top of ZBOSS stack. See zdo_app_signal_type.
param | - reference to the buffer which contains signal. See zb_get_app_signal. |