2015-05-05 71 views
2

任何人都可以請幫助我如何做到這一點?我想從WebSocket的每一次將消息傳遞給串口我收到一條消息在nodejs中傳遞的javascript消息

var firmata = require('firmata'); 
var board = new firmata.Board('COM4'); 

var WebSocketServer = require('ws').Server; 
var wss = new WebSocketServer({ port: 8081 }); 

wss.on('connection', function connection(websocket) { 
    websocket.on('message', function incoming(message) { 
    board.servoWrite(5, message); //This doesn't work but how do i send? 
} 

board.on("ready", function() { 
    board.servoWrite(5, 0); // this works but i need the message from above which I cant access. 

}); 
+0

我不得不打電話board.servoConfig(5,0 ,0);這是一個強制性的電話,不工作沒有它:)謝謝:) –

回答

0

它不是一個錯誤的語法時才..不得不添加

board.servoConfig(5, 0, 30); 

我補充它在這樣的代碼:

var firmata = require('firmata'); 
var board = new firmata.Board('COM4',function(){ 

}); 

var WebSocketServer = require('ws').Server; 
var wss = new WebSocketServer({ port: 8081 }); 

wss.on('connection', function connection(websocket) { 
    websocket.on('message', function incoming(message) { 
    board.servoConfig(5, 0, 30); 
    board.servoWrite(5, message); //This doesn't work but how do i send? 
} 

board.on("ready", function() { 
    board.servoWrite(5, 0); // this works but i need the message from above which I cant access. 

}); 
+1

你在哪裏增加了這個? – DrCord

+0

這是什麼? – Arend

+0

我沒有時間查看文檔。我在例子中看到它,並猜測這是失蹤。從簡短的閱讀中可以看出,它爲5號引腳設置了度數[0,30] - > [0,180]的映射 –

0

您應該添加的偵聽器之後board已準備就緒。

board.on("ready", function() { 
    wss.on('connection', function connection(websocket) { 
     websocket.on('message', function incoming(message) { 
      board.servoWrite(5, message); 
     }); 
    }); 
}); 

無論是或聲明一個變量,告訴你它是否準備就緒。

var isReady = false; 

board.on("ready", function() { 
    isReady = true; 
}); 

wss.on('connection', function connection(websocket) { 
    websocket.on('message', function incoming(message) { 
     if(isReady) 
      board.servoWrite(5, message); 
    }); 
}); 
+0

順序無關緊要我認爲:)我想通過這個問題,但非常感謝你:) –