我想在 Raspberry Pi 1 上使用 nodeJs v0.12.6 解析串行数据。
使用 cat 的数据是正确的,但使用 nodeJs(serialPort 模块)打乱了
数据正常,猫
stty -F /dev/ttyAMA0 1200 sane evenp parenb cs7 -crtscts
cat /dev/ttyAMA0
给
MOTDETAT 000000 B
ADCO XXXXXXXXXXX>
OPTARIF HC.. <
ISOUSC 30 9
HCHC 042116615
HCHP 034246387 8
PTEC HP..
IINST 001 X
IMAX 009 H
HHPHC C .
MOTDETAT 000000 B
ADCO XXXXXXXXXXXX>
结果为 CR-ETX-STX-LF ,其中块分隔符为 CR-ETX-STX-LF
2. nodeJs 数据不正确
我的 nodeJs 服务器
var serialPort = new serialport.SerialPort('/dev/ttyAMA0', {
baudrate: 1200,
dataBits: 7,
parity: 'even',
stopBits: 1,
flowControl :true,
//CR-ETX-STX-BR
parser: serialport.parsers.readline(String.fromCharCode(13,3,2,10))
});
serialPort.on('data', function(data) {
console.log("data="+data);
});
结果是
ADCO 0PTARIF H 9
2116615
HCHP 031
..
01 X
9 H
.
T 000000
ADCO 0218 >
OC.. <
所有数据都被加扰,为什么?
好像我收到了 8 个字节,然后丢失了 8 个字节,然后收到了 8 个字节,......