6#ifndef __SMARTLOCK_DOOR_ACCESS_CONTROL_IDL__
7#define __SMARTLOCK_DOOR_ACCESS_CONTROL_IDL__
10#include <UserEvent.idl>
11#include <PeripheralDeviceSlot.idl>
18 constant
int ERR_INVALID_SETTINGS = 1;
19 constant
int ERR_NO_SUCH_ID = 2;
20 constant
int ERR_MAX_RULES_REACHED = 3;
119 DENIED_CONDITIONS_TIMEOUT
Access control for door locks.
int setAllDoorAccessRules(in map< int, DoorAccessRule > rules, out vector< int > invalidRuleIds)
Replace all the currently existing rules.
DoorAccessDenialReason
Door Access Denial Reason.
@ DENIED_NO_MATCHING_RULE
No rule that matches the triggering event.
@ DENIED_ABSOLUTE_TIME_CONDITION
Absolute time condition was not met.
@ DENIED_PERIODIC_TIME_CONDITION
Periodic time condition was not met.
map< int, DoorAccessRule > getDoorAccessRules()
Get all stored door access control rules.
int deleteDoorAccessRule(in int id)
Delete an existing door access control rule.
int addDoorAccessRule(in DoorAccessRule rule, out int ruleId)
Add a door access control rule.
int modifyDoorAccessRule(in int id, in DoorAccessRule modifiedRule)
Modify an existing door access control rule.
Common base for all events.
A condition representing an absolute time range.
time validFrom
Time range starting from this date or 0 if not set.
time validTill
Time range valid until this date or 0 if not set.
boolean enabled
Condition is enabled.
A condition for specific cards and card readers.
string cardUid
Matching card uid.
CardReaderInfo cardReader
The card reader that has to be used.
boolean enabled
Condition is enabled.
Information in order to refer to a specific card reader.
int linkId
Unit the card reader is attached to.
string position
Position of the card reader.
Event: Door access denied.
DoorAccessDenialReason reason
A DoorAccessDenialReason, specifying why the access was denied.
string ruleName
Name of the rule that could not be fulfilled or empty if no matching rule.
int ruleId
A matching rule that could not be fulfilled or -1 if no matching rule.
Event: Door access granted.
int ruleId
Rule id of rule that granted access.
DoorAccessRule rule
Rule settings of rule that granted access, cardUid and pin will be filtered.
Event: Door access rule added.
DoorAccessRule rule
Rule that was added, cardUid and pin will be filtered.
Event: Door access rule modified.
DoorAccessRule newRule
New rule settings, cardUid and pin will be filtered.
int ruleId
Id of modified rule.
DoorAccessRule oldRule
Old rule settings, cardUid and pin will be filtered.
Event: Door access rule deleted.
int ruleId
Id of deleted rule.
DoorAccessRule rule
Rule that was deleted, cardUid and pin will be filtered.
Data representing a rule to control access to certain doors.
int conditionsTimeout
Timeout for matching multiple card / keypad conditions.
PeriodicTimeCondition periodicTime
Periodic time range condition.
AbsoluteTimeCondition absoluteTime
Absolute time range condition.
KeypadCondition keypadCondition1
Condition that has to be fulfilled when using a keypad.
vector< peripheral::DeviceSlot > doorHandleLocks
Open these door handle locks.
KeypadCondition keypadCondition2
Additional keypad condition that is needed.
CardCondition cardCondition2
Additional card condition that is needed.
string name
A name to describe this rule.
CardCondition cardCondition1
Condition that has to be fulfilled when inserting a card.
A condition for keypads with a secret pin.
boolean enabled
Condition is enabled.
KeypadInfo keypad
The keypad that has to be used.
string pin
Pin that has to be entered.
Information in order to refer to a specific keypad.
string position
Position of the keypad This can be fetched from the Keypad MetaData.
int linkId
Unit the keypad is attached to.
A condition representing a periodic time range.
int fromHourOfDay
Range periodically starts from this hour of the day (0 - 23)
int tillMinuteOfHour
Specify minute of ending hour (0 - 59)
int tillHourOfDay
Range periodically ends this hour of the day (0 - 23)
int fromMinuteOfHour
Specify minute of starting hour (0 - 59)
vector< int > daysOfWeek
Range for these days of the week (valid values are 0 - 6, 0 is Sunday)
boolean enabled
Condition is enabled.