Door Lock Server#

API and Callbacks for the Door Lock Cluster Server Component.

Silicon Labs implementation of the Door Lock server cluster. This is an incomplete component implementation. It does all of the mandatory and optional behavior in the Door Lock cluster needed to pass the Door Lock cluster tests. It does not store user and schedule tables in persistent memory, check user pin activation against user status or user schedule, or offer callbacks and component options to the application for further customization of functionality.

Modules#

EmberAfPluginDoorLockServerLogEntry

EmberAfPluginDoorLockServerUser

EmberAfPluginDoorLockServerWeekdayScheduleEntry

EmberAfPluginDoorLockServerYeardayScheduleEntry

EmberAfPluginDoorLockServerHolidayScheduleEntry

EmberAfPluginDoorLockServerDisposableScheduleEntry

API#

bool
emberAfPluginDoorLockServerAddLogEntry(EmberAfDoorLockEventType eventType, EmberAfDoorLockEventSource source, uint8_t eventId, uint16_t userId, uint8_t pinLength, uint8_t *pin)

Add a log entry. Returns true if the entry was added. Note that the eventId parameter should be of type EmberAfDoorLockOperationEventCode or EmberAfDoorLockProgrammingEventCode.

bool
emberAfPluginDoorLockServerGetLogEntry(uint16_t *entryId, EmberAfPluginDoorLockServerLogEntry *entry)

Get a log entry associated with the entry ID. If the entry ID does not exist, the most recent entry is returned and the entryId parameter is updated. The entryId is a 1-based index into an array of log entries in order to match GetLogRecord ZCL command. This will return true if the entry was successfully returned.

emberAfPluginDoorLockServerApplyPin(uint8_t *pin, uint8_t pinLength)

Unlock the door with a pin.

emberAfPluginDoorLockServerApplyRfid(uint8_t *rfid, uint8_t rfidLength)

Unlock the door with RFID.

API Documentation#

emberAfPluginDoorLockServerAddLogEntry#

bool emberAfPluginDoorLockServerAddLogEntry (EmberAfDoorLockEventType eventType, EmberAfDoorLockEventSource source, uint8_t eventId, uint16_t userId, uint8_t pinLength, uint8_t *pin)

Add a log entry. Returns true if the entry was added. Note that the eventId parameter should be of type EmberAfDoorLockOperationEventCode or EmberAfDoorLockProgrammingEventCode.

Parameters
N/AeventType

Event type Ver.: always

N/Asource

Event source Ver.: always

N/AeventId

Ver.: always

N/AuserId

Ver.: always

N/ApinLength

Ver.: always

N/Apin

Ver.: always

Returns

  • bool true if success


Definition at line 163 of file app/framework/plugin/door-lock-server/door-lock-server.h

emberAfPluginDoorLockServerGetLogEntry#

bool emberAfPluginDoorLockServerGetLogEntry (uint16_t *entryId, EmberAfPluginDoorLockServerLogEntry *entry)

Get a log entry associated with the entry ID. If the entry ID does not exist, the most recent entry is returned and the entryId parameter is updated. The entryId is a 1-based index into an array of log entries in order to match GetLogRecord ZCL command. This will return true if the entry was successfully returned.

Parameters
N/AentryId

Ver.: always

N/Aentry

pointer to log entry struct Ver.: always

Returns

  • bool true if success


Definition at line 182 of file app/framework/plugin/door-lock-server/door-lock-server.h

emberAfPluginDoorLockServerApplyPin#

EmberAfStatus emberAfPluginDoorLockServerApplyPin (uint8_t *pin, uint8_t pinLength)

Unlock the door with a pin.

Parameters
N/Apin

Ver.: always

N/ApinLength

Ver.: always

Returns

  • EmberAfStatus status code


Definition at line 221 of file app/framework/plugin/door-lock-server/door-lock-server.h

emberAfPluginDoorLockServerApplyRfid#

EmberAfStatus emberAfPluginDoorLockServerApplyRfid (uint8_t *rfid, uint8_t rfidLength)

Unlock the door with RFID.

Parameters
N/Arfid

Ver.: always

N/ArfidLength

Ver.: always

Returns

  • EmberAfStatus status code


Definition at line 232 of file app/framework/plugin/door-lock-server/door-lock-server.h

Macro Definition Documentation#

EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_PIN_USER_TABLE_SIZE#

#define EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_PIN_USER_TABLE_SIZE
Value:
8

Definition at line 76 of file app/framework/plugin/door-lock-server/door-lock-server.h

EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_RFID_USER_TABLE_SIZE#

#define EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_RFID_USER_TABLE_SIZE
Value:
8

Definition at line 81 of file app/framework/plugin/door-lock-server/door-lock-server.h

EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_MAX_PIN_LENGTH#

#define EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_MAX_PIN_LENGTH
Value:
8

Definition at line 89 of file app/framework/plugin/door-lock-server/door-lock-server.h

EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_MAX_RFID_LENGTH#

#define EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_MAX_RFID_LENGTH
Value:
8

Definition at line 93 of file app/framework/plugin/door-lock-server/door-lock-server.h

EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_WEEKDAY_SCHEDULE_TABLE_SIZE#

#define EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_WEEKDAY_SCHEDULE_TABLE_SIZE
Value:
4

Definition at line 104 of file app/framework/plugin/door-lock-server/door-lock-server.h

EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_YEARDAY_SCHEDULE_TABLE_SIZE#

#define EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_YEARDAY_SCHEDULE_TABLE_SIZE
Value:
8

Definition at line 111 of file app/framework/plugin/door-lock-server/door-lock-server.h

EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_HOLIDAY_SCHEDULE_TABLE_SIZE#

#define EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_HOLIDAY_SCHEDULE_TABLE_SIZE
Value:
8

Definition at line 115 of file app/framework/plugin/door-lock-server/door-lock-server.h

DOOR_LOCK_SERVER_ENDPOINT#

#define DOOR_LOCK_SERVER_ENDPOINT
Value:
1

Definition at line 118 of file app/framework/plugin/door-lock-server/door-lock-server.h

EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_MAX_LOG_ENTRIES#

#define EMBER_AF_PLUGIN_DOOR_LOCK_SERVER_MAX_LOG_ENTRIES
Value:
16

Definition at line 126 of file app/framework/plugin/door-lock-server/door-lock-server.h

SEND_COMMAND_UNICAST_TO_BINDINGS#

#define SEND_COMMAND_UNICAST_TO_BINDINGS
Value:
()

Definition at line 296 of file app/framework/plugin/door-lock-server/door-lock-server.h

EmberAfDoorLockScheduleEntry#

#define EmberAfDoorLockScheduleEntry
Value:
EmberAfPluginDoorLockServerWeekdayScheduleEntry

Definition at line 304 of file app/framework/plugin/door-lock-server/door-lock-server.h

EmberAfDoorLockUser#

#define EmberAfDoorLockUser
Value:
EmberAfPluginDoorLockServerUser

Definition at line 305 of file app/framework/plugin/door-lock-server/door-lock-server.h