27 lines
1.2 KiB
C
27 lines
1.2 KiB
C
#ifndef MQTT_CLIENT_H
|
||
#define MQTT_CLIENT_H
|
||
|
||
#include <stdint.h>
|
||
|
||
/* 精简版 MQTT 3.1.1 客户端:跑在 ESP-01S TCP 透传之上。
|
||
* 参考工程《4路继电器控制带WIFI和4G V3.4 WIFI无回弹》HARDWARE/ML302/mqtt.c
|
||
* 的报文拼接逻辑重写,去掉 6KB 环形缓冲(RAM 紧张),
|
||
* 发送用单缓冲(主循环串行发布),接收直接从共享 U2_CopyBuff 切帧。 */
|
||
|
||
#define MQTT_KEEPALIVE_S 60 /* CONNECT 报文中的 keepalive */
|
||
|
||
/* PINGREQ 发出后置1,收到 PINGRESP 清0;net_wifi 据此判断链路存活 */
|
||
extern volatile uint8_t g_mqttc_ping_outstanding;
|
||
|
||
void mqttc_init(const char *client_id, const char *user, const char *pass);
|
||
int mqttc_connect(void); /* 发 CONNECT 等 CONNACK, 0=成功 */
|
||
int mqttc_subscribe(const char *topic); /* 发 SUBSCRIBE(QoS0) 等 SUBACK, 0=成功 */
|
||
int mqttc_publish(const char *topic, const char *payload); /* QoS0 发布, 0=成功 */
|
||
void mqttc_ping(void); /* 发 PINGREQ */
|
||
|
||
/* 从共享接收缓冲解析一条完整 MQTT 报文(粘包/半包安全)。
|
||
* 返回 1=处理了一条(可再调), 0=暂无完整报文, -1=链路断开(收到 CLOSED) */
|
||
int mqttc_process(void);
|
||
|
||
#endif /* MQTT_CLIENT_H */
|