diff options
Diffstat (limited to 'examples/serialbus/can/mainwindow.cpp')
-rw-r--r-- | examples/serialbus/can/mainwindow.cpp | 29 |
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) { |