diff options
author | Marcell Varga <marcell.varga@aimotive.com> | 2017-09-25 18:52:09 +0200 |
---|---|---|
committer | Marcell Varga <eandr2@gmail.com> | 2017-09-29 11:16:28 +0000 |
commit | a7cac26249c70519d381636a667e1c57ab90caca (patch) | |
tree | 6c24b04de74a55f4faf86e7e69bc22282f5ed769 | |
parent | 9a720b4fcc1d743db1b04f7696a30e7850c7707b (diff) |
PeakCAN: Fix connect() always returning false under Linux
It was impossible to open a Peak CAN device under Linux, because
CAN_SetValue (which is needed for the Windows implementation)
always returned with error.
Task-number: QTBUG-63428
Change-Id: I353bf44a7bdea4a18ef84d8037a3a9fd86d47d89
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
-rw-r--r-- | src/plugins/canbus/peakcan/peakcanbackend.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/plugins/canbus/peakcan/peakcanbackend.cpp b/src/plugins/canbus/peakcan/peakcanbackend.cpp index b6eb30e..ca751cf 100644 --- a/src/plugins/canbus/peakcan/peakcanbackend.cpp +++ b/src/plugins/canbus/peakcan/peakcanbackend.cpp @@ -272,7 +272,6 @@ bool PeakCanBackendPrivate::open() return false; } } -#endif const TPCANStatus err = ::CAN_SetValue(channelIndex, PCAN_RECEIVE_EVENT, &readHandle, sizeof(readHandle)); if (Q_UNLIKELY(err != PCAN_ERROR_OK)) { @@ -280,6 +279,14 @@ bool PeakCanBackendPrivate::open() return false; } +#else + const TPCANStatus err = ::CAN_GetValue(channelIndex, PCAN_RECEIVE_EVENT, &readHandle, sizeof(readHandle)); + if (Q_UNLIKELY(err != PCAN_ERROR_OK)) { + q->setError(systemErrorString(err), QCanBusDevice::ConnectionError); + return false; + } +#endif + writeNotifier = new WriteNotifier(this, q); writeNotifier->setInterval(0); |