#ifndef UART_DRIVER_H #define UART_DRIVER_H #include #include "Common/app_define.h" #include 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