diff options
-rw-r--r-- | examples/serialbus/can/mainwindow.cpp | 55 | ||||
-rw-r--r-- | examples/serialbus/can/mainwindow.h | 1 | ||||
-rw-r--r-- | tests/auto/plugins/genericcanbus/dummybackend.cpp | 3 | ||||
-rw-r--r-- | tests/auto/plugins/genericcanbusv1/dummybackendv1.cpp | 3 |
4 files changed, 37 insertions, 25 deletions
diff --git a/examples/serialbus/can/mainwindow.cpp b/examples/serialbus/can/mainwindow.cpp index a1c10fe..e8d688b 100644 --- a/examples/serialbus/can/mainwindow.cpp +++ b/examples/serialbus/can/mainwindow.cpp @@ -75,6 +75,8 @@ MainWindow::MainWindow(QWidget *parent) : initActionsConnections(); QTimer::singleShot(50, m_connectDialog, &ConnectDialog::show); + + connect(m_busStatusTimer, &QTimer::timeout, this, &MainWindow::busStatus); } MainWindow::~MainWindow() @@ -177,32 +179,39 @@ void MainWindow::connectDevice() m_status->setText(tr("Plugin: %1, connected to %2") .arg(p.pluginName).arg(p.deviceInterfaceName)); } - } - connect(m_busStatusTimer, &QTimer::timeout, this, [this]() { - switch (m_canDevice->busStatus()) { - case QCanBusDevice::CanBusStatus::Good: - m_ui->busStatus->setText("CAN bus status: Good."); - break; - case QCanBusDevice::CanBusStatus::Warning: - m_ui->busStatus->setText("CAN bus status: Warning."); - break; - case QCanBusDevice::CanBusStatus::Error: - m_ui->busStatus->setText("CAN bus status: Error."); - break; - case QCanBusDevice::CanBusStatus::BusOff: - m_ui->busStatus->setText("CAN bus status: Bus Off."); - break; - default: - m_ui->busStatus->setText("CAN bus status: Unknown."); - break; - } - }); + if (m_canDevice->hasBusStatus()) + m_busStatusTimer->start(2000); + else + m_ui->busStatus->setText(tr("No CAN bus status available.")); + } +} - if (m_canDevice->hasBusStatus()) - m_busStatusTimer->start(2000); - else +void MainWindow::busStatus() +{ + if (!m_canDevice || !m_canDevice->hasBusStatus()) { m_ui->busStatus->setText(tr("No CAN bus status available.")); + m_busStatusTimer->stop(); + return; + } + + switch (m_canDevice->busStatus()) { + case QCanBusDevice::CanBusStatus::Good: + m_ui->busStatus->setText("CAN bus status: Good."); + break; + case QCanBusDevice::CanBusStatus::Warning: + m_ui->busStatus->setText("CAN bus status: Warning."); + break; + case QCanBusDevice::CanBusStatus::Error: + m_ui->busStatus->setText("CAN bus status: Error."); + break; + case QCanBusDevice::CanBusStatus::BusOff: + m_ui->busStatus->setText("CAN bus status: Bus Off."); + break; + default: + m_ui->busStatus->setText("CAN bus status: Unknown."); + break; + } } void MainWindow::disconnectDevice() diff --git a/examples/serialbus/can/mainwindow.h b/examples/serialbus/can/mainwindow.h index 9c3f9ca..2a7bbf0 100644 --- a/examples/serialbus/can/mainwindow.h +++ b/examples/serialbus/can/mainwindow.h @@ -82,6 +82,7 @@ private slots: void sendFrame(const QCanBusFrame &frame) const; void processErrors(QCanBusDevice::CanBusError) const; void connectDevice(); + void busStatus(); void disconnectDevice(); void processFramesWritten(qint64); diff --git a/tests/auto/plugins/genericcanbus/dummybackend.cpp b/tests/auto/plugins/genericcanbus/dummybackend.cpp index 83d2480..301e738 100644 --- a/tests/auto/plugins/genericcanbus/dummybackend.cpp +++ b/tests/auto/plugins/genericcanbus/dummybackend.cpp @@ -52,17 +52,18 @@ DummyBackend::DummyBackend() : enqueueReceivedFrames({dummyFrame}); }); - simulateReceivingTimer->start(1000); } bool DummyBackend::open() { + simulateReceivingTimer->start(1000); setState(QCanBusDevice::ConnectedState); return true; } void DummyBackend::close() { + simulateReceivingTimer->stop(); setState(QCanBusDevice::UnconnectedState); } diff --git a/tests/auto/plugins/genericcanbusv1/dummybackendv1.cpp b/tests/auto/plugins/genericcanbusv1/dummybackendv1.cpp index 4d7d9c0..99f7bcd 100644 --- a/tests/auto/plugins/genericcanbusv1/dummybackendv1.cpp +++ b/tests/auto/plugins/genericcanbusv1/dummybackendv1.cpp @@ -52,17 +52,18 @@ DummyBackendV1::DummyBackendV1() : enqueueReceivedFrames({dummyFrame}); }); - simulateReceivingTimer->start(1000); } bool DummyBackendV1::open() { + simulateReceivingTimer->start(1000); setState(QCanBusDevice::ConnectedState); return true; } void DummyBackendV1::close() { + simulateReceivingTimer->stop(); setState(QCanBusDevice::UnconnectedState); } |