我有这个简单的代码,我在arduino中运行
char inp;
void setup(){
Serial.begin(9600);
}
void loop(){
while(Serial.available()>0){
inp = Serial.read();
Serial.print(inp);
}
Serial.print("--");
delay(200);
}
所以它不断地写“ - ”如果我发送一些东西到arduino它回复那个
然后我有一个js文件
var strinInfo = "";
tempSerial.on("data", function(data) {
console.log("data -> " + data);
if (stringInfo.length < 37){
stringInfo += data;
}else{
io.sockets.emit("message", stringInfo);
stringInfo = ""
}
});
通过套接字发送我从arduino获得的内容。 我的问题是,例如,如果我发送
"thisisanunusuallongandterriblestringofsymbolsblablablablablablabla"
缺少字符:
---------thisisanunusuallongandterribles,
gofsymbolsblablablablabla--blabla ----,
-------------------------------------,
在这个例子中我错过了“trin”。有没有办法不丢失这些角色?
我从节点开始,所以我的猜测是它发出消息的时间......那一刻的内容消失了,也许我错了。
答案 0 :(得分:0)
查看您的代码,可能是一些事情。
if (stringInfo.length < 37){
。如果您获得连续的小数据包,那么超过37的数据包将只打印stringInfo
,但不会打印data
部分。连接到Arduino的Libs:
[Johnny Five][1]
[Firmata][2]
两个程序都与Arduinos互动。 Firmata是低水平的,Johnny-Five跑在最前面。
答案 1 :(得分:0)
我认为这可能是baud-rate
的问题。
如果您使用serialport
模块与Arduino进行串行通信,则必须将serialport baud-rate
设置为9600(与接收方相同,即Arduino)。
默认情况下,串口波特率为115200。