summaryrefslogtreecommitdiffstats
path: root/src/tools
diff options
context:
space:
mode:
authorRolf Eike Beer <eb@emlix.com>2015-12-17 11:26:22 +0100
committerAlex Blasche <alexander.blasche@qt.io>2016-11-15 10:54:47 +0000
commit0ce15a0b241ca46a76d0b5693c1b5b811c55ac49 (patch)
treee671bfc7ee8031c67e317893b3c4ecd4e4df300f /src/tools
parentc20ad40f7f3bac218842d98554bebcf0bfea0103 (diff)
QCanBusFrame: add flag to identify CAN FD frames
Task-number: QTBUG-49675 Task-number: QTBUG-56720 Change-Id: Id24783c6ee1b81317d2e6d0965a9ed37987b47ec Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/canbusutil/canbusutil.cpp14
-rw-r--r--src/tools/canbusutil/canbusutil.h2
2 files changed, 6 insertions, 10 deletions
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();