diff options
author | Andre Hartmann <aha_1980@gmx.de> | 2018-10-02 11:41:16 +0200 |
---|---|---|
committer | André Hartmann <aha_1980@gmx.de> | 2019-05-02 11:15:05 +0000 |
commit | a88ecda86028228174a1ec4e53df235ebac33dcc (patch) | |
tree | 9a39dfe2e0e85310c0450fef9be15120f9dd7ba1 /src/plugins/canbus/socketcan | |
parent | 4a7f051247b05e1e298ffabc00e8ce3dc3e216a0 (diff) |
Add QCanBusDevice::resetController() for CAN controller reset
Currently missing:
* VectorCAN: no information in the documentation found
* PassthroughCAN: no documentation
[ChangeLog][QCanBus][QCanBusDevice] Added the function
QCanBusDevice::resetController() to reset a CAN controller
from bus off state, as far as supported by the various
plugins.
Fixes: QTBUG-54943
Change-Id: Ic098054b012726c0c69970c0ae84f434c2b3964a
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Diffstat (limited to 'src/plugins/canbus/socketcan')
-rw-r--r-- | src/plugins/canbus/socketcan/socketcanbackend.cpp | 8 | ||||
-rw-r--r-- | src/plugins/canbus/socketcan/socketcanbackend.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/plugins/canbus/socketcan/socketcanbackend.cpp b/src/plugins/canbus/socketcan/socketcanbackend.cpp index cac1db5..9e99a57 100644 --- a/src/plugins/canbus/socketcan/socketcanbackend.cpp +++ b/src/plugins/canbus/socketcan/socketcanbackend.cpp @@ -194,6 +194,9 @@ SocketCanBackend::SocketCanBackend(const QString &name) : } resetConfigurations(); + + std::function<void()> f = std::bind(&SocketCanBackend::resetController, this); + setResetControllerFunction(f); } SocketCanBackend::~SocketCanBackend() @@ -750,4 +753,9 @@ void SocketCanBackend::readSocket() enqueueReceivedFrames(newFrames); } +void SocketCanBackend::resetController() +{ + libSocketCan->restart(canSocketName); +} + QT_END_NAMESPACE diff --git a/src/plugins/canbus/socketcan/socketcanbackend.h b/src/plugins/canbus/socketcan/socketcanbackend.h index 1392251..561d4ee 100644 --- a/src/plugins/canbus/socketcan/socketcanbackend.h +++ b/src/plugins/canbus/socketcan/socketcanbackend.h @@ -83,6 +83,7 @@ private: void resetConfigurations(); bool connectSocket(); bool applyConfigurationParameter(int key, const QVariant &value); + void resetController(); canfd_frame m_frame; sockaddr_can m_address; |