|
#ifndef __MQTT_H
#define __MQTT_H
#define BUFF_UNIT 512 //緩沖區(qū)長度
#define R_NUM 8 //接收緩沖區(qū)個數(shù)
#define T_NUM 8 //發(fā)送緩沖區(qū)個數(shù)
#define C_NUM 8 //命令緩沖區(qū)個數(shù)
#define MQTT_TxData(x) u2_TxData(x) //串口2負(fù)責(zé)800C的數(shù)據(jù)發(fā)送
#define PRODUCTKEY "a1XrG0NTzDE" //產(chǎn)品ID
#define PRODUCTKEY_LEN strlen(PRODUCTKEY) //產(chǎn)品ID長度
#define DEVICENAME "D001" //設(shè)備名
#define DEVICENAME_LEN strlen(DEVICENAME) //設(shè)備名長度
#define DEVICESECRE "368cfb4efb9036f422daed21fe519b30" //設(shè)備秘鑰
#define DEVICESECRE_LEN strlen(DEVICESECRE) //設(shè)備秘鑰長度
#define S_TOPIC_NAME "/sys/a1XrG0NTzDE/D001/thing/service/property/set" //需要訂閱的主題
#define P_TOPIC_NAME "/sys/a1XrG0NTzDE/D001/thing/event/property/post" //需要發(fā)布的主題
extern unsigned char MQTT_RxDataBuf[R_NUM][BUFF_UNIT]; //外部變量聲明,數(shù)據(jù)的接收緩沖區(qū),所有服務(wù)器發(fā)來的數(shù)據(jù),存放在該緩沖區(qū),緩沖區(qū)第一個字節(jié)存放數(shù)據(jù)長度
extern unsigned char *MQTT_RxDataInPtr; //外部變量聲明,指向緩沖區(qū)存放數(shù)據(jù)的位置
extern unsigned char *MQTT_RxDataOutPtr; //外部變量聲明,指向緩沖區(qū)讀取數(shù)據(jù)的位置
extern unsigned char *MQTT_RxDataEndPtr; //外部變量聲明,指向緩沖區(qū)結(jié)束的位置
extern unsigned char MQTT_TxDataBuf[T_NUM][BUFF_UNIT]; //外部變量聲明,數(shù)據(jù)的發(fā)送緩沖區(qū),所有發(fā)往服務(wù)器的數(shù)據(jù),存放在該緩沖區(qū),緩沖區(qū)第一個字節(jié)存放數(shù)據(jù)長度
extern unsigned char *MQTT_TxDataInPtr; //外部變量聲明,指向緩沖區(qū)存放數(shù)據(jù)的位置
extern unsigned char *MQTT_TxDataOutPtr; //外部變量聲明,指向緩沖區(qū)讀取數(shù)據(jù)的位置
extern unsigned char *MQTT_TxDataEndPtr; //外部變量聲明,指向緩沖區(qū)結(jié)束的位置
extern unsigned char MQTT_CMDBuf[C_NUM][BUFF_UNIT]; //外部變量聲明,命令數(shù)據(jù)的接收緩沖區(qū)
extern unsigned char *MQTT_CMDInPtr; //外部變量聲明,指向緩沖區(qū)存放數(shù)據(jù)的位置
extern unsigned char *MQTT_CMDOutPtr; //外部變量聲明,指向緩沖區(qū)讀取數(shù)據(jù)的位置
extern unsigned char *MQTT_CMDEndPtr; //外部變量聲明,指向緩沖區(qū)結(jié)束的位置
extern char ClientID[128]; //外部變量聲明,存放客戶端ID的緩沖區(qū)
extern int ClientID_len; //外部變量聲明,存放客戶端ID的長度
extern char Username[128]; //外部變量聲明,存放用戶名的緩沖區(qū)
extern int Username_len; //外部變量聲明,存放用戶名的長度
extern char Passward[128]; //外部變量聲明,存放密碼的緩沖區(qū)
extern int Passward_len; //外部變量聲明,存放密碼的長度
extern char ServerIP[128]; //外部變量聲明,存放服務(wù)器IP或是域名
extern int ServerPort; //外部變量聲明,存放服務(wù)器的端口號
extern char Ping_flag; //外部變量聲明,ping報文狀態(tài) 0:正常狀態(tài),等待計時時間到,發(fā)送Ping報文
//外部變量聲明,ping報文狀態(tài) 1:Ping報文已發(fā)送,當(dāng)收到 服務(wù)器回復(fù)報文的后 將1置為0
extern char Connect_flag; //外部變量聲明,同服務(wù)器連接狀態(tài) 0:還沒有連接服務(wù)器 1:連接上服務(wù)器了
extern char ReConnect_flag; //外部變量聲明,重連服務(wù)器狀態(tài) 0:連接還存在 1:連接斷開,重連
extern char ConnectPack_flag; //外部變量聲明,CONNECT報文狀態(tài) 1:CONNECT報文成功
extern char SubcribePack_flag; //外部變量聲明,訂閱報文狀態(tài) 1:訂閱報文成功
void MQTT_Buff_Init(void);
void MQTT_Buff_ReInit(void);
void AliIoT_Parameter_Init(void);
void MQTT_ConectPack(void);
void MQTT_Subscribe(char *, int);
void MQTT_PingREQ(void);
void MQTT_PublishQs0(char *, char *, int);
void MQTT_DealPushdata_Qs0(unsigned char *);
void TxDataBuf_Deal(unsigned char *, int);
void CMDBuf_Deal(unsigned char *, int);
#endif
|
|