#ifndef LORACELL_H #define LORACELL_H #include #include #include #include "Common/data_define.h" //---------------------------------------------------------------------------------------------- #define CRC_NORMAL 0 #define CRC_REVERSE 1 #define DEVICE_ADDR_BROADCAST 0xFF //---------------------------------------------------------------------------------------------- #define CMD_READVOL 0x00A0 #define CMD_SETMONADDR 0x00A2 #define CMD_ADJMONVOL 0x00A3 #define CMD_VERSION 0x00A4 #define CMD_SETMONFRE 0x00A8 #define CMD_SetADJOffSet 0x00B1 #define CMD_SetADJSlope 0x00B2 #define MON_MAX_VOL 16000 #define TRDATA_len 16 #define MODE_CYCLE 0 //轮询 #define MODE_SINGLE 1 //单个 class LORACELL : public QThread { Q_OBJECT public: LORACELL(const char *dev, int fre, int order); virtual void run(); ~LORACELL(); public: void setWorkNum(int num_g,int num_eachm); void setWorkParam(int param1, int param2); int setWorkFre(int fre); int getWorkFre(); bool setmoduleaddr(int num, int num2);//当前地址,目标地址 bool setmodulefre(int num, int num2);//单体地址,目标频段 void GetBattVolData(void *data); int all_tx; int all_rx; bool adjmon_offset(int num, int vol); bool adjmon_slope(int num, int vol); void set_readmode(int); void set_addrsingle(int); void setadjindex(int); int AdjMonoVol(const quint8 index, const quint16 vol, int index_type=0); QString get_version(); void getmodulevol(void *data); private: int FD_NRF905; bool runEn; 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; quint16 battVolData[MONOMER_NUM_MAX]; quint8 battVolErrCnt[MONOMER_NUM_MAX]; int Work_Order; int Work_Num; int EachGroupBattSum; int EachGroupModule; quint16 BattGroup; int tx_count[75]; int rx_count[75]; int readmode; //读取模式 int addr_singlemodule;//单个模块读取地址 int nowfre; int adj_index; int module0vol[4]; int monversion[4]; void set_speed(int fd, int speed); int set_Parity(int fd,int databits,int stopbits,int parity); int OpenDev(const char *Dev); void SetDevAttr(int fd,int bitrate, char bitlen, char stopbitlen, char checktype); int WriteDev(int fd, void *buf, int len); int ReadDev(int fd, void *buf, int len); bool readMonVol(int maddr, int timeout_ms); int retryerrormodule(int times, int timeout_ms, bool *error_count); bool readMonVersion(int maddr,int timeout_ms); int TxPacket(const unsigned char *addr, const void *datas, int fre); unsigned char CheckDataIfOK(const unsigned char *ADDR, RFData m_TXData, RFData* m_RFData); int Write_LoRa_Config(int fre); int Uart_Write_LoRa_Config(int); int Read_LoRa_Config(unsigned char *pbuf); int Uart_Read_LoRa_Config(unsigned char *pbuf); void Set_LoRa_Mode(const unsigned char mode); int ReadData(void *buf, const int len, const int timeout_5ms); }; #endif // MODULE_DRV_H