#ifndef UART_DRIVER_H
|
#define UART_DRIVER_H
|
|
#include <QThread>
|
#include "Common/app_define.h"
|
#include <QMutex>
|
|
|
class Uart_Driver : public QThread
|
{
|
Q_OBJECT
|
public:
|
explicit Uart_Driver(QObject *parent = 0);
|
|
static const int CommOK = 0;
|
static const int CommTxError = -1;
|
static const int CommRxError = -2;
|
static const int CommDataError = -3;
|
static const int CommWrFailError = -4;
|
|
int ModBusRead( const quint8 device_addr,const quint16 data_addr,const quint16 read_data_num,
|
void *read_data_buf, const quint16 timeout_ms );
|
int ModBusMultiWrite(const quint8 device_addr, const quint16 data_addr,quint16 *wr_data_buf,
|
const quint16 WriteDataNum, const quint16 timeout_ms);
|
int ModBusSingleWrite( const quint8 device_addr,const quint16 data_addr,
|
const quint16 wr_data, const quint16 timeout_ms );
|
|
int Tx_Rx_Data(void *txdata, const int txlen, void *rxdata, const int timeout_ms);
|
|
int Tx_Rx_Data_ESP32(void *txdata, const int txlen, void *rxdata, const int rxlen);
|
int ReadData_ESP32(void *rxdata, const int timeout_ms);
|
|
public:
|
int FD;
|
|
public:
|
int OpenDev(const char *Dev);
|
void SetDevAttr(int bitrate, char bitlen, char stopbitlen, char checktype);
|
|
void ClearRxBuff(void);
|
|
int WriteDev(void *buf, int len);
|
|
private:
|
//int WriteDev(void *buf, int len);
|
int ReadDev(void *buf, int len);
|
int ReadData(void *buf, const int len, const int timeout_ms);
|
void set_speed(int fd, int speed);
|
int set_Parity(int fd,int databits,int stopbits,int parity);
|
|
|
|
|
};
|
|
|
#define Swap16(u16) ((quint16)(((quint16)(u16) >> 8)|((quint16)(u16) << 8)))
|
#define Swap32(u32) ((quint32)(((quint32)(u32) >> 16)|((quint32)(u32) << 16)))
|
|
#define FUNC_CODE_READ 0x03
|
#define FUNC_CODE_SINGLE_WRITE 0x06
|
#define FUNC_CODE_MULTI_WRITE 0x10
|
|
|
|
|
|
#endif // UART_DRIVER_H
|