2017-09-03 5 views
0
나는이 코드를 복사 한

:이 비디오에서하여 SerialPort의 lib 디렉토리 - 오류 "parsers.readline는 함수가 아닙니다"- NodeJS

var serialport =require("serialport"); 
var SerialPort = serialport.SerialPort; 
var portName = process.argv[2]; 

var myPort = new SerialPort(portName,{ 
    baudRate: 9600, 
    parser:serialport.parsers.readline("\r\n") 
}) 

myPort.on('open',onOpen); 
myPort.on('data',onData); 

function onOpen(){ 
    console.log("Open connections!"); 
} 

function onData(data){ 
    console.log("on Data "+data); 
} 

을 : https://www.youtube.com/watch?v=rhagmAv35Kk

나는 시리얼 포트에서 데이터를 스트리밍하고 싶습니다 내 PC에서 NJS 코드로. 이 기능을 인식 할 수없는 이유

c:\njs>node main.js 
C:\njs\main.js:7 
     parser:serialport.parsers.readline("\r\n") 
           ^

TypeError: serialport.parsers.readline is not a function 
    at Object.<anonymous> (C:\njs\main.js:7:28) 
    at Module._compile (module.js:541:32) 
    at Object.Module._extensions..js (module.js:550:10) 
    at Module.load (module.js:458:32) 
    at tryModuleLoad (module.js:417:12) 
    at Function.Module._load (module.js:409:3) 
    at Module.runMain (module.js:575:10) 
    at run (bootstrap_node.js:352:7) 
    at startup (bootstrap_node.js:144:9) 
    at bootstrap_node.js:467:3 

c:\njs> 

사람이 알고 내가 코드를 실행하면 난이 오류가?

답변

0

만약 내가 제대로 보면 Readline은 클래스가 아닙니다! 사용해보기 :

parser: SerialPort.parsers.Readline 

이 기능을 사용해보고 작동하는지 확인하십시오. https://github.com/EmergingTechnologyAdvisors/node-serialport#serialportparsers--object

+0

나는 두 번 동일한 논증, 그것의 종류 아닙니다에 부호를 보았다. – itzikb

+0

https://itp.nyu.edu/physcomp/labs/labs-serial-communication/lab-serial-communication-with-node-js/ – itzikb

0

문제는 모듈의 버전입니다. 일을해야 최신 버전으로이 코드를 accordding 는 :

const SerialPort = require('serialport'); 
const Readline = SerialPort.parsers.Readline; 
const port = new SerialPort('/dev/tty-usbserial1'); 
const parser = new Readline(); 
port.pipe(parser); 
parser.on('data', console.log); 
port.write('ROBOT PLEASE RESPOND\n'); 
0

코드의 작업 버전, 당신은 단지 Readline 클래스 인스턴스화했습니다

 
var serialport = require('serialport'); 
var portName = process.argv[2]; 

var myPort = new serialport(portName, { 
    baudRate: 9600, 
    parser: new serialport.parsers.Readline('\r\n') 
}); 

myPort.on('open', onOpen); 
myPort.on('data', onData); 

function onOpen(){ 
    console.log('Open connections!'); 
} 

function onData(data){ 
    console.log('on Data ' + data); 
} 

을 당신은 node index.js COM5를 사용하여 실행할 수 있습니다 예를 들어, 다음과 같은 것을 얻을 수 있습니다 :

 
Open connections! 
on Data 123456789 

희망이 있습니다.