我正在尝试从串行端口获取数据。我有一个工作正常的python脚本,但是我需要node.js中的代码。
以下是python脚本:
import serial
import time
import io
ser = serial.Serial('COM3')
ser.timeout=1
while(True):
try:
ser.write(b'M00');
ser.write(b'p');
s0 = ser.read(26)
print(s0)
except KeyboardInterrupt:
ser.close()
break
except:
pass
现在,我尝试用javascript重写此代码,并提出以下代码:
const SerialPort = require('serialport');
SerialPort.list((err, ports) => {
console.log(ports)
})
var myPort = new SerialPort('COM3', {
baudRate:9600
})
myPort.on('open', onOpen);
myPort.on('data', onData);
myPort.write('M01');
function onOpen(){
console.log("Open connection");
}
function onData(data){
console.log("on Data " + data);
}
while(true){
console.log(myPort.read())
}
不幸的是,我无法正常工作。我的猜测是,也许我必须将二进制代码传递给我的端口。您知道解决方案吗?谢谢
答案 0 :(得分:0)
好的,我发现了我的错误。只是忘了还要在我的端口上写“ p”。