From 0ce15a0b241ca46a76d0b5693c1b5b811c55ac49 Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer Date: Thu, 17 Dec 2015 11:26:22 +0100 Subject: QCanBusFrame: add flag to identify CAN FD frames MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-49675 Task-number: QTBUG-56720 Change-Id: Id24783c6ee1b81317d2e6d0965a9ed37987b47ec Reviewed-by: André Hartmann Reviewed-by: Alex Blasche --- src/tools/canbusutil/canbusutil.cpp | 14 +++++--------- src/tools/canbusutil/canbusutil.h | 2 +- 2 files changed, 6 insertions(+), 10 deletions(-) (limited to 'src/tools') diff --git a/src/tools/canbusutil/canbusutil.cpp b/src/tools/canbusutil/canbusutil.cpp index 9c8995d..d614583 100644 --- a/src/tools/canbusutil/canbusutil.cpp +++ b/src/tools/canbusutil/canbusutil.cpp @@ -97,11 +97,8 @@ bool CanBusUtil::parseDataField(qint32 &id, QString &payload) return true; } -bool CanBusUtil::setFrameFromPayload(QString payload, QCanBusFrame *frame, - bool &fdFrame) +bool CanBusUtil::setFrameFromPayload(QString payload, QCanBusFrame *frame) { - fdFrame = false; - if (!payload.isEmpty() && payload.at(0).toUpper() == 'R') { bool validPayloadLength = false; @@ -127,7 +124,7 @@ bool CanBusUtil::setFrameFromPayload(QString payload, QCanBusFrame *frame, return validPayloadLength; } else if (!payload.isEmpty() && payload.at(0) == '#') { - fdFrame = true; + frame->setFlexibleDataRateFormat(true); payload = payload.mid(1); } @@ -144,7 +141,7 @@ bool CanBusUtil::setFrameFromPayload(QString payload, QCanBusFrame *frame, QByteArray bytes = QByteArray::fromHex(payload.toLatin1()); - const int maxSize = fdFrame ? 64 : 8; + const int maxSize = frame->hasFlexibleDataRateFormat() ? 64 : 8; if (bytes.size() > maxSize) { m_output << "Warning: Truncating payload at max. size of " << maxSize << " bytes." << endl; bytes.truncate(maxSize); @@ -182,13 +179,12 @@ bool CanBusUtil::sendData() { qint32 id; QString payload; - bool fdFrame; QCanBusFrame frame; if (parseDataField(id, payload) == false) return false; - if (setFrameFromPayload(payload, &frame, fdFrame) == false) + if (setFrameFromPayload(payload, &frame) == false) return false; if (id < 0 || id > 0x1FFFFFFF) { // 29 bits @@ -198,7 +194,7 @@ bool CanBusUtil::sendData() frame.setFrameId(id); - if (fdFrame) + if (frame.hasFlexibleDataRateFormat()) m_canDevice->setConfigurationParameter(QCanBusDevice::CanFdKey, true); return m_canDevice->writeFrame(frame); diff --git a/src/tools/canbusutil/canbusutil.h b/src/tools/canbusutil/canbusutil.h index dd1ce26..e17fe7b 100644 --- a/src/tools/canbusutil/canbusutil.h +++ b/src/tools/canbusutil/canbusutil.h @@ -62,7 +62,7 @@ public: private: bool parseDataField(qint32 &id, QString &payload); - bool setFrameFromPayload(QString payload, QCanBusFrame *frame, bool &fdFrame); + bool setFrameFromPayload(QString payload, QCanBusFrame *frame); bool connectCanDevice(); bool startListeningOnCanDevice(); bool sendData(); -- cgit v1.2.3