【发布时间】:2019-03-14 15:02:16
【问题描述】:
所以基本上我的代码是这样的:
void SimpleMQTT::begin() {
Serial.println("setserver");
WiFiClient espClient;
PubSubClient client(espClient);
client.setServer(this->serverAddress, this->port);
while(!client.connected()) {
if (client.connect(this->deviceName)) {
Serial.println("connected to mqtt");
client.publish("connecting", "connected");
} else {
Serial.println("failed to connect");
}
}
this->client = & client;
//WORKING
this->client->publish("connecting","conn2");
}
void SimpleMQTT::broadcast(char* channelName, char* message) {
Serial.println("broadcasting");
Serial.println(this->deviceName);
//NOT WORKING
this->client->connected();
Serial.println("after broadcast");
}
从函数begin() 访问成员有效,但从函数broadcast() 访问同一成员无效。
Arduino 正在向 Serial 发送异常(见截图)。
【问题讨论】:
-
你能详细说明什么不起作用吗?可能是错误消息?
-
有没有可能
broadcast(),this->client还没有初始化? -
在 arduino 板上运行程序时编译时没有错误消息,导致异常。我可以重新发布 arduino 在串行上显示的内容,但它对我没有任何帮助。
-
我不知道,因为它的开始和延迟已经完成了
-
为什么不能发布错误信息?只需输入或发布屏幕截图。