From aaf076b7221d543eb8044ee90ccc5fcc8b623699 Mon Sep 17 00:00:00 2001 From: Nico Date: Mon, 20 Jul 2015 14:01:24 +0200 Subject: [PATCH] Fixed RS232 reconnect Former-commit-id: d527e3261eebd7fa40855bfcc0fe343b1be41dcb --- libsrc/leddevice/LedRs232Device.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libsrc/leddevice/LedRs232Device.cpp b/libsrc/leddevice/LedRs232Device.cpp index 3a88bb76..ca9c4b32 100644 --- a/libsrc/leddevice/LedRs232Device.cpp +++ b/libsrc/leddevice/LedRs232Device.cpp @@ -64,7 +64,16 @@ int LedRs232Device::writeBytes(const unsigned size, const uint8_t * data) if (!_rs232Port.isOpen()) { - return -1; + // try to reopen + int status = open(); + if(status == -1){ + // Try again in 3 seconds + int seconds = 3000; + _blockedForDelay = true; + QTimer::singleShot(seconds, this, SLOT(unblockAfterDelay())); + std::cout << "Device blocked for " << seconds << " ms" << std::endl; + } + return status; } // for (int i = 0; i < 20; ++i)