/* * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2024-04-18 GOATS the first version */ #ifndef APPLICATIONS_WIRELESS_MQTT_H_ #define APPLICATIONS_WIRELESS_MQTT_H_ #include typedef struct { char MQTT_ADDR[16]; // MQTT IP地址 char MQTT_PORT[9]; // 端口 char MQTT_CLI_ID[16]; // 客户端ID char MQTT_USERNAME[16]; // 用户名 char MQTT_PWD[16]; // 密码 rt_uint8_t MQTT_TOPIC; // 订阅话题 rt_uint8_t MQTT_STATUS; // 连接状态:1已连接 0未连接 rt_uint8_t MQTT_UPDATE_FLAG; // 配置更新标志位:1有更新 0无更新 2无改变 rt_uint8_t log; // log rt_uint8_t Key; } MQTT_t; // MQTT配置与状态 #define MQTT_PUBTOPIC "v1/devices/me/telemetry" #define MQTT_SUBTOPIC "v1/devices/me/attributes" void set_mqtt_log(uint8_t log); //MQTT初始化 rt_uint8_t MQTT_init(); //获取MQTT连接状态 rt_uint8_t get_MQTT_Status_flag(); //MQTT心跳 void MQTT_Keep_Alive(); //MQTT重启 void MQTT_RE_init(); //发送电平信息 void MQTT_Send_Key(rt_uint16_t key); //发送modbus数据 void MQTT_Send_Modbus(rt_uint16_t key); //发送转速针数 void MQTT_Send_SpeedNeedle(); // 设置MQTT服务器IP地址 // @param rt_uint8_t addr MQTT服务器IP地址值 // @return void 无返回值 void set_MQTT_ADDR(char* addr); // 将addr值赋给全局MQTT结构体的MQTT_ADDR成员 // 获取MQTT服务器IP地址 // @return rt_uint8_t 返回MQTT服务器IP地址值 char* get_MQTT_ADDR(); // 返回全局MQTT结构体的MQTT_ADDR成员的值 // 设置MQTT服务器端口 // @param rt_uint8_t port MQTT服务器端口号 // @return void 无返回值 void set_MQTT_PORT(char* port); // 将port值赋给全局MQTT结构体的MQTT_PORT成员 // 获取MQTT服务器端口 // @return rt_uint8_t 返回MQTT服务器端口号 char* get_MQTT_PORT(); // 返回全局MQTT结构体的MQTT_PORT成员的值 // 设置MQTT客户端ID // @param rt_uint8_t cli_id MQTT客户端ID值 // @return void 无返回值 void set_MQTT_CLI_ID(char* cli_id); // 将cli_id值赋给全局MQTT结构体的MQTT_CLI_ID成员 // 获取MQTT客户端ID // @return rt_uint8_t 返回MQTT客户端ID值 char* get_MQTT_CLI_ID(); // 返回全局MQTT结构体的MQTT_CLI_ID成员的值 // 设置MQTT用户名 // @param rt_uint8_t username MQTT用户名值 // @return void 无返回值 void set_MQTT_USERNAME(char* username); // 将username值赋给全局MQTT结构体的MQTT_USERNAME成员 // 获取MQTT用户名 // @return rt_uint8_t 返回MQTT用户名值 char* get_MQTT_USERNAME(); // 返回全局MQTT结构体的MQTT_USERNAME成员的值 // 设置MQTT密码 // @param rt_uint8_t pwd MQTT密码值 // @return void 无返回值 void set_MQTT_PWD(char* pwd); // 将pwd值赋给全局MQTT结构体的MQTT_PWD成员 // 获取MQTT密码 // @return rt_uint8_t 返回MQTT密码值 char* get_MQTT_PWD(); // 返回全局MQTT结构体的MQTT_PWD成员的值 // 设置MQTT订阅话题 // @param rt_uint8_t topic MQTT订阅话题值 // @return void 无返回值 void set_MQTT_TOPIC(rt_uint8_t topic); // 将topic值赋给全局MQTT结构体的MQTT_TOPIC成员 // 获取MQTT订阅话题 // @return rt_uint8_t 返回MQTT订阅话题值 rt_uint8_t get_MQTT_TOPIC(); // 返回全局MQTT结构体的MQTT_TOPIC成员的值 // 设置MQTT连接状态 // @param rt_uint8_t status MQTT连接状态值(1已连接,0未连接) // @return void 无返回值 void set_MQTT_STATUS(rt_uint8_t status); // 将status值赋给全局MQTT结构体的MQTT_STATUS成员 // 获取MQTT连接状态 // @return rt_uint8_t 返回MQTT连接状态值(1已连接,0未连接) rt_uint8_t get_MQTT_STATUS(); // 返回全局MQTT结构体的MQTT_STATUS成员的值 // 设置MQTT配置更新标志位 // @param rt_uint8_t update_flag MQTT配置更新标志位值(1有更新,0无更新,2无改变) // @return void 无返回值 void set_MQTT_UPDATE_FLAG(rt_uint8_t update_flag); // 将update_flag值赋给全局MQTT结构体的MQTT_UPDATE_FLAG成员 // 获取MQTT配置更新标志位 // @return rt_uint8_t 返回MQTT配置更新标志位值(1有更新,0无更新,2无改变) rt_uint8_t get_MQTT_UPDATE_FLAG(); // 返回全局MQTT结构体的MQTT_UPDATE_FLAG成员的值 // 设置MQTT配置保存标志位 // @param rt_uint8_t save_flag MQTT配置保存标志位值(1已保存,0未保存,2无改变) // @return void 无返回值 void set_MQTT_SAVE_FLAG(rt_uint8_t save_flag); // 将save_flag值赋给全局MQTT结构体的MQTT_SAVE_FLAG成员 // 获取MQTT配置保存标志位 // @return rt_uint8_t 返回MQTT配置保存标志位值(1已保存,0未保存,2无改变) rt_uint8_t get_MQTT_SAVE_FLAG(); // 返回全局MQTT结构体的MQTT_SAVE_FLAG成员的值 // 设置/获取Key值 // @param rt_uint8_t key 要设置的Key值 // @return rt_uint8_t 返回当前的Key值 void set_MQTT_Key(rt_uint8_t key); // 将key值赋给全局MQTT结构体的Key成员 rt_uint8_t get_MQTT_Key(); // 返回全局MQTT结构体的Key成员的值 #endif /* APPLICATIONS_WIRELESS_MQTT_H_ */