Reputation: 55
I have the code :
var events = require('events');
var serialport = require("serialport");
var SerialPort = serialport.SerialPort;
var serialPort;
function SerialConnector(){
//EventEmitter constructor
events.EventEmitter.call(this);
var self = this;
this.connect = function (pathToSerialPort, options)
{
serialPort = new SerialPort(pathToSerialPort, options, false);
serialPort.open();
serialPort.on('open', function(data){
self.emit('open', data);
});
serialPort.on('close', function(err){
self.emit('close', err);
});
serialPort.on('error', function(err){
self.emit('error', err);
});
serialPort.on('data', function(data){
self.emit('data', data);
});
};
}
//Copies all of the EventEmitter properties to the SerialConnector object
SerialConnector.prototype.__proto__ = events.EventEmitter.prototype;
module.exports = SerialConnector;
I require the module from another file and call it like this :
var SerialConnector = require('./serial.connector.js');
var serialConnector = new SerialConnector();
serialConnector.on('err',function(err){
console.log('Test');
console.log(err);
});
serialConnector.connect("/dev/ttyUSB0",{
baudrate : 19200,
dataBits : 8,
parity : 'none',
stopBits : 1
});
When a serial port event is emitted, it throws
"event.js:2877: Uncaught TypeError: Uncaught, unspecified "error" event."
What am I doing wrong?
Upvotes: 0
Views: 209
Reputation: 3008
You are emmiting an 'error' event, but are catching an 'err' event.
serialConnector.on('err',function(err){ //<-- Should be 'error'
console.log('Test');
console.log(err);
});
Upvotes: 2