diff --git a/doorlockd/config.h.in b/doorlockd/config.h.in index 743f3b4..1d9dae8 100644 --- a/doorlockd/config.h.in +++ b/doorlockd/config.h.in @@ -16,6 +16,7 @@ #define DEFAULT_BINDDN "cn=%s,ou=Users,dc=binary-kitchen,dc=de" #define DEFAULT_LOG_FILE "/var/log/doorlockd.log" #define DEFAULT_SERIAL_DEVICE "/dev/ttyAMA0" +#define DEFAULT_SERIAL_BAUDRATE 9600UL #define TEMPLATE_LOCATION "@CMAKE_INSTALL_PREFIX@/share/doorlockd/template.png" diff --git a/doorlockd/door.h b/doorlockd/door.h index 1b5fdfd..db1ffa5 100644 --- a/doorlockd/door.h +++ b/doorlockd/door.h @@ -17,7 +17,7 @@ class Door final public: Door(const std::string &serDev, - unsigned int baudrate = 9600); + unsigned int baudrate); ~Door(); enum class State {Unlocked, Locked}; diff --git a/doorlockd/logic.cpp b/doorlockd/logic.cpp index f3aee5d..064e887 100644 --- a/doorlockd/logic.cpp +++ b/doorlockd/logic.cpp @@ -18,9 +18,10 @@ Logic::Logic(const chrono::seconds tokenTimeout, const string &bindDN, const string &webPrefix, const string &serDev, + const unsigned int baudrate, condition_variable &onTokenUpdate) : _logger(Logger::get()), - _door(serDev), + _door(serDev, baudrate), _tokenTimeout(tokenTimeout), _onTokenUpdate(onTokenUpdate), _ldapUri(ldapUri), diff --git a/doorlockd/logic.h b/doorlockd/logic.h index 7a67c46..519ab42 100644 --- a/doorlockd/logic.h +++ b/doorlockd/logic.h @@ -27,6 +27,7 @@ public: const std::string &bindDN, const std::string &webPrefix, const std::string &serDev, + const unsigned int baudrate, std::condition_variable &onTokenUpdate); ~Logic(); diff --git a/doorlockd/main.cpp b/doorlockd/main.cpp index d1fa16e..75440d5 100644 --- a/doorlockd/main.cpp +++ b/doorlockd/main.cpp @@ -137,6 +137,7 @@ int main(int argc, char** argv) std::string lockPagePrefix; std::string logfile; std::string serDev; + unsigned int baudrate; l(LogLevel::notice, "Starting doorlockd"); @@ -166,7 +167,11 @@ int main(int argc, char** argv) "Log file") ("serial,i", po::value(&serDev)->default_value(DEFAULT_SERIAL_DEVICE), - "Serial port"); + "Serial port") + + ("baud,r", + po::value(&baudrate)->default_value((DEFAULT_SERIAL_BAUDRATE)), + "Serial baudrate"); po::variables_map vm; po::store(po::command_line_parser(argc, argv).options(desc).run(), vm); @@ -204,6 +209,7 @@ int main(int argc, char** argv) bindDN, lockPagePrefix, serDev, + baudrate, onTokenUpdate)); server(port); }