2013-04-24 30 views
1

我有我在Arduino的讀取數據和socketio

char inp; 
void setup(){ 
    Serial.begin(9600); 
} 

void loop(){ 
    while(Serial.available()>0){ 
    inp = Serial.read(); 
    Serial.print(inp); 
    } 
    Serial.print("--"); 
    delay(200); 
} 

所以continiously寫入運行這個簡單的代碼「 - 」如果我送東西的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 = "" 
    } 
}); 

這通過套接字我從阿爾杜伊諾了發送。 我的問題是,例如,如果我送

"thisisanunusuallongandterriblestringofsymbolsblablablablablablabla" 

有缺字:

---------thisisanunusuallongandterribles, 
gofsymbolsblablablablabla--blabla ----, 
-------------------------------------, 

在這個例子中,我失蹤 「TRIN」。有沒有一種方法不會丟失角色?

我從節點開始,所以我的猜測是它發出消息的時間...從那一刻起內容消失了,也許我錯了。

回答

0

看着你的代碼,它可能是一些事情。

  1. 您可能在偵聽器準備好之前發送數據,上面的libs已經解決了。
  2. 以下行使我擔心if (stringInfo.length < 37){。如果您獲得連續的小數據包,則超過37的數據包將只打印stringInfo,但不會打印data部分。

利布斯連接到Arduino的:

  • [Johnny Five][1]
  • [Firmata][2]

兩個程序與Arduinos互動。 Firmata是Johnny-Five運行在最前面的低級別。

+0

感謝您的回覆。 其實從arduino我會得到總是「 - 」但我將它們分成37個字符串(不具體,可能是10我只是想分組他們)。 – JavierQQ23 2013-04-24 17:25:58

0

我認爲這可能是baud-rate的問題。

如果您正在使用serialport模塊與Arduino進行串行通信,那麼您必須將serialport baud-rate設置爲9600(與接收端相同,即Arduino)。

默認串口波特率爲115200.