diff --git a/communication/communication.cpp b/communication/communication.cpp index 52819b9..b0f2e8b 100644 --- a/communication/communication.cpp +++ b/communication/communication.cpp @@ -23,8 +23,10 @@ bool Communication::open() { return false; } + if(!driver->open()) + return false; spawnThreads(); - return driver->open(); + return true; } void Communication::spawnThreads() { @@ -39,13 +41,13 @@ void Communication::joinThreads() { } bool Communication::close() { + joinThreads(); + if(!isOpen()) { report(APIEvent::Type::DeviceCurrentlyClosed, APIEvent::Severity::Error); return false; } - joinThreads(); - return driver->close(); }