Я отправляю данные с заголовком (содержит размер сообщения) от клиента 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
}
}
}