/* * Copyright (c) 2020 AIIT XUOS Lab * XiUOS is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. * You may obtain a copy of Mulan PSL v2 at: * http://license.coscl.org.cn/MulanPSL2 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. * See the Mulan PSL v2 for more details. */ /** * @file: platform_mqtt.h * @brief: platform_mqtt.h file * @version: 1.0 * @author: AIIT XUOS Lab * @date: 2023/7/27 * */ #ifndef _PLATFORM_MQTT_H_ #define _PLATFORM_MQTT_H_ #include #define KEEPALIVE_TIME 300 //保活时间(单位s),300s #define HEART_TIME 200000 //空闲时发送心跳包的时间间隔(单位ms),200s #define PACK_SIZE 512 //存放报文数据缓冲区大小 #define CMD_SIZE 3072 //保存推送的PUBLISH报文中的数据缓冲区大小 #define CLIENTID_SIZE 64 //存放客户端ID的缓冲区大小 #define USERNAME_SIZE 64 //存放用户名的缓冲区大小 #define PASSWARD_SIZE 64 //存放密码的缓冲区大小 typedef struct{ uint8_t ClientID[CLIENTID_SIZE]; //存放客户端ID的缓冲区 uint8_t Username[USERNAME_SIZE]; //存放用户名的缓冲区 uint8_t Passward[PASSWARD_SIZE]; //存放密码的缓冲区 uint8_t Pack_buff[PACK_SIZE]; //存放发送报文数据缓冲区 uint16_t MessageID; //记录报文标识符 uint16_t Fixed_len; //固定报头长度 uint16_t Variable_len; //可变报头长度 uint16_t Payload_len; //有效负荷长度 uint16_t Remaining_len; //保存报文剩余长度字节 uint8_t cmdbuff[CMD_SIZE]; //保存推送的PUBLISH报文中的数据缓冲区 }MQTT_TCB; extern MQTT_TCB Platform_mqtt; //外部变量声明 int AdapterNetActive(void); int MQTT_Send(const uint8_t* buf, int buflen); int MQTT_Recv(uint8_t* buf, int buflen); int MQTT_Connect(void); void MQTT_Disconnect(void); int MQTT_SubscribeTopic(uint8_t *topic_name); int MQTT_UnSubscribeTopic(uint8_t *topic_name); void MQTT_PublishDataQs0(uint8_t *topic_name,uint8_t *data, uint16_t data_len); void MQTT_PublishDataQs1(uint8_t *topic_name,uint8_t *data, uint16_t data_len); int MQTT_SendHeart(void); void MQTT_DealPublishData(uint8_t *data, uint16_t data_len); #endif