Я использую nodejs "v0.10.28" и npm "1.4.9", загруженные с http://nodejs.org. .
Я установил серийный порт через npm
npm install serialport
Моя программа работает на Raspberry-pi и должна быстро отправлять обновленные значения через последовательный порт, поэтому я создал эту тестовую программу.
var serialPort = require("serialport");
var SerialPort = require("serialport").SerialPort;
var sp = new SerialPort("/dev/ttyAMA0", {
baudrate: 9600
}, false);
console.log("Starting up serial host...");
var message = "Num: ";
var counter = 1000000;
function write()
{
message= counter.toString();
counter+=1;
sp.open(function(err)
{
console.log("Writing serial data: " + message);
sp.write(message, function(err, res)
{
if (err)
{
console.log(err);
}
sp.close();
});
});
}
setTimeout(write, 10); //wait 10 ms for everything to initialize correctly
setInterval(write, 50); //write data every 50 ms
Программа работает нормально ровно 1012 операций записи, а затем вылетает.
Вывод программы ближе к концу:
...
Writing serial data: 1001011
Writing serial data: 1001012
Writing serial data: 1001013
[Error: Serialport not open.]
events.js:72
throw er; // Unhandled 'error' event
^
Error: Serialport not open.
at SerialPortFactory.SerialPort.close (/home/pi/node_modules/serialport/serialport.js:476:17)
at /home/pi/serialTest.js:25:7
at SerialPortFactory.SerialPort.write (/home/pi/node_modules/serialport/serialport.js:290:9)
at /home/pi/serialTest.js:19:13
at /home/pi/node_modules/serialport/serialport.js:224:11
Почему происходит сбой? Есть ли где-нибудь переполнение буфера в памяти? А почему именно 1012 пишет? Очень близко к 1024, это совпадение?
err
, когда вы пытаетесь открыть вsp.open(function(err)
после итерации 1012? - person hassansin   schedule 27.06.2015