G-CAMS-DATU/applications/AIR820/MQTT.h

148 lines
5.1 KiB
C
Raw Permalink Normal View History

2024-05-13 08:08:47 +00:00
/*
* 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 <LTE.h>
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_ */