summaryrefslogtreecommitdiffstats
path: root/src/plugins/canbus/socketcan/socketcanbackend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/canbus/socketcan/socketcanbackend.cpp')
-rw-r--r--src/plugins/canbus/socketcan/socketcanbackend.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/plugins/canbus/socketcan/socketcanbackend.cpp b/src/plugins/canbus/socketcan/socketcanbackend.cpp
index 9e99a57..7d0fc52 100644
--- a/src/plugins/canbus/socketcan/socketcanbackend.cpp
+++ b/src/plugins/canbus/socketcan/socketcanbackend.cpp
@@ -197,6 +197,13 @@ SocketCanBackend::SocketCanBackend(const QString &name) :
std::function<void()> f = std::bind(&SocketCanBackend::resetController, this);
setResetControllerFunction(f);
+
+ if (hasBusStatus()) {
+ // Only register busStatus when libsocketcan is available
+ // QCanBusDevice::hasBusStatus() will return false otherwise
+ std::function<CanBusStatus()> g = std::bind(&SocketCanBackend::busStatus, this);
+ setCanBusStatusGetter(g);
+ }
}
SocketCanBackend::~SocketCanBackend()
@@ -758,4 +765,14 @@ void SocketCanBackend::resetController()
libSocketCan->restart(canSocketName);
}
+bool SocketCanBackend::hasBusStatus() const
+{
+ return libSocketCan->hasBusStatus();
+}
+
+QCanBusDevice::CanBusStatus SocketCanBackend::busStatus() const
+{
+ return libSocketCan->busStatus(canSocketName);
+}
+
QT_END_NAMESPACE