0

問題があります。NodeJS と Windows の npm モジュール「Serialport」を使用して Scale から重みを取得しようとしています。

私が抱えている問題は、スケールに送信したコマンドに関係なく、データが返されないことです。

nwJS で作成しているプロジェクトのモジュール serialport を既にコンパイルしており、次のコードがあります。

    var SerialPort = require('serialport');

            var port = new SerialPort('COM4', {
                parser: SerialPort.parsers.readline('W\n'),
                baudRate: 9600,
                dataBits: 7,
                stopBits: 1,
                parity: 'even',
                bufferSize: 1024
            });

function write() {
            port.open(function(err) {
                console.log("Writing serial data: ");
                port.on('data', function(data) {
                    console.log('Data: ' + data);
                });
                port.write(resultString, function(err, res) {
                    if (err) {
                        console.log(err);
                    }
                    port.close();
                });
            });
        }
    port.on('error', function(err) {
                console.log('Error: ', err.message);
            })
            setTimeout(write, 1000);

注: パーサー W\n は、はかりが重量を送信するために必要な文字列です。私はそれをcooltermという名前の別のアプリケーションでテストしました

助けてくれてありがとう。

4

2 に答える 2

1

ほとんどの場合、問題はパーサーの構成にあります。ReadLine パーサーの代わりに:

 parser: SerialPort.parsers.readline('W\n'),

Delimiter パーサーを試してください:

var weight_parser = port.pipe(new Delimiter({delimiter: new Buffer('W\n')}));
...
parser: weight_parser,
...
parser.on('data', console.log);

それでも問題が解決しない場合は、ByteLength パーサーを試して、「データ」イベントが発生しているかどうかを確認してください。

于 2016-10-02T12:50:10.923 に答える