Skip to content

Instantly share code, notes, and snippets.

@HERRKIN
Last active August 29, 2015 14:23
Show Gist options
  • Save HERRKIN/6b489c0ff0b0782a56ef to your computer and use it in GitHub Desktop.
Save HERRKIN/6b489c0ff0b0782a56ef to your computer and use it in GitHub Desktop.
promise loop
function modeminit (mo) {
l(mo)
l('mo')
var m = new modem(mo.config)
Promise.reduce(mo.ports, function (retval, port) {
return retval || m.openSerial(port);
})
.then(function (port) {
if (!port)
{
throw new Error('couldn\'t open anything');
}
l('something')
});
/*
this is what gets printed:
{ config:
{ db:
{ database: 'xxx',
host: 'localhost',
user: 'user',
pass: 'xxx' } },
ports:
[ { DEVNAME: '/dev/ttyUSB1',
ID_MODEL: 'E173s 3G broadband stick (modem on)' },
{ DEVNAME: '/dev/ttyUSB0',
ID_MODEL: 'E173s 3G broadband stick (modem on)' },
{ DEVNAME: '/dev/ttyUSB2',
ID_MODEL: 'E173s 3G broadband stick (modem on)' } ] }
mo
*/
//part of modem.js
var serial = require('./Serial.js');
var Promise = require('bluebird');
var colors = require('colors');
var http = require('http');
// var cnn;
var Pgb = require('pg-bluebird')
// var pgb = new Pgb()
var debug = false
// var running=false
function l (str) {
console.log(str)
}
function ld (str) {
if(debug)
console.log(str)
}
//PRINCIPIO DEL SISTEMA
var Modem = function (conf) {//mo es la informacion de la deteccion del modem
//l('INSTANCIA MODEM '.yellow+ conf.serial.port)
// l(mo.DEVNAME);
this.config=conf;
this.pgb = new Pgb();
this.running = false
}
Modem.prototype.openSerial = function(p){
this.config.serial.port = p
l(this.config.serial.port+' abriendo puerto\n\n'.yellow)
//console.log(port)
// l('openserial')
// l(this.config)
var m = this
// l(m)
var deferred = new Promise.defer();
this.s = new serial(this.config.serial.port);
//console.log(s)
var handler = function (data) {
l('\nPUERTO '.yellow+ m.config.serial.port+ ' ABIERTO\n'.yellow);
m.s.serialPort.write('ATE\r',undefined)
//l(m)
m.s.serialPort.on('data', function (d) {
l(d.toString())
})
this.running=true
deferred.resolve(m.config.serial.port);
}
m.s.serialPort.once('open', handler);
m.s.serialPort.once('close',function (e) {
l('se ha cerrado el serial')
l(e)
})
m.s.serialPort.once('error',function (e) {
l('no puede abrir el serial')
deferred.reject(e)
})
return deferred.promise;
}
module.exports = Modem
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment