From 703c214421bd98851b10190bd9d4c3dd083eebc4 Mon Sep 17 00:00:00 2001 From: Ondrej Mikle Date: Mon, 21 Jul 2014 14:18:44 +0200 Subject: [PATCH] Better handling of unknown UIDs --- brmdoor_nfc.config.sample | 3 +++ brmdoor_nfc_daemon.py | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/brmdoor_nfc.config.sample b/brmdoor_nfc.config.sample index baf5dbf..731b816 100644 --- a/brmdoor_nfc.config.sample +++ b/brmdoor_nfc.config.sample @@ -1,9 +1,12 @@ # auth_db_filename - sqlite filename of authorized UIDs, create with create_authenticator_db.py # lock_opened_secs - how long lock should be held open in seconds, default 5 +# unknown_uid_timeout_secs - how long to wait after scanning unknown UID - +# prevents too many messages # log_file - logs read UIDs and when was lock opened, use - for stderr # log_level - minimum log level - one of debug, info, warn, error, fatal, default info [brmdoor] auth_db_filename = test_uids_db.sqlite #lock_opened_secs = 5 +#unknown_uid_timeout_secs = 5 log_file = - #log_level = info diff --git a/brmdoor_nfc_daemon.py b/brmdoor_nfc_daemon.py index d17c2b2..c9d51ab 100755 --- a/brmdoor_nfc_daemon.py +++ b/brmdoor_nfc_daemon.py @@ -24,6 +24,7 @@ class BrmdoorConfig(object): _defaults = { "lock_opened_secs": "5", + "unknown_uid_timeout_secs": "5", "log_level": "info" } @@ -39,6 +40,7 @@ class BrmdoorConfig(object): self.authDbFilename = self.config.get("brmdoor", "auth_db_filename") self.lockOpenedSecs = self.config.getint("brmdoor", "lock_opened_secs") + self.unknownUidTimeoutSecs = self.config.getint("brmdoor", "unknown_uid_timeout_secs") self.logFile = self.config.get("brmdoor", "log_file") self.logLevel = self.convertLoglevel(self.config.get("brmdoor", "log_level")) @@ -60,6 +62,7 @@ class NFCUnlocker(object): """Create worker reading UIDs from PN53x reader. """ self.authenticator = UidAuthenticator(config.authDbFilename) + self.unknownUidTimeoutSecs = config.unknownUidTimeoutSecs self.lockOpenedSecs = config.lockOpenedSecs def run(self): @@ -99,8 +102,8 @@ class NFCUnlocker(object): #no match if record is None: - logging.info("Unknown UID") - time.sleep(0.3) + logging.info("Unknown UID %s", uid_hex) + time.sleep(self.unknownUidTimeoutSecs) return logging.info("Unlocking for UID %s", record)