[PATCH] qtbluetooth: add a read timeout

Anton Lundin glance at acc.umu.se
Mon Sep 21 13:41:10 PDT 2015


On 21 September, 2015 - Anton Lundin wrote:

> This adds a read timeout to the qt serial bluetooth code. This is needed
> for error handling and error recovery purposes.
> 
> Signed-off-by: Anton Lundin <glance at acc.umu.se>
> ---
>  qtserialbluetooth.cpp | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/qtserialbluetooth.cpp b/qtserialbluetooth.cpp
> index 442702d..6e717a3 100644
> --- a/qtserialbluetooth.cpp
> +++ b/qtserialbluetooth.cpp
> @@ -248,8 +248,15 @@ static int qt_serial_read(serial_t *device, void* data, unsigned int size)
>  		} else if (rc == 0) {
>  			// Wait until the device is available for read operations
>  			QEventLoop loop;
> +			QTimer timer;
> +			timer.setSingleShot(true);
> +			loop.connect(&timer, SIGNAL(timeout()), SLOT(quit()));
>  			loop.connect(device->socket, SIGNAL(readyRead()), SLOT(quit()));
> +			timer.start(device->timeout);
>  			loop.exec();
> +
> +			if (!timer.isActive())
> +				return 0;

Darn! Should have bin nbytes instead of zero here.

Dirk: will you fix that typo?


//Anton - who codes one thing and then sends something else out


-- 
Anton Lundin	+46702-161604


More information about the subsurface mailing list