diff --git a/lib/websocket_controller.js b/lib/websocket_controller.js index 13140b3..9a08521 100644 --- a/lib/websocket_controller.js +++ b/lib/websocket_controller.js @@ -112,17 +112,18 @@ var WebsocketController = function(sockets, version) { machine.requestSettings(); }; - var comName = ''; - - var onGetPorts = function() { + var onGetPorts = function(cb) { sp_controller.listPorts(function (ports) { - ports.forEach(function(p) { - if(/Arduino/gi.test(p.manufacturer)) comName = p.comName; - }); - sockets.emit('ports', ports); + if( !cb) + return; + + ports.forEach(function(p) { + if(/Arduino/gi.test(p.manufacturer)) cb(p.comName); + }); + }); }; @@ -159,12 +160,12 @@ var WebsocketController = function(sockets, version) { if (connectedClients !== 0) return; - + machine.disconnect(); // turn off power setTimeout(function() { - power.writeSync(0); + power.writeSync(0); }, 2000); }; @@ -195,10 +196,11 @@ var WebsocketController = function(sockets, version) { return; } - if(! comName) onGetPorts(); + onGetPorts(function(cn) { + logger.log("trying to init port: " + cn); + sp_controller.initPortWithConfigs(cn, config); + }); - logger.log("trying to init port: " + comName); - sp_controller.initPortWithConfigs(comName, config); }; sockets.on('connection', function(socket) {