nodejs 用の SerialPorts モジュールを使用しており、可変数のシリアル ポートを開き、書き込み、読み取ることができる必要があります。
だから私がやっていることは、最初に serialPort インスタンスの配列オブジェクトを作成し、次にそれらをループで処理することです:
var serialport = require("serialport");
var SerialPort = serialport.SerialPort; // localize object constructor
var devs = ["/dev/tty.SerialPort","/dev/tty.HHW-SPP-1800-2-DevB"];
var ports = [];
for (var i = 0; i < devs.length; i++) {
console.log(devs[i]);
var port = new SerialPort(devs[i],{ baudrate:9600, parser: serialport.parsers.readline("\n") });
ports.push(port);
}
次に、ポートから読み書きするために定期的に呼び出す別の関数があります。
function minute(){
for (var i = 0; i < ports.length; i++) {
console.log(i);
ports[i].on("open", function (path) {
console.log('opened');
ports[i].write("Helo World\n", function(err,res) {
if(err) console.log('err ' + err);
console.log('results ' + res);
});
ports[i].on("data", function (data) {
console.log("here: "+data);
});
});
}
}
問題は、minute() 関数が実行されることですが、ポートを開いたり読み書きしたりしようとしません。
私は何を間違っていますか?? これを行うより良い方法はありますか??