Arduino从客户端接收数据并重新发送到其他客户端(整体)

时间:2020-03-22 15:29:18

标签: node.js arduino tcpclient

我一直在从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
         }


     }
}

0 个答案:

没有答案