1

我正在为使用 Adafruit IO MQTT 库的 Adafruit Huzzah 绘制基本草图。这是通过从各种来源和示例复制/粘贴而组合在一起的,并且大部分都有效 - 但有一件事我无法弄清楚。

现在,我正在使用一行代码,每次通过我订阅的提要收到新消息时都会触发处理程序:

group->onMessage("daniel", handleMessage);

这很好,并且可以为更新的值做我需要它做的事情。

但是,我想要做的是在 setup() 例程期间获取提要上的最后一个已知值,而不是必须等待新值的出现。

用 MQTT 的说法,我相信这被称为保留消息,我认为 Adafruit IO 默认启用,但我不知道如何在 startup() 过程中获取这些值。

谁能帮我吗?

(如果您有兴趣,这是我目前的代码:https ://github.com/LimeBlast/family-box/blob/master/family-box.ino )

4

3 回答 3

1

简短的回答是你不......做任何事情。

保留消息的传递与普通消息相同(通过 onMessage 回调),它们只是在您订阅主题后立即传递。

于 2017-09-09T19:33:14.863 回答
1

我也有这个问题。这是完整的解释

get() 函数将要求 Adafruit 服务器仅将提要的最后一个值重新发送到该客户端。当接收到值时,将执行处理程序。

exampleFeed->get();  
于 2020-03-20T13:06:24.310 回答
0

看到我刚刚找到了我所问问题的答案,我认为我把它贴在这里是正确的。

在设置提要后,我正在寻找的命令是->get()如本例所示

于 2018-10-30T07:48:55.757 回答