我在运行Ubuntu配对的Raspberry PI 2上使用node-serialport(版本2.0.6)。我有一个usb到串行电缆连接到RP的usb端口\ dev \ ttyUSB0。我正在尝试使用称为PHP(不是编程语言)的协议与旧的串行设备进行通信。使用minicom时,串行通信工作正常。
在minicom中,我可以输入字符串;402'\PT\GC1.FE02:CV'980B
,然后回车,设备返回'=CV65204E0000A30'
。这是正确的回应。
当我运行node.js程序(版本4.3.1)时,我只获得部分数据。部件每次都在变化。例如,我将获得4E0000A
一次{和{{}}}次。 3D0
很有意思,因为返回邮件中不应该有3D0
。
D
以下实际输出(应返回/*jslint node : true, bitwise: true, esnext: true, vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50, globalstrict: $
"use strict";
var SerialPort = require("serialport").SerialPort;
var serialPort = new SerialPort("/dev/ttyUSB0", {
baudrate: 9600,
databits: 8,
parity: 'none',
stopbits: 1,
flowcontrol: false
});
serialPort.on("open", function () {
console.log('open');
serialPort.on('data', function(data) {
console.log('data received: ' + data);
});
var bytesToSend = ";402'\\PT\\GC1.FE02:CV'980B\r";
console.log("sending:",bytesToSend);
serialPort.write(bytesToSend, function(err, results) {
serialPort.drain();
if (err) {
console.log('err ' + err);
}
console.log('results ' + results);
});
});
)
'=CV65204E0000A30'
我还有一个程序的变体,它以Uint8Array的形式发送数据。结果完全一样。