summaryrefslogtreecommitdiffstats
path: root/examples/serialbus/can/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/serialbus/can/mainwindow.cpp')
-rw-r--r--examples/serialbus/can/mainwindow.cpp29
1 files changed, 23 insertions, 6 deletions
diff --git a/examples/serialbus/can/mainwindow.cpp b/examples/serialbus/can/mainwindow.cpp
index a04a0f4..01101c9 100644
--- a/examples/serialbus/can/mainwindow.cpp
+++ b/examples/serialbus/can/mainwindow.cpp
@@ -44,6 +44,7 @@
#include <QCanBusFrame>
#include <QCanBus>
+#include <QCloseEvent>
#include <QTimer>
#include <QtCore/qbytearray.h>
@@ -143,8 +144,15 @@ void MainWindow::connectDevice()
m_ui->sendMessagesBox->setEnabled(true);
- showStatusMessage(tr("Backend: %1, Connected to: %2")
- .arg(p.backendName).arg(p.deviceInterfaceName));
+ QVariant bitRate = m_canDevice->configurationParameter(QCanBusDevice::BitRateKey);
+ if (bitRate.isValid()) {
+ showStatusMessage(tr("Backend: %1, connected to %2 at %3 kBit/s")
+ .arg(p.backendName).arg(p.deviceInterfaceName)
+ .arg(bitRate.toInt() / 1000));
+ } else {
+ showStatusMessage(tr("Backend: %1, connected to %2")
+ .arg(p.backendName).arg(p.deviceInterfaceName));
+ }
}
}
@@ -170,6 +178,12 @@ void MainWindow::framesWritten(qint64 count)
qDebug() << "Number of frames written:" << count;
}
+void MainWindow::closeEvent(QCloseEvent *event)
+{
+ m_connectDialog->close();
+ event->accept();
+}
+
static QByteArray dataToHex(const QByteArray &data)
{
QByteArray result = data.toHex().toUpper();
@@ -195,12 +209,15 @@ void MainWindow::checkMessages()
if (frame.frameType() == QCanBusFrame::ErrorFrame) {
interpretError(view, frame);
} else {
- view += QLatin1String("Id: ");
- view += QString::number(id, 16).toUpper();
+ const char *format =
+ frame.hasExtendedFrameFormat() ? "Id: %08X" : "Id: %03X";
+ view += QString::asprintf(format, static_cast<uint>(id));
view += QLatin1String(" bytes: ");
view += QString::number(dataLength, 10);
- view += QLatin1String(" data: ");
- view += dataToHex(frame.payload());
+ if (frame.frameType() != QCanBusFrame::RemoteRequestFrame) {
+ view += QLatin1String(" data: ");
+ view += dataToHex(frame.payload());
+ }
}
if (frame.frameType() == QCanBusFrame::RemoteRequestFrame) {