Node.js node-serialport .on('data')缺少数据

时间:2016-02-28 03:19:45

标签: node.js raspberry-pi node-serialport

我在运行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的形式发送数据。结果完全一样。

0 个答案:

没有答案