我一直在从node.js客户端向arduino发送带有标头(包含消息大小)的数据,如下所示
socket.on('datos', function (data){
var msg = JSON.stringify(data);
var size = msg.length;
encrypted_msg = new Uint8Array(size +1);
encrypted_msg[0] = size;
console.log('Header:'+ encrypted_msg[0]);
for(var i = 0; i < size; i++) {
encrypted_msg[i+1] = msg.charCodeAt(i);
console.log(encrypted_msg); // copy the rest of the body
} // after header
client.write(encrypted_msg); // Sending message with header to arduino
});
在Arduino上,我收到的数据如下所示,每字节以下字节,问题是当我尝试将数据重新发送到另一个node.js客户端时,Arduino每字节发送数据字节,所以我没有收到它整个。我想知道是否有办法读取Arduino上的标头,因此它现在将是消息的长度,并将其作为一条消息发送。有什么想法请帮忙吗?
void loop()
{
EthernetClient clientA = serverA.available();
if (clientA) {
Serial.println("Client A connected.");
while(clientA.available() > 0) {
char dataA= clientA.read(); //
Serial.print(dataA);
serverB.write(dataA); // serverB is the other node.js client
}
}
}