G-CAMS-DATU/applications/AIR820/MQTT.h
2024-05-13 16:08:47 +08:00

148 lines
5.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 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_ */