2017-09-04 14 views
2

私は[email protected]ノードJSライブラリを使用しています。以前のバージョン(4.0.7)を使用してGSMと正常に通信しましたモデム。シリアルポート付きのArduino Unoからデータを読み込めませんノードJSライブラリ

今はArduino Unoで使用しています。しかし、私はそれが私がGSMモデムで慣れた方法からデータを読み取るように見えることはできません。

これは私がやろうとしているものです:

this.parser.on('data', (buffer) => { 
    console.log('in on data'); 
    data += buffer.toString(); 
    console.log("DATA: " + data); 
    var parts = data.split('\r\n'); 
    console.log('PARTS:', parts); 
    data = parts.pop(); 
    console.log(data) 
    console.log('POPPED DATA: ' + data); 
}) 

私はそれから何も得ます。私はパーサーを使ってみたので、this.parser.onでした。しかし、私はそれを働かせることはできません。

this.parser.on('data', console.log); 

をしかし、私は最初の場所でデータを処理しようとしているので、それは無用です:

私は、このかかわらず、使用してデータを取得することができます。ここで

は私のSERIALPORT設定です:

_.defaults(options, { 
    baudrate: 9600, 
    dataBits: 8, 
    parity: 'none', 
    stopBits: 1, 
    flowControl: false, 
    autoOpen: false, 
}); 
this.options = options; 
this.serial = new SerialPort(this.port, this.options); 
this.eventEmitter = new events.EventEmitter(); 
this.parser = new Readline({ delimiter: '\n' }); 

私はクラスからserialportを呼び出しています。そしてはい、私は港を開けます。

私はポートに書き込むこともできます。

+0

Arduino IDEに組み込まれた「シリアルポートモニタ」を使用して、シリアルポート/ Arduinoコードと通信できますか? – payne

+0

Arduinoシリアルモニターで私は完全に通信できます。実際にはすべてのデリミタを使用します。また、this.parser.on( 'data'、console.log)を介してデータを取得することもできます。 –

答えて

0

私のサンプルコードのon.data部分の "buffer"変数は、すでに文字列を受け取りました。したがって、私はちょうどconsole.log(バッファ)として文字列を出力することができます。

奇妙な部分は、data + = buffer.toString()部分が奇妙に動作する理由です。私は、最初のコンソールで少なくとも何かを得ることができると期待しています。しかし、それは空白に戻ります。

関連する問題