From b8cb8f9876f99f88d8297670fe9709eca8c9de81 Mon Sep 17 00:00:00 2001 From: Ralf Ramsauer Date: Fri, 25 Sep 2015 03:26:07 +0200 Subject: [PATCH] Added door state to Clientmessage / Doormessage --- doorlockd/src/clientmessage.cpp | 3 +++ doorlockd/src/clientmessage.h | 1 + doorlockd/src/door.cpp | 1 + doorlockd/src/doormessage.h | 1 + 4 files changed, 6 insertions(+) diff --git a/doorlockd/src/clientmessage.cpp b/doorlockd/src/clientmessage.cpp index aad10ba..7266b6b 100644 --- a/doorlockd/src/clientmessage.cpp +++ b/doorlockd/src/clientmessage.cpp @@ -7,6 +7,7 @@ const std::string Clientmessage::_tokenKey = "token"; const std::string Clientmessage::_unlockButtonKey = "unlockButton"; const std::string Clientmessage::_lockButtonKey = "lockButton"; const std::string Clientmessage::_emergencyUnlockKey = "emergencyUnlock"; +const std::string Clientmessage::_isOpenKey = "isOpen"; Clientmessage::Clientmessage(std::string token, Doormessage doormessage) : @@ -24,6 +25,7 @@ std::string Clientmessage::toJson() const message[_unlockButtonKey] = _doormessage.isUnlockButton; message[_lockButtonKey] = _doormessage.isLockButton; message[_emergencyUnlockKey] = _doormessage.isEmergencyUnlock; + message[_isOpenKey] = _doormessage.isOpen; return writer.write(message); } @@ -52,6 +54,7 @@ Clientmessage Clientmessage::fromJson(const std::string &json) doormessage.isLockButton = getJsonOrFail(root, _lockButtonKey); doormessage.isUnlockButton = getJsonOrFail(root, _unlockButtonKey); doormessage.isEmergencyUnlock = getJsonOrFail(root, _emergencyUnlockKey); + doormessage.isOpen = getJsonOrFail(root, _isOpenKey); return Clientmessage(token, doormessage); } diff --git a/doorlockd/src/clientmessage.h b/doorlockd/src/clientmessage.h index bd05814..5531442 100644 --- a/doorlockd/src/clientmessage.h +++ b/doorlockd/src/clientmessage.h @@ -28,6 +28,7 @@ private: const static std::string _unlockButtonKey; const static std::string _lockButtonKey; const static std::string _emergencyUnlockKey; + const static std::string _isOpenKey; }; #endif diff --git a/doorlockd/src/door.cpp b/doorlockd/src/door.cpp index 336dfc8..5bc76ab 100644 --- a/doorlockd/src/door.cpp +++ b/doorlockd/src/door.cpp @@ -56,6 +56,7 @@ void Door::_asyncRead() boost::asio::buffer(&recvBuf, sizeof(recvBuf)), [this] (const boost::system::error_code &ec, size_t bytes_transferred) { Doormessage m; + m.isOpen = _state == Door::State::Unlocked; if (ec) { // Operation canceled occurs on system shutdown diff --git a/doorlockd/src/doormessage.h b/doorlockd/src/doormessage.h index ee59b11..824cdcd 100644 --- a/doorlockd/src/doormessage.h +++ b/doorlockd/src/doormessage.h @@ -2,6 +2,7 @@ #define DOORMESSAGE_H struct Doormessage { + bool isOpen = { false }; bool isUnlockButton = { false }; bool isLockButton = { false }; bool isEmergencyUnlock = { false };