添加 MQTT 命令处理功能,支持远程控制模式与阈值配置

This commit is contained in:
Wang Beihong
2026-04-22 16:49:00 +08:00
parent 0d117d9d47
commit e446b7515c
4 changed files with 311 additions and 1 deletions

View File

@@ -28,6 +28,12 @@ typedef struct {
} agri_env_ctx_t;
static agri_env_ctx_t s_ctx;
static agri_env_mqtt_cmd_cb_t s_mqtt_cmd_cb = NULL;
void agri_env_set_mqtt_cmd_cb(agri_env_mqtt_cmd_cb_t cb)
{
s_mqtt_cmd_cb = cb;
}
/**
* @brief 规范化 MQTT 代理 URI
@@ -132,6 +138,9 @@ static void agri_env_mqtt_event_handler(void *handler_args, esp_event_base_t bas
event->topic,
event->data_len,
event->data);
if (s_mqtt_cmd_cb != NULL) {
s_mqtt_cmd_cb(event->topic, event->data, event->data_len);
}
}
}

View File

@@ -20,6 +20,9 @@ esp_err_t agri_env_mqtt_publish(const char *topic, const char *payload, int qos,
/* 发布固定 MQTT-only 心跳载荷到指定主题。 */
esp_err_t agri_env_mqtt_publish_latest(const char *topic, int qos, int retain);
typedef void (*agri_env_mqtt_cmd_cb_t)(const char *topic, const char *payload, int len);
void agri_env_set_mqtt_cmd_cb(agri_env_mqtt_cmd_cb_t cb);
#ifdef __cplusplus
}
#endif