58 lines
1.4 KiB
C++
58 lines
1.4 KiB
C++
#ifndef SERIALBUSCONNECTION_H
|
|
#define SERIALBUSCONNECTION_H
|
|
|
|
#include "canconnection.h"
|
|
#include "canframemodel.h"
|
|
|
|
#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
|
|
|
|
public:
|
|
SerialBusConnection(QString portName, QString driverName, int pBusSpeed,
|
|
int pDataRate, bool pCanFd);
|
|
virtual ~SerialBusConnection();
|
|
|
|
protected:
|
|
|
|
virtual void piStarted();
|
|
virtual void piStop();
|
|
virtual void piSetBusSettings(int pBusIdx, CANBus pBus);
|
|
virtual bool piGetBusSettings(int pBusIdx, CANBus& pBus);
|
|
virtual void piSuspend(bool pSuspend);
|
|
virtual bool piSendFrame(const CANFrame&);
|
|
|
|
void disconnectDevice();
|
|
|
|
private slots:
|
|
void errorReceived(QCanBusDevice::CanBusError) const;
|
|
void framesWritten(qint64 count);
|
|
void framesReceived();
|
|
void testConnection();
|
|
|
|
protected:
|
|
QCanBusDevice *mDev_p = nullptr;
|
|
QTimer mTimer;
|
|
};
|
|
|
|
|
|
#endif // SERIALBUSCONNECTION_H
|