diff options
author | Andre Hartmann <aha_1980@gmx.de> | 2017-09-29 18:07:31 +0200 |
---|---|---|
committer | André Hartmann <aha_1980@gmx.de> | 2017-10-05 04:28:47 +0000 |
commit | 344e9644317fe569363b15d13f8c1d4715bfc255 (patch) | |
tree | 183841f7c18759903bd14f7949a59e32146608a7 | |
parent | a7cac26249c70519d381636a667e1c57ab90caca (diff) |
PeakCAN: Avoid turning PeakCAN status frames into random data frames
[ChangeLog][CanBus][PeakCAN] Peak CAN status frames are no longer
converted into QCanBusFrame::DataFrame, they are simply dropped
for now. In a later Qt version they might by converted into proper
QCanBusFrame::ErrorFrame, together with an interpretErrorFrame()
implementation.
Change-Id: I673ef2c8d312a96de192def831036ad10d5f2c01
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Marcell Varga <eandr2@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
-rw-r--r-- | src/plugins/canbus/peakcan/peakcanbackend.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/plugins/canbus/peakcan/peakcanbackend.cpp b/src/plugins/canbus/peakcan/peakcanbackend.cpp index ca751cf..075cd5d 100644 --- a/src/plugins/canbus/peakcan/peakcanbackend.cpp +++ b/src/plugins/canbus/peakcan/peakcanbackend.cpp @@ -420,6 +420,11 @@ void PeakCanBackendPrivate::startRead() break; } + // Filter out PCAN status frames, to avoid turning them + // into QCanBusFrame::DataFrames with random canId + if (Q_UNLIKELY(message.MSGTYPE & PCAN_MESSAGE_STATUS)) + continue; + QCanBusFrame frame(message.ID, QByteArray(reinterpret_cast<const char *>(message.DATA), int(message.LEN))); const quint64 millis = timestamp.millis + Q_UINT64_C(0xFFFFFFFF) * timestamp.millis_overflow; const quint64 micros = Q_UINT64_C(1000) * millis + timestamp.micros; |