summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Hartmann <aha_1980@gmx.de>2016-10-25 07:39:48 +0200
committerAndré Hartmann <aha_1980@gmx.de>2016-10-31 12:47:38 +0000
commitb20254cfae16b5578810f20fa4a42b17a8c05deb (patch)
treee3285bbaca7648de17d0d442ae612a1f2e4eb4cb
parent43f33504e186d3fc4c894ba9c179ff849df8be28 (diff)
QCanBusFrame::toString(): Add one more space around the length field
This limits the three fields CAN-ID, length and data better. SocketCAN's candump does it this way and with this change canbusutil get's more compatible to candump. This function is new in 5.8, so there is no behavior change for existing code outside Qt. Change-Id: Ifc26cb7584a572d7aef91763242e7def909a6083 Reviewed-by: Rolf Eike Beer <eb@emlix.com> Reviewed-by: Andreas Wilhelm <aw@emlix.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
-rw-r--r--examples/serialbus/can/mainwindow.ui2
-rw-r--r--src/serialbus/qcanbusframe.cpp12
-rw-r--r--src/serialbus/qcanbusframe.h9
-rw-r--r--tests/auto/qcanbusframe/tst_qcanbusframe.cpp18
4 files changed, 22 insertions, 19 deletions
diff --git a/examples/serialbus/can/mainwindow.ui b/examples/serialbus/can/mainwindow.ui
index 4a3fcf9..b4b8c6c 100644
--- a/examples/serialbus/can/mainwindow.ui
+++ b/examples/serialbus/can/mainwindow.ui
@@ -143,7 +143,7 @@ Otherwise, the standard format with 11 bit idenfier is used.</string>
<enum>QFrame::StyledPanel</enum>
</property>
<property name="text">
- <string>Timestamp CAN-ID DLC Data</string>
+ <string>Timestamp CAN-ID DLC Data</string>
</property>
</widget>
</item>
diff --git a/src/serialbus/qcanbusframe.cpp b/src/serialbus/qcanbusframe.cpp
index fde355f..b030c9a 100644
--- a/src/serialbus/qcanbusframe.cpp
+++ b/src/serialbus/qcanbusframe.cpp
@@ -288,12 +288,12 @@ QT_BEGIN_NAMESPACE
Typical outputs are:
\code
- (Error) - error frame
- 7FF [1] 01 - data frame with standard identifier
- 1FFFFFFF [8] 01 23 45 67 89 AB CD EF - data frame with extended identifier
- 400 [10] 01 23 45 67 ... EF 01 23 - CAN FD frame
- 123 [5] Remote Request - remote frame with standard identifier
- 00000234 [0] Remote Request - remote frame with extended identifier
+ (Error) - error frame
+ 7FF [1] 01 - data frame with standard identifier
+ 1FFFFFFF [8] 01 23 45 67 89 AB CD EF - data frame with extended identifier
+ 400 [10] 01 23 45 67 ... EF 01 23 - CAN FD frame
+ 123 [5] Remote Request - remote frame with standard identifier
+ 00000234 [0] Remote Request - remote frame with extended identifier
\endcode
\since 5.8
diff --git a/src/serialbus/qcanbusframe.h b/src/serialbus/qcanbusframe.h
index e6f4d28..f8b1b06 100644
--- a/src/serialbus/qcanbusframe.h
+++ b/src/serialbus/qcanbusframe.h
@@ -206,17 +206,20 @@ public:
return QStringLiteral("(Unknown)");
const char *idFormat = hasExtendedFrameFormat() ? "%08X" : " %03X";
- const char *dlcFormat = payload().size() < 10 ? " [%d]" : " [%d]";
+ const char *dlcFormat = payload().size() < 10 ? " [%d]" : " [%d]";
QString result;
result.append(QString::asprintf(idFormat, static_cast<uint>(frameId())));
result.append(QString::asprintf(dlcFormat, payload().size()));
if (type == RemoteRequestFrame) {
- result.append(QLatin1String(" Remote Request"));
+ result.append(QLatin1String(" Remote Request"));
} else {
const QByteArray data = payload().toHex().toUpper();
const QLatin1String l1(data.data(), data.size());
- for (int i = 0, e = data.size(); i < e; i += 2) {
+ const int length = data.size();
+ if (length)
+ result.append(QLatin1Char(' '));
+ for (int i = 0; i < length; i += 2) {
result.append(QLatin1Char(' '));
result.append(l1.mid(i, 2));
}
diff --git a/tests/auto/qcanbusframe/tst_qcanbusframe.cpp b/tests/auto/qcanbusframe/tst_qcanbusframe.cpp
index 3a199ec..f8b3781 100644
--- a/tests/auto/qcanbusframe/tst_qcanbusframe.cpp
+++ b/tests/auto/qcanbusframe/tst_qcanbusframe.cpp
@@ -242,39 +242,39 @@ void tst_QCanBusFrame::tst_toString_data()
QTest::newRow("remote request frame")
<< QCanBusFrame::RemoteRequestFrame << 0x123u << false
<< QByteArray::fromHex("01") // fake data to get a DLC > 0
- << QString(" 123 [1] Remote Request");
+ << QString(" 123 [1] Remote Request");
QTest::newRow("data frame min std id")
<< QCanBusFrame::DataFrame << 0x0u << false
<< QByteArray()
- << QString(" 000 [0]");
+ << QString(" 000 [0]");
QTest::newRow("data frame max std id")
<< QCanBusFrame::DataFrame << 0x7FFu << false
<< QByteArray()
- << QString(" 7FF [0]");
+ << QString(" 7FF [0]");
QTest::newRow("data frame min ext id")
<< QCanBusFrame::DataFrame << 0x0u << true
<< QByteArray()
- << QString("00000000 [0]");
+ << QString("00000000 [0]");
QTest::newRow("data frame max ext id")
<< QCanBusFrame::DataFrame << 0x1FFFFFFFu << true
<< QByteArray()
- << QString("1FFFFFFF [0]");
+ << QString("1FFFFFFF [0]");
QTest::newRow("data frame minimal size")
<< QCanBusFrame::DataFrame << 0x7FFu << false
<< QByteArray::fromHex("01")
- << QString(" 7FF [1] 01");
+ << QString(" 7FF [1] 01");
QTest::newRow("data frame maximal size")
<< QCanBusFrame::DataFrame << 0x1FFFFFFFu << true
<< QByteArray::fromHex("0123456789ABCDEF")
- << QString("1FFFFFFF [8] 01 23 45 67 89 AB CD EF");
+ << QString("1FFFFFFF [8] 01 23 45 67 89 AB CD EF");
QTest::newRow("short data frame FD")
<< QCanBusFrame::DataFrame << 0x123u << false
<< QByteArray::fromHex("001122334455667788")
- << QString(" 123 [9] 00 11 22 33 44 55 66 77 88");
+ << QString(" 123 [9] 00 11 22 33 44 55 66 77 88");
QTest::newRow("long data frame FD")
<< QCanBusFrame::DataFrame << 0x123u << false
<< QByteArray::fromHex("00112233445566778899")
- << QString(" 123 [10] 00 11 22 33 44 55 66 77 88 99");
+ << QString(" 123 [10] 00 11 22 33 44 55 66 77 88 99");
}
void tst_QCanBusFrame::tst_toString()