初心者ですので意味不明なこと言ってたり、勘違いもあるかもしれません。ご指摘ください。
Node.jsでirMagicianとシリアル通信をしようとしています。
コマンドを送信して、その結果を使うような処理をしたいのですが、 結果が返ってくるよりも先にコールバックが呼ばれてしまうようで、コールバック関数ではその結果を受け取れません。
コールバック関数でなくても、これがこのコマンドの返答だとわかるようになっていれば良いです。
ただ、返答が返って来てからしたい処理などもあるので、同期的な感じ?になっていてほしいです。
どうしたらいいでしょうか。ご教授お願いします。
コード
javascript
1var serial = require('serialport').SerialPort; 2serial = new serial('/dev/ttyACM0',{baudrate:9600}); 3 4serial.on('open',function(){ 5 serial.on('data',function(data){ 6 console.log('data : '+data); 7 }); 8 serial.write('i,6\r\n',function(err){ 9 console.log('write \'i,6\''); 10 console.log(err || 'no err'); 11 }); 12}); 13 14======================= 15出力 16======================= 17write 'i,6' 18no err 19data : 0012
このようなことをしたいです
python
1# -*- coding: utf-8 -*- 2import serial 3import time 4 5ser = serial.Serial("/dev/ttyACM0", 9600, timeout = 1) 6ser.readline() 7 8ser.write("I,1\r\n")#赤外線信号の変化点 (L/Hの切り替わり)の数 9time.sleep(1.0) 10recNumberStr = ser.readline() 11recNumber = int(recNumberStr, 16)
意味がよく分からないところなどありましたら指摘してください

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/19 14:52