Skip to content

Commit

Permalink
Merge pull request #679 from rusoku/master
Browse files Browse the repository at this point in the history
Add support ListenOnly feature for Qt SerialBus plugins
  • Loading branch information
collin80 authored Nov 21, 2023
2 parents 7508ce5 + 70e9337 commit 03ce939
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
6 changes: 6 additions & 0 deletions connections/serialbusconnection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@ bool SerialBusConnection::piGetBusSettings(int pBusIdx, CANBus& pBus)

void SerialBusConnection::piSetBusSettings(int pBusIdx, CANBus bus)
{
quint32 sbusconfig = 0;

//CANConStatus stats;
/* sanity checks */
if(0 != pBusIdx)
Expand Down Expand Up @@ -106,6 +108,10 @@ void SerialBusConnection::piSetBusSettings(int pBusIdx, CANBus bus)
mDev_p->setConfigurationParameter(QCanBusDevice::BitRateKey, bus.speed);
mDev_p->setConfigurationParameter(QCanBusDevice::CanFdKey, bus.canFD);

if(bus.listenOnly)
sbusconfig |= EN_SILENT_MODE;
mDev_p->setConfigurationParameter(QCanBusDevice::UserKey, sbusconfig);

/* connect device */
if (!mDev_p->connectDevice()) {
disconnectDevice();
Expand Down
15 changes: 15 additions & 0 deletions connections/serialbusconnection.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@
#include <QCanBusDevice>
#include <QTimer>

/*
QCanBusDevice::UserKey
0x00000001 - enable silent mode
0x00000002 - enable loopback mode
0x00000004 - disable auto retransmissions
0x00000008 - enable terminator
0x00000010 - enable automatic bus off recovery
*/

#define EN_SILENT_MODE 0x00000001
#define EN_LOOPBACK_MODE 0x00000002
#define DIS_AUTO_RETRANSMISSIONS 0x00000004
#define EN_TERMINATOR 0x00000008
#define EN_AUTOMATIC_BUSOFF_RECOVERY 0x00000010

class SerialBusConnection : public CANConnection
{
Q_OBJECT
Expand Down

0 comments on commit 03ce939

Please sign in to comment.