summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/tools/canbusutil/canbusutil.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/tools/canbusutil/canbusutil.cpp b/src/tools/canbusutil/canbusutil.cpp
index d7200a1..80ea5e3 100644
--- a/src/tools/canbusutil/canbusutil.cpp
+++ b/src/tools/canbusutil/canbusutil.cpp
@@ -102,16 +102,18 @@ bool CanBusUtil::parsePayloadField(QString payload, bool &rtrFrame,
if (!payload.isEmpty() && payload.at(0).toUpper() == 'R') {
rtrFrame = true;
bool validPayloadLength = false;
- if (payload.size() > 1) {
+ if (fdFrame) {
+ m_output << "CAN FD RTR data frames are not valid." << endl;
+ } else if (payload.size() == 1) { // payload = "R"
+ validPayloadLength = true;
+ } else if (payload.size() > 1) { // payload = "R8"
payload = payload.mid(1);
int rtrFrameLength = payload.toInt(&validPayloadLength);
- if (validPayloadLength && rtrFrameLength > 0 && rtrFrameLength <= 64) {
+ if (validPayloadLength && rtrFrameLength >= 0 && rtrFrameLength <= 8) {
bytes = QByteArray(rtrFrameLength, 0);
- if (rtrFrameLength > 8)
- fdFrame = true;
} else if (validPayloadLength) {
- m_output << "The length must be larger than 0 and not exceed 64." << endl;
+ m_output << "The length must be between 0 and 8 (including)." << endl;
validPayloadLength = false;
}
}