libicsneoc: Resolve DeviceCurrentlyClosed errors

add-device-sharing
David Rebbe 2022-11-03 23:46:14 +00:00
parent 4c0d49f09a
commit 5ff1707c47
4 changed files with 10 additions and 3 deletions

View File

@ -21,6 +21,7 @@ int Communication::messageCallbackIDCounter = 1;
Communication::~Communication() { Communication::~Communication() {
if(redirectingRead) if(redirectingRead)
clearRedirectRead(); clearRedirectRead();
if(isOpen())
close(); close();
} }

View File

@ -78,6 +78,7 @@ bool Device::SerialStringIsNumeric(const std::string& serial) {
Device::~Device() { Device::~Device() {
if(isMessagePollingEnabled()) if(isMessagePollingEnabled())
disableMessagePolling(); disableMessagePolling();
if(isOpen())
close(); close();
} }

View File

@ -22,7 +22,7 @@ public:
typedef void(*fn_boolCallback)(bool success); typedef void(*fn_boolCallback)(bool success);
VCP(const device_eventhandler_t& err, neodevice_t& forDevice); VCP(const device_eventhandler_t& err, neodevice_t& forDevice);
~VCP() { close(); } virtual ~VCP();
bool open() { return open(false); } bool open() { return open(false); }
void openAsync(fn_boolCallback callback); void openAsync(fn_boolCallback callback);
bool close(); bool close();

View File

@ -196,6 +196,11 @@ VCP::VCP(const device_eventhandler_t& err, neodevice_t& forDevice) : Driver(err)
detail = std::make_shared<Detail>(); detail = std::make_shared<Detail>();
} }
VCP::~VCP() {
if(isOpen())
close();
}
bool VCP::IsHandleValid(neodevice_handle_t handle) { bool VCP::IsHandleValid(neodevice_handle_t handle) {
if(handle < 1) if(handle < 1)
return false; return false;