Developing with ZBOSS for Zigbee
|
Data Structures | |
struct | zgp_to_zb_cmd_mapping_s |
Mapping of ZGPD command ID to Zigbee ZCL command ID. More... | |
struct | zgps_cluster_rec_s |
struct | zb_zgps_match_info_s |
Necessary information for filling translation table for any ZGPD during commissioning. More... | |
Macros | |
#define | ZB_ZGP_SET_MATCH_INFO(info) |
Set matching information that is used to fill ZGP command - ZCL cluster translation table. More... | |
#define | ZB_ZGP_REGISTER_COMM_REQ_CB(cb) |
Register commissioning request callback. More... | |
#define | ZB_ZGP_REGISTER_APP_CIC_CB(cb) |
Register application commissioning indication callback. More... | |
#define | ZB_ZGP_FILL_GPS_SECURITY_LEVEL(sec_lvl, with_link_key, involve_tc) (((sec_lvl) & 3U) | ((!!(with_link_key)) << 2U) | ((!!(involve_tc)) << 3U)) |
Typedefs | |
typedef struct zgp_to_zb_cmd_mapping_s | zgp_to_zb_cmd_mapping_t |
Mapping of ZGPD command ID to Zigbee ZCL command ID. | |
typedef struct zgps_cluster_rec_s | zgps_dev_cluster_rec_t |
typedef struct zb_zgps_match_info_s | zb_zgps_match_info_t |
Necessary information for filling translation table for any ZGPD during commissioning. More... | |
typedef void(* | zb_zgp_app_comm_ind_cb_t) (zb_zgpd_id_t *zgpd_id, zb_uint8_t param) |
Application callback, indication of the attempted commissioning in GPS operational mode. More... | |
#define ZB_ZGP_FILL_GPS_SECURITY_LEVEL | ( | sec_lvl, | |
with_link_key, | |||
involve_tc | |||
) | (((sec_lvl) & 3U) | ((!!(with_link_key)) << 2U) | ((!!(involve_tc)) << 3U)) |
Fill security level constant to be passed to zb_zgps_set_security_level()
Described in A.3.3.2.6 gpsSecurityLevel attribute.
sec_lvl | zb_zgp_security_level_e Minimal GPD Security Level sub-field contains the minimum gpdSecurityLevel this sink accepts |
with_link_key | 1 bit - Protection with the gpLinkKey sub-field, indicates if the GPDs attempting the pairing are required to support protecting the over-the-air exchange of the GPD Key |
involve_tc | always zero for the current GPPB specification |
#define ZB_ZGP_REGISTER_APP_CIC_CB | ( | cb | ) |
Register application commissioning indication callback.
cb | [in] Application commissioning indication callback (zb_zgp_app_comm_ind_cb_t) |
#define ZB_ZGP_REGISTER_COMM_REQ_CB | ( | cb | ) |
Register commissioning request callback.
cb | [in] Commissioning request callback (zb_zgp_comm_req_cb_t) |
#define ZB_ZGP_SET_MATCH_INFO | ( | info | ) |
Set matching information that is used to fill ZGP command - ZCL cluster translation table.
[in] | info | Matching information of type zb_zgps_match_info_t |
typedef void( * zb_zgp_app_comm_ind_cb_t) (zb_zgpd_id_t *zgpd_id, zb_uint8_t param) |
Application callback, indication of the attempted commissioning in GPS operational mode.
Application commissioning indication callback notifies application about commissioning attempt from ZGPD. Callback is called when commissioning frame or notification is received from ZGPD. Callback provides to zgpd_id and full incoming packet's data. Based on these parameters user application should decide further actions.
Application commissioning indication callback should be set during ZGP initialization using ZB_ZGP_REGISTER_APP_CIC_CB macro.
zgpd_id | [in] ZGPD ID |
param | [in] buffer index, containing GPDF |
typedef struct zb_zgps_match_info_s zb_zgps_match_info_t |
Necessary information for filling translation table for any ZGPD during commissioning.
Includes matching table and command ID mappings. Given some ZGPD device ID it is possible to fill translation table entry with help of this structure.
zb_ret_t zb_zgp_convert_8bit_vector | ( | zb_uint8_t | vector_8bit_cmd_id, |
zb_uint8_t | switch_type, | ||
zb_uint8_t | num_of_contacts, | ||
zb_uint8_t | contact_status, | ||
zb_uint8_t * | zgp_cmd_out | ||
) |
Application function to override translation of 8-bit vector command (generic switch)
If this function is not implemented in the application, then ZBOSS performs a default translation as recommended by ZGP spec (see Green Power Basic specification v1.1.1, tables 51, 52). If there is no default translation found, then the received command is dropped.
If this function is implemented by the the application, then application is fully responsible for a translation of GPD 8-bit vector commands. For any return code but RET_OK, ZBOSS will stop command processing and drop it.
Note: The translation is done to GPDF command ID, not to ZCL command ID.
[in] | vector_8bit_cmd_id | incoming command ID: press (0x69) or release(0x6a) |
[in] | switch_type | switch type of the command's originator (see ZGP spec. A.4.2.1.1.10) |
[in] | num_of_contacts | number of contacts command's originator provides |
[in] | contact_status | contacts status from the payload of the received command |
[out] | zgp_cmd_out | GPDF command ID to which incoming command should be translated |
See Green Power Basic specification v1.1.1, chapters A.3.6.2.2.2, A.4.2.2.1 for more information.
void zb_zgp_set_shared_security_key | ( | zb_uint8_t * | key | ) |
Set gpSharedSecurityKey GP cluster attribute
Described in A.3.3.3.1 gpSharedSecurityKey attribute.
key | Security key to set |
void zb_zgp_set_shared_security_key_type | ( | zb_uint_t | key_type | ) |
Set gpSharedSecurityKeyType GP cluster attribute
Described in A.3.3.3.1 gpSharedSecurityKeyType attribute.
key_type | Security key type to set ( |
void zb_zgps_accept_commissioning | ( | zb_bool_t | accept | ) |
Accept/reject ZGPD commissioning attempt.
This function should be called as an answer to commissioning request made by stack via zb_zgp_comm_req_cb_t. Also, it can be called from zb_zgp_comm_req_cb_t callback as well as outside it.
[in] | accept | - If ZB_TRUE, then stack will continue ongoing commissioning process with ZGPD Otherwise ongoing commissioning process will be terminated |
void zb_zgps_delete_all_zgpd | ( | void | ) |
Remove all the information about ALL ZGPD from stack.
void zb_zgps_delete_zgpd | ( | zb_uint8_t | buf_ref, |
zb_zgpd_id_t * | zgpd_id | ||
) |
Remove all the information about ZGPD from stack.
In ZGP there is no way to say ZGPD to leave the network. ZGPD can leave network by itself using "Decommissioning" command, but ZGPS can miss this command if it was not in commissioning state.
This function removes all the information related to specified ZGPD from stack.
buf_ref | reference to the free buffer |
zgpd_id | identifier of ZGPD to be removed |
void zb_zgps_get_diag_data | ( | zb_zgpd_id_t * | zgpd_id, |
zb_uint8_t * | lqi, | ||
zb_int8_t * | rssi | ||
) |
Get LQI and RSSI last time received from that ZGPD.
void zb_zgps_set_commissioning_exit_mode | ( | zb_uint_t | cem | ) |
Set gpsCommissioningExitMode GP cluster attribute
Described in A.3.3.2.4 gpsCommissioningExitMode attribute.
cem | Commissioning exit mode to set ( |
void zb_zgps_set_communication_mode | ( | zgp_communication_mode_t | mode | ) |
Set gpsCommunicationMode GP cluster attribute of gpcb
Described in A.3.3.2.3 gpsCommunicationMode attribute
mode | zgp_communication_mode_t communication mode |
void zb_zgps_set_security_level | ( | zb_uint_t | level | ) |
Set gpsSecurityLevel GP cluster attribute of gpcb
Described in A.3.3.2.6 gpsSecurityLevel attribute.
level | Security level to set |
void zb_zgps_start_commissioning | ( | zb_time_t | timeout | ) |
Put ZGPS into commissioning mode.
It is safe to call this function when device is already in commissioning mode. In this case function does nothing.
[in] | timeout | Maximum commissioning time in beacon intervals. 0 means no timeout. If timeout occurs, then result of commissioning is ZB_ZGP_COMMISSIONING_TIMED_OUT |
void zb_zgps_stop_commissioning | ( | void | ) |
Switch ZGPS back to operational mode from commissioning.