首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ESP32 MQTT事件处理

ESP32 MQTT事件处理
EN

Stack Overflow用户
提问于 2020-12-20 18:46:29
回答 1查看 570关注 0票数 1

我试图为我的mqtt_client.h项目使用文件ESP32 32/Arduino IDE中定义的arduino-esp32 32方法:

我正努力用它来做一个事件处理程序。

我目前有:

代码语言:javascript
复制
#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() {

}

..。但它失败了,因为:

代码语言:javascript
复制
*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;

我找不到任何例子。有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-20 19:25:51

事件句柄的类型是错误的,它应该返回一个esp_err_t,因此如下所示:

代码语言:javascript
复制
esp_err_t MQTTEvent(esp_mqtt_event_t *event) {
  ...
  return ESP_OK; // you will need to return esp error codes
}

参见这里的定义:T

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65383550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档