diff options
Diffstat (limited to 'examples/serialbus/can/mainwindow.cpp')
-rw-r--r-- | examples/serialbus/can/mainwindow.cpp | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/examples/serialbus/can/mainwindow.cpp b/examples/serialbus/can/mainwindow.cpp index b2bae6d..29c5f1f 100644 --- a/examples/serialbus/can/mainwindow.cpp +++ b/examples/serialbus/can/mainwindow.cpp @@ -60,7 +60,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), - m_ui(new Ui::MainWindow) + m_ui(new Ui::MainWindow), + m_busStatusTimer(new QTimer(this)) { m_ui->setupUi(this); @@ -174,6 +175,31 @@ void MainWindow::connectDevice() .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.")); } void MainWindow::disconnectDevice() @@ -181,6 +207,8 @@ void MainWindow::disconnectDevice() if (!m_canDevice) return; + m_busStatusTimer->stop(); + m_canDevice->disconnectDevice(); delete m_canDevice; m_canDevice = nullptr; |