Trident IoT Zigbee SDK
Loading...
Searching...
No Matches
tr_door_lock_server.h
Go to the documentation of this file.
1
10#ifndef TR_DOOR_LOCK_SERVER_H
11#define TR_DOOR_LOCK_SERVER_H
12
13#include "tr_af.h"
14
15#ifndef TR_DOOR_LOCK_SERVER_MAX_PIN_LEN
16#define TR_DOOR_LOCK_SERVER_MAX_PIN_LEN 4
17#endif
18
19#ifndef TR_DOOR_LOCK_SERVER_MAX_NUM_USERS
20#define TR_DOOR_LOCK_SERVER_MAX_NUM_USERS 8
21#endif
22
23// Structures we use in this plugin in addition to common ZCL structures
24typedef ZB_PACKED_PRE struct
25{
29} ZB_PACKED_STRUCT tr_door_lock_server_user_t;
30
31typedef ZB_PACKED_PRE struct
32{
33 zb_uint16_t user_id;
37} ZB_PACKED_STRUCT tr_door_lock_get_pin_resp_t;
38
39// typedef aliases for semantic clarity
42
46#if defined(TR_DOOR_LOCK_SERVER_PLUGIN_PRINT_ENABLE) && (TR_DOOR_LOCK_SERVER_PLUGIN_PRINT_ENABLE == 1)
47#define tr_door_lock_server_printf(...) tr_zcl_printf(__VA_ARGS__)
48#define tr_door_lock_server_println(...) tr_zcl_println(__VA_ARGS__)
49#else
50#define tr_door_lock_server_printf(...)
51#define tr_door_lock_server_println(...)
52#endif
53
59
63
67zb_bool_t tr_door_lock_server_command_received_cb(zb_zcl_parsed_hdr_t *cmd_info);
68
75 zb_uint16_t attr_id,
76 zb_uint8_t *new_value,
77 zb_uint16_t manuf_code);
78
85zb_bool_t tr_door_lock_server_lock_door_cb(zb_zcl_parsed_hdr_t *cmd_info,
86 zb_uint8_t endpoint,
87 tr_door_lock_event_source_t event_source,
88 zb_uint8_t *pin);
89
96zb_bool_t tr_door_lock_server_unlock_door_cb(zb_zcl_parsed_hdr_t *cmd_info,
97 zb_uint8_t endpoint,
98 tr_door_lock_event_source_t event_source,
99 zb_uint8_t *pin);
100
109zb_bool_t tr_door_lock_server_set_pin_cb(zb_zcl_parsed_hdr_t *cmd_info,
110 zb_uint8_t endpoint,
111 zb_uint16_t user_id,
114 zb_uint8_t *pin);
115
121zb_bool_t tr_door_lock_server_get_pin_cb(zb_zcl_parsed_hdr_t *cmd_info,
122 zb_uint8_t endpoint,
123 zb_uint16_t user_id);
124
130zb_bool_t tr_door_lock_server_clear_pin_cb(zb_zcl_parsed_hdr_t *cmd_info,
131 zb_uint8_t endpoint,
132 zb_uint16_t user_id);
133
138zb_bool_t tr_door_lock_server_clear_all_pins_cb(zb_zcl_parsed_hdr_t *cmd_info,
139 zb_uint8_t endpoint);
140
147zb_bool_t tr_door_lock_server_set_user_status_cb(zb_zcl_parsed_hdr_t *cmd_info,
148 zb_uint8_t endpoint,
149 zb_uint16_t user_id,
151
157zb_bool_t tr_door_lock_server_get_user_status_cb(zb_zcl_parsed_hdr_t *cmd_info,
158 zb_uint8_t endpoint,
159 zb_uint16_t user_id);
160
167zb_bool_t tr_door_lock_server_set_user_type_cb(zb_zcl_parsed_hdr_t *cmd_info,
168 zb_uint8_t endpoint,
169 zb_uint16_t user_id,
171
177zb_bool_t tr_door_lock_server_get_user_type_cb(zb_zcl_parsed_hdr_t *cmd_info,
178 zb_uint8_t endpoint,
179 zb_uint16_t user_id);
180
198void tr_door_lock_server_resp_sent_cb(zb_bufid_t param);
199
201
207
213 tr_door_lock_event_source_t event_source,
214 zb_uint8_t *pin);
215
221 tr_door_lock_event_source_t event_source,
222 zb_uint8_t *pin);
223
231 zb_uint8_t lock_state,
232 zb_uint8_t source,
233 zb_uint16_t user,
234 zb_uint8_t *pin);
235
244 zb_uint8_t source,
245 zb_uint8_t code,
246 zb_uint16_t user,
247 zb_uint8_t *pin,
248 zb_uint8_t mask_bit);
249
254
262 zb_bool_t rf_operation,
263 zb_uint8_t *pin,
264 zb_uint16_t *user);
265
275 zb_uint8_t *pin);
276
281zb_bool_t tr_door_lock_server_get_user(zb_uint16_t user,
282 tr_door_lock_get_pin_resp_t *user_info);
283
287zb_bool_t tr_door_lock_server_delete_user(zb_uint16_t user);
288
291
296zb_bool_t tr_door_lock_server_set_user_status(zb_uint16_t user,
298
303zb_bool_t tr_door_lock_server_get_user_status(zb_uint16_t user,
305
310zb_bool_t tr_door_lock_server_set_user_type(zb_uint16_t user,
312
317zb_bool_t tr_door_lock_server_get_user_type(zb_uint16_t user,
319
322
324
329
330// user management functions
333
334#endif // TR_DOOR_LOCK_SERVER_H
zb_uint8_t source
Definition tr_zcl_cmd_structs.h:1308
ZB_PACKED_PRE struct @230352277160234014126115015046053366070207175050 tr_door_lock_set_user_status_cmd_t
ZB_PACKED_PRE struct @317051132137360126051152045163316165266273202152 tr_door_lock_set_user_type_cmd_t
tr_door_lock_user_status_t
Definition tr_zcl_type.h:702
tr_door_lock_user_type_t
Definition tr_zcl_type.h:710
tr_door_lock_event_source_t
Definition tr_zcl_type.h:589
tr_door_lock_set_pin_or_id_status_t
Definition tr_zcl_type.h:664
zb_bool_t tr_door_lock_server_get_user(zb_uint16_t user, tr_door_lock_get_pin_resp_t *user_info)
API used to get a user table entry.
tr_door_lock_set_pin_or_id_status_t tr_door_lock_server_add_user(zb_uint16_t user, tr_door_lock_user_status_t status, tr_door_lock_user_type_t type, zb_uint8_t *pin)
API used to add a user to the table.
void tr_door_lock_server_unlock(zb_uint8_t endpoint, tr_door_lock_event_source_t event_source, zb_uint8_t *pin)
API that can be used to unlock the door.
zb_uint32_t tr_get_auto_relock_time_seconds(zb_uint8_t endpoint)
API for getting the auto-relock time.
zb_bool_t tr_door_lock_server_get_user_status(zb_uint16_t user, tr_door_lock_get_user_status_resp_t *user_info)
API to get the status of a user in the user table.
zb_bool_t tr_door_lock_server_get_user_type(zb_uint16_t user, tr_door_lock_get_user_type_resp_t *user_info)
API to get the type of a user from the user table.
void tr_door_lock_server_print_users(void)
API to print the user table.
void tr_door_lock_server_delete_all_pin_users(void)
API to delete ALL entries from the user table.
zb_bool_t tr_door_lock_server_delete_user(zb_uint16_t user)
API to delete an entry from the user table.
void tr_door_lock_server_update_lock_state(zb_uint8_t endpoint, zb_uint8_t lock_state, zb_uint8_t source, zb_uint16_t user, zb_uint8_t *pin)
API used to notify the door lock server plugin of lock state changes.
zb_bool_t tr_door_lock_server_set_user_type(zb_uint16_t user, tr_door_lock_user_type_t user_type)
API to set the type of a user in the user table.
zb_bool_t tr_door_lock_server_set_user_status(zb_uint16_t user, tr_door_lock_user_status_t user_status)
API to set the status for a user in the user able.
void tr_door_lock_server_lock(zb_uint8_t endpoint, tr_door_lock_event_source_t event_source, zb_uint8_t *pin)
API that can be used to lock the door.
void tr_door_lock_server_send_op_event_notification(zb_uint8_t endpoint, zb_uint8_t source, zb_uint8_t code, zb_uint16_t user, zb_uint8_t *pin, zb_uint8_t mask_bit)
API used to send an operation event notification.
zb_bool_t tr_door_lock_server_verify_user(zb_uint8_t endpoint, zb_bool_t rf_operation, zb_uint8_t *pin, zb_uint16_t *user)
API used to verify a PIN code.
zb_bool_t tr_door_lock_server_set_user_type_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint, zb_uint16_t user_id, tr_door_lock_user_type_t user_type)
Callback that user can declare to handle door lock cluster set user type command.
zb_bool_t tr_door_lock_server_clear_all_pins_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint)
Callback that user can declare to handle door lock cluster clear all pins command.
zb_bool_t tr_door_lock_server_set_pin_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint, zb_uint16_t user_id, tr_door_lock_user_status_t user_status, tr_door_lock_user_type_t user_type, zb_uint8_t *pin)
Callback that user can declare to handle door lock cluster set pin command.
zb_bool_t tr_door_lock_server_set_user_status_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint, zb_uint16_t user_id, tr_door_lock_user_status_t user_status)
Callback that user can declare to handle door lock cluster set user status command.
zb_bool_t tr_door_lock_server_get_pin_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint, zb_uint16_t user_id)
Callback that user can declare to handle door lock cluster get pin command.
zb_bool_t tr_door_lock_server_get_user_status_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint, zb_uint16_t user_id)
Callback that user can declare to handle door lock cluster get user status command.
void tr_door_lock_server_write_attr_cb(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code)
Callback fires when an Door Lock server attribute is about to be written.
zb_bool_t tr_door_lock_server_lock_door_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint, tr_door_lock_event_source_t event_source, zb_uint8_t *pin)
Callback that user can declare to handle door lock cluster lock door command.
void tr_door_lock_server_init_cb(zb_uint8_t endpoint)
Callback fires when the Door Lock server cluster plugin is initialized.
zb_bool_t tr_door_lock_server_get_user_type_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint, zb_uint16_t user_id)
Callback that user can declare to handle door lock cluster get user type command.
void tr_door_lock_server_resp_sent_cb(zb_bufid_t param)
Callback fires when door lock server response completes.
zb_bool_t tr_door_lock_server_unlock_door_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint, tr_door_lock_event_source_t event_source, zb_uint8_t *pin)
Callback that user can declare to handle door lock cluster unlock door command.
zb_bool_t tr_door_lock_server_clear_pin_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint, zb_uint16_t user_id)
Callback that user can declare to handle door lock cluster clear pin command.
zb_bool_t tr_door_lock_server_command_received_cb(zb_zcl_parsed_hdr_t *cmd_info)
Callback that user can declare to handle any Door Lock server commands.
Trident application framework include.
tr_door_lock_set_user_status_cmd_t tr_door_lock_get_user_status_resp_t
Definition tr_door_lock_server.h:40
ZB_PACKED_PRE struct @265321142051225235110073250073321023271044264372 tr_door_lock_server_user_t
void tr_door_lock_server_init(void)
void tr_door_lock_server_register_nv(void)
zb_uint8_t pin[TR_DOOR_LOCK_SERVER_MAX_PIN_LEN+1]
Definition tr_door_lock_server.h:28
tr_door_lock_user_status_t user_status
Definition tr_door_lock_server.h:34
void tr_door_lock_server_users_init(void)
ZB_PACKED_PRE struct @252154042364136055144166255356366064117021346146 tr_door_lock_get_pin_resp_t
tr_door_lock_user_status_t status
Definition tr_door_lock_server.h:26
tr_door_lock_user_type_t user_type
Definition tr_door_lock_server.h:35
zb_uint16_t user_id
Definition tr_door_lock_server.h:33
tr_door_lock_user_type_t type
Definition tr_door_lock_server.h:27
tr_door_lock_set_user_type_cmd_t tr_door_lock_get_user_type_resp_t
Definition tr_door_lock_server.h:41
#define TR_DOOR_LOCK_SERVER_MAX_PIN_LEN
Definition tr_door_lock_server.h:16
zb_uint8_t endpoint
Definition tr_nvram_attr.h:176
zb_uint16_t manuf_code
Definition tr_nvram_attr.h:180
zb_uint16_t attr_id
Definition tr_nvram_attr.h:178