#ifndef RS485DRIVER_WIRED_H #define RS485DRIVER_WIRED_H #include #include "Common/classxml.h" class RS485_WIRED: public QThread { Q_OBJECT public: RS485_WIRED(const char *Dev, int order); ~RS485_WIRED(); virtual void run(); void setAdjIndex(const quint16 index); void setAdjVol(const quint16 vol); void setAddr(const quint16 addr); const quint8 &getAdjStart(void); quint8 getAdjStatue(void); void setWorkNum(int num_g,int num_eachm); void setWorkParam(int param1); void GetBattVolData(void *data); bool if_com_normal(); private: quint8 AdjStart; quint8 AdjStatue; quint16 adj_addr; quint16 adj_index; quint16 adj_vol; quint16 BattGroup; int Work_Order; int Work_Num; int EachGroupBattSum; int EachGroupModule; quint16 battVolData[MONOMER_NUM_MAX]; quint8 isOdd(quint8 Addr); bool ReadData(void *RxData, const int RxDataLen); void ReadWiredData(quint8 Addr); void SentAddrData(quint8 *Addr, void *Data, int Len); int AdjMonoVol(const quint16 index, const quint16 vol); int AdjMonoAddr(const quint8 Addr); quint8 com_error_count; private: int FD; bool RS485_RUN_EN; void set_speed(int fd, int speed); int set_Parity(int fd,int databits,int stopbits,int parity); unsigned short CalModbusCRC16(void *puchMsg, unsigned short usDataLen); int OpenDev(const char *Dev); void SetDevAttr(int bitrate, char bitlen, char stopbitlen, char checktype); int WriteDev(void *buf, int len); int ReadDev(void *buf, int len); void ClearRx(void); }; #endif