#ifndef LORACELL_H
|
#define LORACELL_H
|
|
#include <qthread.h>
|
#include <QDebug>
|
#include <QMutex>
|
#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
|