我正在为使用Adafruit IO MQTT库的Adafruit Huzzah制作基本草图。这是通过各种来源和示例的复制/粘贴来组合在一起的,而且大部分都是有效的 - 但有一件事我无法弄清楚。
现在,我正在使用一行代码,每次通过我订阅的Feed收到新消息时都会触发处理程序:
group->onMessage("daniel", handleMessage);
这很好,并且我需要它来处理更新的值。
然而,我想要做的是在setup()例程期间获取feed上的最后一个已知值,而不是等待新值到来。
在MQTT的说法中,我认为这被称为保留消息,我认为Adafruit IO默认使用它,但我不知道如何在启动()过程中获取这些值。
任何人都可以帮助我吗?
(如果您有兴趣,到目前为止,这是我的代码:https://github.com/LimeBlast/family-box/blob/master/family-box.ino)
答案 0 :(得分:1)
简短的回答是,你不做任何事。
保留消息的传递方式与普通消息相同(通过onMessage回调),只要您订阅该主题,就会立即发送。
答案 1 :(得分:1)
我也有这个问题。这是完整的爆炸
get()函数将要求Adafruit服务器仅将提要的最后一个值重新发送到此客户端。接收到该值后,将执行处理程序。
exampleFeed->get();
答案 2 :(得分:0)
看到我刚刚找到了我所问问题的答案,我才发现它是正确的,然后才在此处发布。
设置供稿后,我要查找的命令是function renameDir(dirs){
dirs.forEach(function(e){
if(e.name.match(/\s+/g)){
var cname = e.name.replace(/\s+/g,'_');
var cpath = e.path.replace(e.name,cname);
fs.rename(e.path,cpath,function(err,data){
if(err) console.log(err)
else{
console.log('success');
e.path = cpath;
e.name = cname;
}
});
}
var nested = cDT(e.path)
if( nested.children && (nested.children.length > 0) ) renameDir(nested.children);
});
}
,as shown in this example。