fix serial port list race condition for windows

This commit is contained in:
Todd Treece 2015-08-18 08:41:36 -04:00
parent 9cbed822ab
commit 1a5fa6f00f

View file

@ -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);
});
});
};
@ -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) {