Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

milight

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

milight - npm Package Compare versions

Comparing version 0.1.1 to 1.0.0

233

lib/milight.js

@@ -21,12 +21,14 @@ /*jslint node: true, vars: true, nomen: true */

function Milight(configuration) {
Zone.call(this, this, 0);
Zone.call(this, this, 0);
configuration = configuration || {};
configuration = configuration || {};
this._host = configuration.host || DEFAULT_HOST;
this._port = configuration.port || DEFAULT_PORT;
this._broadcastMode = configuration.broadcast || (this._host === DEFAULT_HOST);
this._delayBetweenMessages = configuration.delayBetweenMessages || DEFAULT_DELAY_BETWEEN_MESSAGES;
this._host = configuration.host || DEFAULT_HOST;
this._port = configuration.port || DEFAULT_PORT;
this._broadcastMode = configuration.broadcast ||
(this._host === DEFAULT_HOST);
this._delayBetweenMessages = configuration.delayBetweenMessages ||
DEFAULT_DELAY_BETWEEN_MESSAGES;
this._socketSem = semaphore(1);
this._socketSem = semaphore(1);
}

@@ -39,22 +41,22 @@

Milight.prototype.zone = function(ids) {
if (ids === 0) {
return this;
}
return new Zone(this, ids);
if (ids === 0) {
return this;
}
return new Zone(this, ids);
};
Milight.prototype.allZones = function() {
return this;
return this;
};
Milight.prototype._sync = function(func, callback) {
var sem = this._socketSem;
sem.take(function() {
func(function(error) {
var sem = this._socketSem;
sem.take(function() {
func(function(error) {
sem.leave();
sem.leave();
return callback.apply(this, arguments);
});
});
return callback.apply(this, arguments);
});
});
};

@@ -64,84 +66,85 @@

if (typeof (callback) !== "function") {
throw new Error("Illegal callback argument '" + callback + "'");
}
if (typeof (callback) !== "function") {
throw new Error("Illegal callback argument '" + callback + "'");
}
var buffer = new Buffer(array);
var buffer = new Buffer(array);
if (debug.enabled) {
debug("_send ", buffer);
}
if (debug.enabled) {
debug("_send ", buffer);
}
var self = this;
var self = this;
this._init(function(error, socket) {
if (error) {
return callback(error);
}
this._init(function(error, socket) {
if (error) {
return callback(error);
}
function send() {
if (debug.enabled) {
debug("Send at " + Date.now());
}
function send() {
if (debug.enabled) {
debug("Send at", Date.now());
}
socket.send(buffer, 0, buffer.length, self._port, self._host, function(error, bytes) {
self._lastSend = Date.now();
socket.send(buffer, 0, buffer.length, self._port, self._host, function(
error, bytes) {
self._lastSend = Date.now();
if (debug.enabled) {
debug("Sent at ", Date.now(), "error=", error, "bytes=", bytes);
}
if (debug.enabled) {
debug("Sent at", Date.now(), "error=", error, "bytes=", bytes);
}
if (error) {
if (!callback) {
console.error(error);
return;
}
return callback(error);
}
if (error) {
if (!callback) {
console.error(error);
return;
}
return callback(error);
}
if (!callback) {
return;
}
if (!callback) {
return;
}
callback();
});
}
callback();
});
}
var dt = self._lastSend + self._delayBetweenMessages - Date.now();
if (!self._lastSend || dt < 0) {
return send();
}
var dt = self._lastSend + self._delayBetweenMessages - Date.now();
if (!self._lastSend || dt < 0) {
return send();
}
if (debug.enabled) {
debug("Wait " + dt + "ms");
}
setTimeout(function() {
send();
}, dt);
});
if (debug.enabled) {
debug("Wait " + dt + "ms");
}
setTimeout(function() {
send();
}, dt);
});
};
Milight.prototype._init = function(callback) {
var socket = this._socket;
if (socket) {
return callback(null, socket);
}
var socket = this._socket;
if (socket) {
return callback(null, socket);
}
var self = this;
socket = dgram.createSocket('udp4');
socket.on("listening", function(error) {
if (error) {
return callback(error);
}
var self = this;
socket = dgram.createSocket('udp4');
socket.on("listening", function(error) {
if (error) {
return callback(error);
}
if (self._broadcastMode) {
socket.setBroadcast(true);
}
if (self._broadcastMode) {
socket.setBroadcast(true);
}
self._socket = socket;
self._socket = socket;
callback(null, socket);
});
callback(null, socket);
});
socket.bind();
socket.bind();
};

