diff options
author | Andre Hartmann <aha_1980@gmx.de> | 2019-02-23 11:18:22 +0100 |
---|---|---|
committer | Andre Hartmann <aha_1980@gmx.de> | 2019-07-17 14:21:24 +0200 |
commit | f83587a9978bd212d7cd64a8d68330a8b97572db (patch) | |
tree | d6f3421d7dbaf6b5b732f975dde4b2903d2e3454 /src/plugins/canbus/socketcan/socketcanbackend.cpp | |
parent | 30df8839a1d0e81580fa570b9fa7d6c4217d8b25 (diff) |
Add QCanBusDevice::busStatus()
The original terminology is Error active, Error warning,
Error Passive and Bus Off. We map them to GoodStatus,
WarningStatus, ErrorStatus and BusOffStatus here.
[ChangeLog][QCanBusDevice] Added the function busStatus()
to query the CAN bus status from the CAN bus device.
Fixes: QTBUG-70766
Change-Id: I22b99e2a02a6b22509005dd177796b861d536281
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src/plugins/canbus/socketcan/socketcanbackend.cpp')
-rw-r--r-- | src/plugins/canbus/socketcan/socketcanbackend.cpp | 17 |
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 |