|
Developing with ZBOSS for Zigbee
|
|
#define | ZB_AF_IS_EP_REGISTERED(_ep) ((zb_af_get_endpoint_desc( _ep ) != NULL)?(ZB_TRUE):(ZB_FALSE)) |
| Check endpoint registration in ZCL. More...
|
|
#define | ZB_AF_START_DECLARE_ENDPOINT_LIST(ep_list_name) zb_af_endpoint_desc_t *ep_list_name[] = { |
|
#define | ZB_AF_DECLARE_ENDPOINT_DESC( ep_name, ep_id, profile_id, reserved_length, reserved_ptr, cluster_number, cluster_list, simple_desc, rep_count, rep_ctx, lev_ctrl_count, lev_ctrl_ctx) |
| Initialize endpoint descriptor. More...
|
|
#define | ZB_AF_FINISH_DECLARE_ENDPOINT_LIST } |
|
#define | ZB_AF_SET_ENDPOINT_HANDLER(endpoint, handler) (zb_af_get_endpoint_desc((endpoint))->device_handler = (handler)) |
| Allows application to register cluster commands handler for a specific endpoint. More...
|
|
#define | ZB_AF_SET_IDENTIFY_NOTIFICATION_HANDLER(endpoint, handler) (zb_af_get_endpoint_desc((endpoint))->identify_handler = (handler)) |
| Sets identify notification handler for endpoint. More...
|
|
#define | ZB_ZCL_CLUSTER_DESC(cluster_id, attr_count, attr_desc_list, cluster_role_mask, manuf_code) |
|
#define | ZB_AF_DECLARE_DEVICE_CTX(device_ctx_name, ep_list_name, ep_count, reporting_attr_count) |
|
#define | ZB_AF_DECLARE_DEVICE_CTX_NO_REP(device_ctx_name, ep_list_name, ep_count) |
|
#define | ZBOSS_DEVICE_DECLARE_REPORTING_CTX(rep_ctx, rep_count) zb_zcl_reporting_info_t rep_ctx[rep_count] |
|
#define | ZBOSS_DEVICE_DECLARE_LEVEL_CONTROL_CTX(lev_ctrl_ctx, lev_ctrl_count) zb_zcl_cvc_alarm_variables_t lev_ctrl_ctx[lev_ctrl_count] |
|
#define | ZBOSS_DECLARE_DEVICE_CTX(device_ctx_name, ep_list_name, ep_count) |
|
#define | ZBOSS_DECLARE_DEVICE_CTX_1_EP(device_ctx_name, ep_name) |
|
#define | ZBOSS_DECLARE_DEVICE_CTX_2_EP(device_ctx_name, ep1_name, ep2_name) |
|
#define | ZBOSS_DECLARE_DEVICE_CTX_3_EP(device_ctx_name, ep1_name, ep2_name, ep3_name) |
|
#define | ZBOSS_DECLARE_DEVICE_CTX_4_EP(device_ctx_name, ep1_name, ep2_name, ep3_name, ep4_name) |
|
#define | ZB_AF_REGISTER_DEVICE_CTX(_device_ctx) zb_af_register_device_ctx(_device_ctx) |
|
#define | ZB_ZCL_REGISTER_DEVICE_CB(func_ptr) |
| Set Device user application callback. The macro sets a callback being called upon to need inform User App about change device attribute or need to execute H/W command. More...
|
|
◆ ZB_AF_DECLARE_DEVICE_CTX
#define ZB_AF_DECLARE_DEVICE_CTX |
( |
|
device_ctx_name, |
|
|
|
ep_list_name, |
|
|
|
ep_count, |
|
|
|
reporting_attr_count |
|
) |
| |
Value: zb_zcl_reporting_info_t reporting_info## device_ctx_name[reporting_attr_count]; \
zb_af_device_ctx_t device_ctx_name = \
{ \
ep_count, \
ep_list_name, \
reporting_attr_count, \
reporting_info## device_ctx_name, \
0, \
NULL \
}
WARNING: This API is deprecated, use ZBOSS_DECLARE_DEVICE_CTX instead.
◆ ZB_AF_DECLARE_DEVICE_CTX_NO_REP
#define ZB_AF_DECLARE_DEVICE_CTX_NO_REP |
( |
|
device_ctx_name, |
|
|
|
ep_list_name, |
|
|
|
ep_count |
|
) |
| |
Value: zb_af_device_ctx_t device_ctx_name = \
{ \
ep_count, \
ep_list_name, \
0, \
NULL, \
0, \
NULL \
}
WARNING: This API is deprecated, use ZBOSS_DECLARE_DEVICE_CTX instead.
◆ ZB_AF_DECLARE_ENDPOINT_DESC
#define ZB_AF_DECLARE_ENDPOINT_DESC |
( |
|
ep_name, |
|
|
|
ep_id, |
|
|
|
profile_id, |
|
|
|
reserved_length, |
|
|
|
reserved_ptr, |
|
|
|
cluster_number, |
|
|
|
cluster_list, |
|
|
|
simple_desc, |
|
|
|
rep_count, |
|
|
|
rep_ctx, |
|
|
|
lev_ctrl_count, |
|
|
|
lev_ctrl_ctx |
|
) |
| |
Value:
{ \
ep_id, \
profile_id, \
NULL, \
NULL, \
reserved_length, \
(void*)reserved_ptr, \
cluster_number, \
cluster_list, \
simple_desc, \
rep_count, \
rep_ctx, \
lev_ctrl_count, \
lev_ctrl_ctx \
}
Initialize endpoint descriptor.
- Parameters
-
ep_name | - endpoint name |
ep_id | - endpoint ID |
profile_id | - ID of profile deployed on this endpoint |
reserved_length | - unused parameter |
reserved_ptr | - unused parameter |
cluster_number | - number of clusters deployed on endpoint |
cluster_list | - pointer to cluster list |
simple_desc | - pointer to simple descriptor |
rep_count | - maximum number of attributes that are being reported on a device |
rep_ctx | - reporting context variable name (NULL if no reporting context) |
lev_ctrl_count | - number of level control attributes |
lev_ctrl_ctx | - level control context variable name (NULL if no level control context) |
◆ ZB_AF_FINISH_DECLARE_ENDPOINT_LIST
#define ZB_AF_FINISH_DECLARE_ENDPOINT_LIST } |
Finishes endpoint list declaration
◆ ZB_AF_IS_EP_REGISTERED
Check endpoint registration in ZCL.
- Parameters
-
_ep | - identifier of the endpoint under consideration. |
- Returns
- ZB_TRUE if endpoint is registered, ZB_FALSE otherwise.
◆ ZB_AF_REGISTER_DEVICE_CTX
#define ZB_AF_REGISTER_DEVICE_CTX |
( |
|
_device_ctx | ) |
zb_af_register_device_ctx(_device_ctx) |
Register device context.
- Parameters
-
_device_ctx | - Pointer to the device context |
Example:
◆ ZB_AF_SET_ENDPOINT_HANDLER
#define ZB_AF_SET_ENDPOINT_HANDLER |
( |
|
endpoint, |
|
|
|
handler |
|
) |
| (zb_af_get_endpoint_desc((endpoint))->device_handler = (handler)) |
Allows application to register cluster commands handler for a specific endpoint.
- Parameters
-
endpoint | - Endpoint number |
handler | - Pointer to a function, function type zb_device_handler_t |
- Attention
- Endpoint should be registered. ZB_AF_SET_ENDPOINT_HANDLER() should be called after device context is registered, using call to ZB_AF_REGISTER_DEVICE_CTX()
◆ ZB_AF_SET_IDENTIFY_NOTIFICATION_HANDLER
#define ZB_AF_SET_IDENTIFY_NOTIFICATION_HANDLER |
( |
|
endpoint, |
|
|
|
handler |
|
) |
| (zb_af_get_endpoint_desc((endpoint))->identify_handler = (handler)) |
Sets identify notification handler for endpoint.
Utilized by ZCL Identify cluster
- Parameters
-
endpoint | number |
handler | to set |
- Attention
- Assumes that endpoint already registered
◆ ZB_AF_START_DECLARE_ENDPOINT_LIST
General macro to declare endpoint description list
- Parameters
-
ep_list_name | - name of ep list structure |
◆ ZB_ZCL_CLUSTER_DESC
#define ZB_ZCL_CLUSTER_DESC |
( |
|
cluster_id, |
|
|
|
attr_count, |
|
|
|
attr_desc_list, |
|
|
|
cluster_role_mask, |
|
|
|
manuf_code |
|
) |
| |
Value:{ \
(cluster_id), \
(attr_count), \
(attr_desc_list), \
(cluster_role_mask), \
(manuf_code), \
}
◆ ZB_ZCL_REGISTER_DEVICE_CB
#define ZB_ZCL_REGISTER_DEVICE_CB |
( |
|
func_ptr | ) |
|
Set Device user application callback. The macro sets a callback being called upon to need inform User App about change device attribute or need to execute H/W command.
- Parameters
-
Example:
{
TRACE_MSG(TRACE_APP1,
"> test_device_interface_cb param %hd id %hd", (FMT__H_H,
{
{
{
#ifdef ZB_USE_BUTTONS
zb_osif_led_on(0);
#endif
}
else
{
#ifdef ZB_USE_BUTTONS
zb_osif_led_off(0);
#endif
}
}
break;
default:
device_cb_param->
status = RET_ERROR;
break;
}
TRACE_MSG(TRACE_APP1,
"< test_device_interface_cb %hd", (FMT__H, device_cb_param->
status));
}
- Register callback:
◆ ZBOSS_DECLARE_DEVICE_CTX
#define ZBOSS_DECLARE_DEVICE_CTX |
( |
|
device_ctx_name, |
|
|
|
ep_list_name, |
|
|
|
ep_count |
|
) |
| |
Value: zb_af_device_ctx_t device_ctx_name = \
{ \
ep_count, \
ep_list_name, \
}
Declare application's device context
- Parameters
-
device_ctx_name | - device context variable name |
ep_list_name | - name of endpoint list |
ep_count | - number of supported endpoints |
◆ ZBOSS_DECLARE_DEVICE_CTX_1_EP
#define ZBOSS_DECLARE_DEVICE_CTX_1_EP |
( |
|
device_ctx_name, |
|
|
|
ep_name |
|
) |
| |
Value:
&ep_name, \
ZB_AF_FINISH_DECLARE_ENDPOINT_LIST; \
ZBOSS_DECLARE_DEVICE_CTX(device_ctx_name, ep_list_##device_ctx_name, \
Declare application's device context for single-endpoint device
- Note
- Device has an additional Green Power endpoint if it is ZC or ZR and GPPB feature is enabled (Mandatory for Zigbee 3.0 ZC/ZR).
- Parameters
-
device_ctx_name | - device context variable name |
ep_name | - variable holding endpoint context |
◆ ZBOSS_DECLARE_DEVICE_CTX_2_EP
#define ZBOSS_DECLARE_DEVICE_CTX_2_EP |
( |
|
device_ctx_name, |
|
|
|
ep1_name, |
|
|
|
ep2_name |
|
) |
| |
Value:
&ep1_name, \
&ep2_name, \
ZB_AF_FINISH_DECLARE_ENDPOINT_LIST; \
ZBOSS_DECLARE_DEVICE_CTX(device_ctx_name, ep_list_##device_ctx_name, \
Declare application's device context for two-endpoint device
- Note
- Device has an additional Green Power endpoint if it is ZC or ZR and GPPB feature (Mandatory for Zigbee 3.0 ZC/ZR) is enabled.
- Parameters
-
device_ctx_name | - device context variable name |
ep1_name | - variable holding context for endpoint 1 |
ep2_name | - variable holding context for endpoint 2 |
◆ ZBOSS_DECLARE_DEVICE_CTX_3_EP
#define ZBOSS_DECLARE_DEVICE_CTX_3_EP |
( |
|
device_ctx_name, |
|
|
|
ep1_name, |
|
|
|
ep2_name, |
|
|
|
ep3_name |
|
) |
| |
Value:
&ep1_name, \
&ep2_name, \
&ep3_name, \
ZB_AF_FINISH_DECLARE_ENDPOINT_LIST; \
ZBOSS_DECLARE_DEVICE_CTX(device_ctx_name, ep_list_##device_ctx_name, \
Declare application's device context for three-endpoint device
- Note
- Device has an additional Green Power endpoint if it is ZC or ZR and GPPB feature (Mandatory for Zigbee 3.0 ZC/ZR) is enabled.
- Parameters
-
device_ctx_name | - device context variable name |
ep1_name | - variable holding context for endpoint 1 |
ep2_name | - variable holding context for endpoint 2 |
ep3_name | - variable holding context for endpoint 3 |
◆ ZBOSS_DECLARE_DEVICE_CTX_4_EP
#define ZBOSS_DECLARE_DEVICE_CTX_4_EP |
( |
|
device_ctx_name, |
|
|
|
ep1_name, |
|
|
|
ep2_name, |
|
|
|
ep3_name, |
|
|
|
ep4_name |
|
) |
| |
Value:
&ep1_name, \
&ep2_name, \
&ep3_name, \
&ep4_name, \
ZB_AF_FINISH_DECLARE_ENDPOINT_LIST; \
ZBOSS_DECLARE_DEVICE_CTX(device_ctx_name, ep_list_##device_ctx_name, \
Declare application's device context for for-endpoint device
- Note
- Device has an additional Green Power endpoint if it is ZC or ZR and GPPB feature (Mandatory for Zigbee 3.0 ZC/ZR) is enabled.
- Parameters
-
device_ctx_name | - device context variable name |
ep1_name | - variable holding context for endpoint 1 |
ep2_name | - variable holding context for endpoint 2 |
ep3_name | - variable holding context for endpoint 3 |
ep4_name | - variable holding context for endpoint 4 |
◆ ZBOSS_DEVICE_DECLARE_LEVEL_CONTROL_CTX
#define ZBOSS_DEVICE_DECLARE_LEVEL_CONTROL_CTX |
( |
|
lev_ctrl_ctx, |
|
|
|
lev_ctrl_count |
|
) |
| zb_zcl_cvc_alarm_variables_t lev_ctrl_ctx[lev_ctrl_count] |
Declare device level control context
- Parameters
-
lev_ctrl_ctx | - level control context variable name |
lev_ctrl_count | - number of level control attributes |
◆ ZBOSS_DEVICE_DECLARE_REPORTING_CTX
#define ZBOSS_DEVICE_DECLARE_REPORTING_CTX |
( |
|
rep_ctx, |
|
|
|
rep_count |
|
) |
| zb_zcl_reporting_info_t rep_ctx[rep_count] |
Declare device reporting context
- Parameters
-
rep_ctx | - reporting context variable name |
rep_count | - number of reporting attributes |
◆ zb_af_transmission_res_cb_t
typedef void(* zb_af_transmission_res_cb_t) (zb_uint8_t status) |
Callback for notifying user about status of ZCL/ZDO command transmission
◆ zb_device_handler_t
Device command handler
- Parameters
-
param | - index of buffer with ZCL command |
- Returns
- status (see zb_bool_t)
◆ zb_af_get_endpoint_desc()
Search for endpoint (device) descriptor by endpoint ID.
- Parameters
-
ep_id | - identifier of the endpoint. |
- Returns
- NULL if no endpoint found, or pointer to the endpoint descriptor.
◆ zb_af_set_data_indication()
Set up application callback to be called for APS data packets.
That API call may be useful for tests which uses custom profile id or which needs to send raw data over APS.
- Attention
- Function is called on receive of APS data frame BEFORE internal processing. Please make sure that this callback does not handle packets on standard ZB profiles - this should be done by the stack.
- Parameters
-
Example:
{
{
switch(sig)
{
TRACE_MSG(TRACE_APS1,
"Device STARTED OK", (FMT__0));
break;
default:
TRACE_MSG(TRACE_APP1,
"Unknown signal", (FMT__0));
break;
}
}
}
{
if (ind->
profileid == TEST_CUSTOM_PROFILE_ID)
{
ptr = ZB_APS_HDR_CUT(param);
TRACE_MSG(TRACE_APS3,
"apsde_data_indication: packet %p len %hd status 0x%hx from %d",
{
TRACE_MSG(TRACE_APS3,
"%x %c", (FMT__D_C, (
int)ptr[i], ptr[i]));
}
}
}
◆ zb_bdb_initiate_tc_rejoin()
void zb_bdb_initiate_tc_rejoin |
( |
zb_uint8_t |
param | ) |
|
Starts TC rejoin procedure.
If device doesn't have a TCLK and UnsecureTcRejoinEnabled policy is set to ZB_FALSE (this is the default setting), TC rejoin won't be performed and ZB_BDB_SIGNAL_TC_REJOIN_DONE signal with RET_ERROR status will be raised.
- Parameters
-
param | - buffer reference (if 0, buffer will be allocated automatically) |
◆ zb_bdb_reset_via_local_action()
void zb_bdb_reset_via_local_action |
( |
zb_uint8_t |
param | ) |
|
Perform "Reset with a Local Action" procedure (as described in BDB spec, chapter 9.5). The device will perform the NLME leave and clean all Zigbee persistent data except the outgoing NWK frame counter and application datasets (if any). The reset can be performed at any time once the device is started (see zboss_start). After the reset, the application will receive the ZB_ZDO_SIGNAL_LEAVE signal.
- Parameters
-
param | - buffer reference (if 0, buffer will be allocated automatically) |
◆ ZB_DECLARE_SIMPLE_DESC() [1/2]
ZB_DECLARE_SIMPLE_DESC |
( |
1 |
, |
|
|
1 |
|
|
) |
| |
◆ ZB_DECLARE_SIMPLE_DESC() [2/2]
ZB_DECLARE_SIMPLE_DESC |
( |
8 |
, |
|
|
9 |
|
|
) |
| |
unsigned int zb_ushort_t
Short unsigned int (can fit into single CPU register).
Definition: zb_types.h:334
#define ZB_ZCL_REGISTER_DEVICE_CB(func_ptr)
Set Device user application callback. The macro sets a callback being called upon to need inform User...
Definition: zboss_api_af.h:748
Endpoint descriptor.
Definition: zboss_api_af.h:339
zb_uint16_t profileid
Definition: zboss_api_aps.h:210
unsigned char zb_uint8_t
Project-local 1-byte unsigned int type.
Definition: zb_types.h:149
zb_ret_t status
Definition: zboss_api_zcl.h:1750
#define TRACE_MSG(lm, fmts, args)
Put trace output.
Definition: zb_trace.h:348
#define ZB_ZCL_CLUSTER_ID_ON_OFF
Definition: zb_zcl_common.h:211
zb_uint16_t attr_id
Definition: zb_zcl_common.h:2099
#define ZB_ZCL_CLUSTER_CLIENT_ROLE
Definition: zb_zcl_common.h:190
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()
#define ZB_GET_APP_SIGNAL_STATUS(param)
Get status from the application signal.
Definition: zboss_api_zdo.h:1119
#define ZB_ZDO_SIGNAL_DEFAULT_START
Definition: zboss_api_zdo.h:129
#define ZB_BUF_GET_PARAM(buf, type)
Definition: zboss_api_buf.h:455
#define ZB_ZCL_CLUSTER_SERVER_ROLE
Definition: zb_zcl_common.h:188
#define ZB_TRUE
Definition: zb_types.h:371
zb_uint8_t data8
Definition: zb_zcl_common.h:2109
void zb_af_set_data_indication(zb_device_handler_t cb)
Set up application callback to be called for APS data packets.
@ ZB_ZCL_SET_ATTR_VALUE_CB_ID
Definition: zboss_api_zcl.h:381
#define ZB_AF_REGISTER_DEVICE_CTX(_device_ctx)
Definition: zboss_api_af.h:734
zb_uint8_t zb_zdo_app_signal_type_t
Type for signals passed to zboss_signal_handler().
Definition: zboss_api_zdo.h:769
zb_uint16_t src_addr
Definition: zboss_api_aps.h:204
Data for Device user application callback. This structure has receive to User application callback (s...
Definition: zboss_api_zcl.h:1743
#define RET_OK
Error codes for non-void stack functions. In general, function can return OK, BLOCKED or some error....
Definition: zb_errors.h:78
Definition: zboss_api_zdo.h:1069
#define zb_buf_get_status(buf)
Definition: zboss_api_buf.h:602
zb_uint16_t cluster_id
Definition: zb_zcl_common.h:2098
@ ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID
OnOff attribute.
Definition: zb_zcl_on_off.h:60
#define ZB_AF_START_DECLARE_ENDPOINT_LIST(ep_list_name)
Definition: zboss_api_af.h:412
union zb_zcl_device_callback_param_s::@1 cb_param
void zboss_signal_handler(zb_uint8_t param)
#define zb_buf_free(buf)
Free packet buffer and put it into free list.
Definition: zboss_api_buf.h:333
Parsed APS header.
Definition: zboss_api_aps.h:200
#define ZB_FALSE
Definition: zb_types.h:370
#define zb_buf_len(buf)
Definition: zboss_api_buf.h:361
zb_uint8_t zb_bufid_t
Definition: zboss_api_buf.h:172
zb_zcl_device_callback_id_t device_cb_id
Definition: zboss_api_zcl.h:1746