@@ -151,3 +154,3 @@

this._on(zoneId, false, callback);
this._on(zoneId, false, callback);
};

@@ -157,52 +160,52 @@

if (typeof (callback) !== "function") {
throw new Error("Illegal callback argument '" + callback + "'");
}
if (typeof (callback) !== "function") {
throw new Error("Illegal callback argument '" + callback + "'");
}
if (isNaN(zoneId) || zoneId < 0 || zoneId >= onKeys.lenght) {
var error = new Error("_on: Invalid zoneId (" + zoneId + ")");
return callback(error);
}
if (isNaN(zoneId) || zoneId < 0 || zoneId >= onKeys.lenght) {
var error = new Error("_on: Invalid zoneId (" + zoneId + ")");
return callback(error);
}
if (!force && this._currentZone === zoneId) {
// console.log("Zone already specified ", zoneId);
return callback(null);
}
if (!force && this._currentZone === zoneId) {
debug("Zone already specified ", zoneId);
return callback(null);
}
var buffer = [ onKeys[zoneId], 0x00, 0x55 ];
var buffer = [ onKeys[zoneId], 0x00, 0x55 ];
var self = this;
this._send(buffer, function(error) {
var self = this;
this._send(buffer, function(error) {
// console.log("ON zone " + zoneId + " terminated ", error);
debug("ON zone", zoneId, "terminated ", error);
if (error) {
return callback(error);
}
if (error) {
return callback(error);
}
self._currentZone = zoneId;
self._currentZone = zoneId;
callback();
});
callback();
});
};
Milight.prototype._off = function(zoneId, callback) {
if (isNaN(zoneId) || zoneId < 0 || zoneId >= onKeys.lenght) {
var error = new Error("_off: Invalid zoneId (" + zoneId + ")");
if (isNaN(zoneId) || zoneId < 0 || zoneId >= onKeys.lenght) {
var error = new Error("_off: Invalid zoneId (" + zoneId + ")");
return callback(error);
}
return callback(error);
}
var buffer = [ offKeys[zoneId], 0x00, 0x55 ];
var buffer = [ offKeys[zoneId], 0x00, 0x55 ];
var self = this;
this._send(buffer, function(error) {
if (error) {
return callback(error);
}
var self = this;
this._send(buffer, function(error) {
if (error) {
return callback(error);
}
self._currentZone = undefined;
self._currentZone = undefined;
callback();
});
});
};

@@ -303,3 +303,3 @@ /*jslint node: true, vars: true, nomen: true */

*/
function brightness(milight, v, callback) {
function setBrightness(milight, v, callback) {
if (isNaN(v)) {

@@ -364,3 +364,3 @@ return callback();

if (h === undefined) {
return brightness(milight, v, callback);
return setBrightness(milight, v, callback);
}

@@ -377,3 +377,3 @@

brightness(milight, v, callback);
setBrightness(milight, v, callback);
});

@@ -399,2 +399,6 @@ });

if (callback === undefined) {
callback = function() {};
}
if (isNaN(brightness)) {

@@ -428,3 +432,3 @@ brightness = 100;

brightness(milight, brightness, callback);
setBrightness(milight, brightness, callback);
});

@@ -431,0 +435,0 @@ });

@@ -10,8 +10,8 @@ {

],
"version": "0.1.1",
"version": "1.0.0",
"author": "Olivier Oeuillot",
"dependencies": {
"semaphore": "1.0",
"async": "1.3",
"debug": "2.2"
"semaphore": "~1.0",
"async": "~1.3",
"debug": "~2.2"
},

@@ -18,0 +18,0 @@ "repository": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc