如何解决ESP32 MQTT 事件处理
我正在尝试将文件 mqtt_client.h 中定义的 arduino-esp32 方法用于我的 ESP32/Arduino IDE 项目:
我正在努力制作一个事件处理程序。
我目前拥有:
#include <mqtt_client.h>
void MQTTEvent(esp_mqtt_event_t event) {
// process event
}
void setup() {
esp_mqtt_client_config_t mqtt_cfg;
mqtt_cfg.host = "192.168.0.126";
mqtt_cfg.port = 1883;
mqtt_cfg.client_id = "ESP32";
mqtt_cfg.uri = "HOMEPC";
mqtt_cfg.event_handle = MQTTEvent;
esp_mqtt_client_handle_t mqtt_client = esp_mqtt_client_init(&mqtt_cfg);
esp_mqtt_client_start(mqtt_client);
}
void loop() {
}
...但它失败了:
*invalid conversion from 'void (*)(esp_mqtt_event_t)' to 'mqtt_event_callback_t {aka int (*)(esp_mqtt_event_t*)}' [-fpermissive]*
on line mqtt_cfg.event_handle = MQTTEvent;
我找不到任何示例。有人可以帮我解决这个问题吗?
解决方法
您的事件句柄类型错误,它应该返回一个 esp_err_t
而是:
esp_err_t MQTTEvent(esp_mqtt_event_t *event) {
...
return ESP_OK; // you will need to return esp error codes
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。