Я использую узел serialport для связи с доской Arduino Uno. Следующий код - это то, что я использовал.Узел SerialPort
serialPort.on("open", function() {
console.log('open');
serialPort.on('data', function(data) {
console.log('data received: ' + data);
});
serialPort.write('s1\n', function(err, results) {
if(err)
console.log('err ' + err);
else
console.log('results ' + results);
});
});
Когда я дать ввод как «s1» от терминала (например, TeraTerm или холодный термин) я получаю 0 или 1 в качестве результата. В принципе, s1 является командой для считывания состояния конкретного датчика. Если датчик активирован, то возвращается 1, и если он не возвращается 0.
Однако, в приведенном выше фрагменте кода, я получаю результаты как 3 (это число символов в строке, используемой для ввода. Таким образом, вместо 's1 \ n', если я ставил 's11 \ n' результат возвращается как 4. Что я делаю неправильно здесь?
Событие .on ('data') никогда не запускается. Но триггеры события .on ('open'), что указывает на то, что соединение с доска нормально
вы можете рассказать мне, какие параметры для парсера, например, синтаксический анализатор строки: com .parsers.readline ('\ r \ n') https://github.com/voodootikigod/node-serialport/blob/master/examples/readdata.js – Dino
Определенный парсер не определен. – Aneesh
попробуйте установить его только на '\ n' – Dino