gpt4 book ai didi

javascript - 通过 MQTT 将图像从 Arduino 发送到 MOSCA 主机

转载 作者:太空宇宙 更新时间:2023-11-04 00:38:35 27 4
gpt4 key购买 nike

我想使用 MQTT 将(jpeg)图像数据从 arduino 发送到 mosca 主机。在 arduino 上我使用 PubSubClient-library。图像数据存储在 SPI 连接的 FIFO 上。

Arduino 草图:

size_t len = myMemory.read_fifo_length();
static const size_t bufferSize = 2048;
static uint8_t buffer[bufferSize] = {0xFF};

while (stuff) {
size_t copy = (stuff < bufferSize) ? stuff : bufferSize;
myMemory.transferBytes(&buffer[0], &buffer[0], copy);
client.publish("transfer", &buffer[0], will_copy);
stuff -= copy;
}

在服务器端,我将 NodeJS 与 mosca 结合使用:

var image;
server.on('published', function(packet, client) {
if(packet.topic == "transfer")
image+=packet.payload;

if (packet.topic == "eof")
{
fs.writeFile(client.id+".jpg", image, (err) => {
if (err) throw err;
console.log('It\'s saved!');
});
}
});

到达的数据在保存到文件时甚至具有正确的 JFIF header ,但它是垃圾。

有什么建议吗?

最佳答案

PubSubClient 的默认最大数据包大小为 128 字节 ( http://pubsubclient.knolleary.net/api.html#configoptions ),这限制了您可以发送的消息的大小。

此大小适用于整个 MQTT 消息,因此包括 MQTT header 和有效负载。

除非您更改此设置,否则 2048 字节的缓冲区太大,无法一次性发送。

关于javascript - 通过 MQTT 将图像从 Arduino 发送到 MOSCA 主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37838003/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com