Я пытаюсь использовать node для печати серийного номера с Arduino uno, подключенного к USB.
У меня есть файл script.js:
var SerialPort= require("serialport");
SerialPort.list(function(err,ports){
ports.forEach(function(port){
console.log(port.comName);
console.log(port.manufacturer);
});
});
var port= new SerialPort("/dev/cu.usbmodem641",{
baudRate: 9600,
parser: SerialPort.parsers.readline('n')
});
port.on('open',function(){
console.log('opened');
});
port.on('close',function(){
console.log('closed');
});
port.on('data',function(data){
console.log(data);
});
port.on('error',function(error){
console.log("Errore: "+error);
});
console.log(":-)");
Я запускаю sudo node script.js, пока Arduino имеет Serial.println(1);
на терминале я вижу:
opened
closed
Если я открою последовательный монитор Arduino IDE, он будет работать правильно!
Почему мой последовательный порт не остается открытым?
parser: SerialPort.parsers.readline('n')
. Это будет искать символ n, а не новую строку. Это может быть то, что вы хотели, но может потребоватьсяparser: SerialPort.parsers.readline('\n')
для анализа новой строки вместо n. - person The Dude   schedule 30.08.2016dataBits: 8, parity: 'none', stopBits: 1, flowControl: false });
. Бит управления потоком должен заставить компьютер оставить DTR в покое, что может помочь. - person The Dude   schedule 30.08.2016port.on('data',function(data){ console.log(data); });
внутрьport.on('open',function(){ console.log('opened'); });
, чтобы провести рефакторингport.on('open',function(){ console.log('opened'); port.on('data',function(data){ console.log(data); }); });
. - person The Dude   schedule 30.08.2016