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.cpp30
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;