MQTT を使用して arduino から mosca-host に画像データ (jpeg) を送信したいと考えています。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;
}
サーバー側では、mosca で NodeJS を使用します。
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 ヘッダーも含まれますが、ゴミです。
助言がありますか?