Developing with ZBOSS for Zigbee
|
Modules | |
ZGP Sink API | |
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 0x00U |
#define | ZB_ZDP_STATUS_INV_REQUESTTYPE 0x80U |
#define | ZB_ZDP_STATUS_DEVICE_NOT_FOUND 0x81U |
#define | ZB_ZDP_STATUS_INVALID_EP 0x82U |
#define | ZB_ZDP_STATUS_NOT_ACTIVE 0x83U |
#define | ZB_ZDP_STATUS_NOT_SUPPORTED 0x84U |
#define | ZB_ZDP_STATUS_TIMEOUT 0x85U |
#define | ZB_ZDP_STATUS_NO_MATCH 0x86U |
#define | ZB_ZDP_STATUS_NO_ENTRY 0x88U |
#define | ZB_ZDP_STATUS_NO_DESCRIPTOR 0x89U |
#define | ZB_ZDP_STATUS_INSUFFICIENT_SPACE 0x8aU |
#define | ZB_ZDP_STATUS_NOT_PERMITTED 0x8bU |
#define | ZB_ZDP_STATUS_TABLE_FULL 0x8cU |
#define | ZB_ZDP_STATUS_NOT_AUTHORIZED 0x8dU |
#define | ZB_ZDP_STATUS_INVALID_INDEX 0x8fU |
#define | ZB_ZDP_STATUS_TIMEOUT_BY_STACK 0xffU |
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_GET_APP_SIGNAL_STATUS | ( | param | ) | zb_buf_get_status(param) |
Get status from the application signal.
param | - buffer reference |
#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_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_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_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 0x81U |
The supplied endpoint was equal to 0x00 or between 0xf1 and 0xff.
#define ZB_ZDP_STATUS_INSUFFICIENT_SPACE 0x8aU |
The device is not in the proper state to support the requested operation.
#define ZB_ZDP_STATUS_INV_REQUESTTYPE 0x80U |
The requested device did not exist on a device following a child descriptor request to a parent.
#define ZB_ZDP_STATUS_INVALID_EP 0x82U |
The requested endpoint is not described by simple descriptor.
#define ZB_ZDP_STATUS_INVALID_INDEX 0x8fU |
Custom internal statuses.
#define ZB_ZDP_STATUS_NO_DESCRIPTOR 0x89U |
The device does not have storage space to support the requested operation.
#define ZB_ZDP_STATUS_NO_ENTRY 0x88U |
A child descriptor was not available following a discovery request to a parent.
#define ZB_ZDP_STATUS_NO_MATCH 0x86U |
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 0x83U |
The requested optional feature is not supported on the target device.
#define ZB_ZDP_STATUS_NOT_AUTHORIZED 0x8dU |
The index in the received command is out of bounds.
#define ZB_ZDP_STATUS_NOT_PERMITTED 0x8bU |
The device does not have table space to support the operation.
#define ZB_ZDP_STATUS_NOT_SUPPORTED 0x84U |
A timeout has occurred with the requested operation.
#define ZB_ZDP_STATUS_SUCCESS 0x00U |
The requested operation or transmission was completed successfully. The supplied request type was invalid.
#define ZB_ZDP_STATUS_TABLE_FULL 0x8cU |
The permissions configuration table on the target indicates that the request is not authorized from this device.
#define ZB_ZDP_STATUS_TIMEOUT 0x85U |
The end device bind request was unsuccessful due to a failure to match any suitable clusters.
#define ZB_ZGP_SIGNAL_COMMISSIONING 21U |
ZGP commissioning complete signal.
When generated:
Status codes:
Signal parameters:
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_uint8_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. |