serialport
Advanced tools
Comparing version 1.4.0 to 1.4.1
{ | ||
"name": "serialport", | ||
"version": "1.4.0", | ||
"version": "1.4.1", | ||
"description": "Welcome your robotic javascript overlords. Better yet, program them!", | ||
@@ -5,0 +5,0 @@ "author": { |
@@ -6,3 +6,3 @@ /*jslint node: true */ | ||
var parsers = module.exports = { | ||
module.exports = { | ||
raw: function (emitter, buffer) { | ||
@@ -24,3 +24,3 @@ emitter.emit("data", buffer); | ||
data = parts.pop(); | ||
parts.forEach(function (part, i, array) { | ||
parts.forEach(function (part) { | ||
emitter.emit('data', part); | ||
@@ -27,0 +27,0 @@ }); |
@@ -16,5 +16,8 @@ ``` | ||
[![Build Status](https://travis-ci.org/voodootikigod/node-serialport.png?branch=master)](https://travis-ci.org/voodootikigod/node-serialport) | ||
[![Gitter chat](https://badges.gitter.im/voodootikigod/node-serialport.png)](https://gitter.im/voodootikigod/node-serialport) | ||
Version: 1.4.0 - Released April 8, 2014 | ||
For all discussions, designs, and clarifications, we recommend you join our Gitter Chat room: [https://gitter.im/voodootikigod/node-serialport](https://gitter.im/voodootikigod/node-serialport) | ||
Version: 1.4.1 - Released July 7, 2014 | ||
***** | ||
@@ -138,3 +141,3 @@ | ||
* baudrate: Baud Rate, defaults to 9600. Must be one of: 115200, 57600, 38400, 19200, 9600, 4800, 2400, 1800, 1200, 600, 300, 200, 150, 134, 110, 75, or 50. | ||
* baudrate: Baud Rate, defaults to 9600. Should be one of: 115200, 57600, 38400, 19200, 9600, 4800, 2400, 1800, 1200, 600, 300, 200, 150, 134, 110, 75, or 50. Custom rates as allowed by hardware is supported. | ||
* databits: Data Bits, defaults to 8. Must be one of: 8, 7, 6, or 5. | ||
@@ -141,0 +144,0 @@ * stopbits: Stop Bits, defaults to 1. Must be one of: 1 or 2. |
@@ -9,2 +9,3 @@ /*jslint node: true */ | ||
// to regular build from source. | ||
var binary = require('node-pre-gyp'); | ||
@@ -152,3 +153,3 @@ var path = require('path'); | ||
var err = new Error("Disconnected"); | ||
callback(err); | ||
self.emit("disconnect",err); | ||
}; | ||
@@ -193,2 +194,3 @@ | ||
} else { | ||
console.log("open"); | ||
self.emit('error', err); | ||
@@ -216,2 +218,3 @@ } | ||
} else { | ||
console.log("write-fd"); | ||
self.emit('error', err); | ||
@@ -230,2 +233,3 @@ } | ||
if (err) { | ||
console.log("write"); | ||
self.emit('error', err); | ||
@@ -261,3 +265,2 @@ } | ||
// one. | ||
var thisPool = self.pool; | ||
var toRead = Math.min(self.pool.length - self.pool.used, ~~self.bufferSize); | ||
@@ -269,2 +272,3 @@ var start = self.pool.used; | ||
if (err) { | ||
if (err.code && err.code === 'EAGAIN') { | ||
@@ -274,34 +278,38 @@ if (self.fd >= 0) { | ||
} | ||
} else if (err.code && (err.code === 'ENXIO' || (err.errno===-1 || err.code === 'UNKNOWN'))) { // handle edge case were mac/unix doesn't clearly know the error. | ||
self.disconnected(); | ||
} else { | ||
self.fd = null; | ||
console.log("afterRead"); | ||
self.emit('error', err); | ||
self.readable = false; | ||
} | ||
} | ||
// Since we will often not read the number of bytes requested, | ||
// let's mark the ones we didn't need as available again. | ||
self.pool.used -= bytesRequested - bytesRead; | ||
if (bytesRead === 0) { | ||
if (self.fd >= 0) { | ||
self.serialPoller.start(); | ||
} | ||
} else { | ||
var b = self.pool.slice(start, start + bytesRead); | ||
// Since we will often not read the number of bytes requested, | ||
// let's mark the ones we didn't need as available again. | ||
self.pool.used -= bytesRequested - bytesRead; | ||
// do not emit events if the stream is paused | ||
if (self.paused) { | ||
self.buffer = Buffer.concat([self.buffer, b]); | ||
return; | ||
if (bytesRead === 0) { | ||
if (self.fd >= 0) { | ||
self.serialPoller.start(); | ||
} | ||
} else { | ||
self._emitData(b); | ||
} | ||
var b = self.pool.slice(start, start + bytesRead); | ||
// do not emit events anymore after we declared the stream unreadable | ||
if (!self.readable) { | ||
return; | ||
// do not emit events if the stream is paused | ||
if (self.paused) { | ||
self.buffer = Buffer.concat([self.buffer, b]); | ||
return; | ||
} else { | ||
self._emitData(b); | ||
} | ||
// do not emit events anymore after we declared the stream unreadable | ||
if (!self.readable) { | ||
return; | ||
} | ||
self._read(); | ||
} | ||
self._read(); | ||
} | ||
} | ||
@@ -348,2 +356,42 @@ | ||
SerialPort.prototype.disconnected = function (callback) { | ||
var self = this; | ||
var fd = self.fd; | ||
// send notification of disconnect | ||
if (self.options.disconnectedCallback) { | ||
self.options.disconnectedCallback(); | ||
} else { | ||
self.emit("disconnect"); | ||
} | ||
self.paused = true; | ||
self.closing = true; | ||
self.emit("close"); | ||
// clean up all other items | ||
var fd = self.fd; | ||
try { | ||
factory.SerialPortBinding.close(fd, function (err) { | ||
}); | ||
} catch (e) { | ||
//handle silently as we are just cleaning up the OS. | ||
} | ||
self.removeAllListeners(); | ||
self.closing = false; | ||
self.fd = 0; | ||
if (process.platform !== 'win32') { | ||
self.readable = false; | ||
self.serialPoller.close(); | ||
} | ||
if (callback) { | ||
callback(); | ||
} | ||
} | ||
SerialPort.prototype.close = function (callback) { | ||
@@ -362,2 +410,3 @@ var self = this; | ||
} else { | ||
console.log("sp not open"); | ||
self.emit('error', err); | ||
@@ -376,2 +425,3 @@ } | ||
} else { | ||
console.log("doclose"); | ||
self.emit('error', err); | ||
@@ -378,0 +428,0 @@ } |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
784895
55
1209
361
5