diff --git a/app/js/app.js b/app/js/app.js index be86b17..f80b28b 100644 --- a/app/js/app.js +++ b/app/js/app.js @@ -2531,4 +2531,5 @@ async function init () { seq.init(); capper.init(); alertObj.init(); + timing.init(); }; \ No newline at end of file diff --git a/app/lib/arduino/index.js b/app/lib/arduino/index.js index 60c910d..1a23b0a 100644 --- a/app/lib/arduino/index.js +++ b/app/lib/arduino/index.js @@ -41,13 +41,13 @@ class Arduino { this.path = {}; this.known = KNOWN; this.alias = {}; - this.serial = { connect: {}, projector: {}, camera: {}, light: {} }; + this.serial = {}; this.hasState = {}; this.baud = 57600; this.queue = {}; this.timer = 0; - this.lock = false; this.locks = {}; + this.stateStr = {}; this.errorState = errorState; this.init(); } @@ -105,11 +105,12 @@ class Arduino { **/ async sendAsync(device, cmd) { return new Promise((resolve, reject) => { - this.log.info(`sendAsyc ${device} -> ${cmd}`); + this.log.info(`sendAsync ${cmd} -> ${device}`); this.queue[cmd] = (ms) => { return resolve(ms); }; - return this.serial[device].write(cmd, (err, results) => { + this.log.info(`Device: ${device}`); + return this.serial[this.alias[device]].write(cmd, (err, results) => { if (err) { //this.log.error(err) return reject(err); @@ -120,46 +121,46 @@ class Arduino { /** * **/ - async send(serial, cmd) { - const device = this.alias[serial]; - let results; - this.log.info(`send ${cmd} -> ${serial}`); - if (this.locks[serial]) { - this.log.warning(`Serial ${serial} is locked`); - return false; + async send(device, cmd) { + const serial = this.alias[device]; + let ms; + this.log.info(`send ${cmd} -> ${device}`); + if (this.isLocked(serial)) { + this.log.warn(`send Serial ${serial} is locked`); + return null; } this.timer = new Date().getTime(); - this.locks[serial] = true; + this.lock(serial); await delay_1.delay(cfg.arduino.serialDelay); try { - results = await this.sendAsync(device, cmd); + ms = await this.sendAsync(device, cmd); } catch (e) { return this.log.error(e); } - this.locks[serial] = false; + this.unlock(serial); await eventEmitter.emit('arduino_send', cmd); - return results; + return ms; } /** * **/ - async sendString(serial, str) { - const device = this.alias[serial]; + async sendString(device, str) { let writeSuccess; await delay_1.delay(cfg.arduino.serialDelay); - if (typeof this.serial[device].fake !== 'undefined' - && this.serial[device].fake) { - return this.serial[device].string(str); + if (typeof this.serial[this.alias[device]].fake !== 'undefined' + && this.serial[this.alias[device]].fake) { + return this.serial[this.alias[device]].string(str); } else { - this.log.info(`sendString ${device} -> ${str}`); + this.log.info(`sendString ${str} -> ${device}`); try { writeSuccess = await this.writeAsync(device, str); } catch (e) { return this.log.error(e); } + this.unlock(this.alias[device]); return writeSuccess; } } @@ -168,8 +169,10 @@ class Arduino { **/ async stateAsync(device, confirm = false) { const cmd = cfg.arduino.cmd.state; + const serial = confirm ? this.alias['connect'] : this.alias[device]; return new Promise((resolve, reject) => { this.queue[cmd] = (state) => { + this.stateStr[device] = state; if (confirm) { this.hasState[device] = true; this.log.info(`Device ${device} supports state [${state}]`); @@ -186,8 +189,8 @@ class Arduino { } }.bind(this), 1000); } - this.log.info(`stateAsync ${device} -> ${cmd}`); - return this.serial[device].write(cmd, (err, results) => { + this.log.info(`stateAsync ${cmd} -> ${device}`); + return this.serial[serial].write(cmd, (err, results) => { if (err) { //this.log.error(err) return reject(err); @@ -201,25 +204,20 @@ class Arduino { async state(device, confirm = false) { const serial = confirm ? this.alias['connect'] : this.alias[device]; let results; - this.log.info(`state device ${device}`); - this.log.info(`state serial ${serial}`); - console.dir(this.locks); - if (typeof this.locks[serial] !== 'undefined' && this.locks[serial] === true) { - this.log.info("Serial is locked"); + if (this.isLocked(serial)) { + this.log.warn(`state Serial ${serial} is locked`); return null; } this.timer = new Date().getTime(); - this.locks[serial] = true; + this.lock(serial); await delay_1.delay(cfg.arduino.serialDelay); - if (!confirm) - this.log.info("got here"); try { results = await this.stateAsync(device, confirm); } catch (e) { return this.log.error(e); } - this.locks[serial] = false; + this.unlock(serial); await eventEmitter.emit('arduino_state', cfg.arduino.cmd.state); return results; } @@ -233,7 +231,7 @@ class Arduino { **/ async writeAsync(device, str) { return new Promise((resolve, reject) => { - this.serial[device].write(str, function (err, results) { + this.serial[this.alias[device]].write(str, function (err, results) { if (err) { return reject(err); } @@ -248,16 +246,16 @@ class Arduino { const end = new Date().getTime(); const ms = end - this.timer; let complete; - this.log.info(`end ${serial} -> ${data}`); + //this.log.info(`end ${serial} -> ${data}`) if (this.queue[data] !== undefined) { - this.locks[serial] = false; + this.unlock(serial); complete = this.queue[data](ms); //execute callback eventEmitter.emit('arduino_end', data); delete this.queue[data]; } else if (data[0] === cfg.arduino.cmd.state) { - this.log.info(`end serial -> ${serial}`); - this.locks[serial] = false; + //this.log.info(`end serial -> ${serial}`) + this.unlock(serial); complete = this.queue[cfg.arduino.cmd.state](data); eventEmitter.emit('arduino_end', data); delete this.queue[cfg.arduino.cmd.state]; @@ -265,7 +263,7 @@ class Arduino { } else if (data[0] === cfg.arduino.cmd.error) { this.log.error(`Received error from device ${serial}`); - this.locks[serial] = false; + this.unlock(serial); //error state //stop sequence //throw error in ui @@ -275,24 +273,24 @@ class Arduino { } return ms; } - aliasSerial(serial, device) { + aliasSerial(device, serial) { //this.log.info(`Making "${serial}" an alias of ${device}`) - this.alias[serial] = device; + this.alias[device] = serial; } - async connect(serial, device, confirm) { - this.log.info(`connect device ${device}`); - this.log.info(`connect serial ${serial}`); + async connect(device, serial, confirm) { + //this.log.info(`connect device ${device}`) + //this.log.info(`connect serial ${serial}`) return new Promise(async (resolve, reject) => { let connectSuccess; - this.path[serial] = device; - this.alias[serial] = device; - this.serial[device] = new SerialPort({ - path: this.path[serial], + this.path[device] = serial; + this.aliasSerial(device, serial); + this.serial[serial] = new SerialPort({ + path: serial, autoOpen: false, baudRate: cfg.arduino.baud, parser }); - this.locks[device] = false; + this.unlock(serial); try { connectSuccess = await this.openArduino(device); } @@ -300,16 +298,16 @@ class Arduino { this.log.error('failed to open: ' + e); return reject(e); } - this.log.info(`Opened connection with ${this.path[serial]} as ${serial}`); + this.log.info(`Opened connection with ${this.path[device]} as ${device}`); if (!confirm) { - this.serial[device].on('data', async (data) => { + this.serial[this.alias[device]].on('data', async (data) => { let d = data.toString('utf8'); d = d.replace(newlineRe, '').replace(returnRe, ''); return this.end(serial, d); }); } else { - this.serial[device].on('data', async (data) => { + this.serial[this.alias[device]].on('data', async (data) => { let d = data.toString('utf8'); d = d.replace(newlineRe, '').replace(returnRe, ''); return await this.confirmEnd(d); @@ -344,15 +342,17 @@ class Arduino { || data === cfg.arduino.cmd.camera_capper_projectors_identifier) { this.confirmExec(null, data); this.confirmExec = {}; + this.unlock(this.alias['connect']); } else if (data[0] === cfg.arduino.cmd.state) { this.queue[cfg.arduino.cmd.state](data); delete this.queue[cfg.arduino.cmd.state]; + this.unlock(this.alias['connect']); } } async verify() { return new Promise(async (resolve, reject) => { - const device = this.alias['connect']; + const device = 'connect'; let writeSuccess; this.confirmExec = function (err, data) { if (data === cfg.arduino.cmd.connect) { @@ -374,7 +374,7 @@ class Arduino { } async distinguish() { return new Promise(async (resolve, reject) => { - const device = this.alias['connect']; + const device = 'connect'; let writeSuccess; let type; this.confirmExec = function (err, data) { @@ -442,7 +442,7 @@ class Arduino { }); } async close() { - const device = this.alias['connect']; + const device = 'connect'; let closeSuccess; try { closeSuccess = await this.closeArduino(device); @@ -452,10 +452,10 @@ class Arduino { } return closeSuccess; } - async fakeConnect(serial) { - const device = '/dev/fake'; - this.alias[serial] = device; - this.serial[device] = { + async fakeConnect(device) { + const serial = '/dev/fake'; + this.aliasSerial(device, serial); + this.serial[serial] = { write: async function (cmd, cb) { const t = { c: cfg.arduino.cam.time + cfg.arduino.cam.delay, @@ -489,7 +489,7 @@ class Arduino { **/ async openArduino(device) { return new Promise((resolve, reject) => { - return this.serial[device].open((err) => { + return this.serial[this.alias[device]].open((err) => { if (err) { return reject(err); } @@ -506,7 +506,7 @@ class Arduino { **/ async closeArduino(device) { return new Promise((resolve, reject) => { - return this.serial[device].close((err) => { + return this.serial[this.alias[device]].close((err) => { if (err) { return reject(err); } @@ -514,6 +514,17 @@ class Arduino { }); }); } + lock(serial) { + //this.log.info(`Locked serial ${serial}`) + this.locks[serial] = true; + } + unlock(serial) { + //this.log.info(`Unlocked serial ${serial}`) + this.locks[serial] = false; + } + isLocked(serial) { + return typeof this.locks[serial] !== 'undefined' && this.locks[serial] === true; + } } if (typeof module !== 'undefined' && module.parent) { module.exports = function (c, ee, errorState) { diff --git a/app/lib/arduino/index.js.map b/app/lib/arduino/index.js.map index 40d2ebe..ed88766 100644 --- a/app/lib/arduino/index.js.map +++ b/app/lib/arduino/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/arduino/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/arduino/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;IAWI;AAEJ,8BAA8B;AAC9B,iCAA+B;AAE/B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAC5C,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAA;AACjE,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAA;AAE1C,MAAM,MAAM,GAAS,IAAI,cAAc,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAA;AAC9D,MAAM,SAAS,GAAY,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAChD,MAAM,QAAQ,GAAY,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAE/C,IAAI,YAAkB,CAAA;AACtB,IAAI,GAAS,CAAA;AACb,IAAI,OAAa,CAAA;AAEjB,MAAM,KAAK,GAAc;IACxB,wBAAwB;IACxB,6BAA6B;IAC7B,6BAA6B;IAC7B,wBAAwB;IACxB,6BAA6B;IAC7B,wBAAwB;IACxB,cAAc;IACd,MAAM;CACN,CAAA;AAED;;IAEI;AAEJ,MAAM,OAAO;IAiBZ,YAAa,UAAqB;QAd1B,SAAI,GAAS,EAAE,CAAC;QAChB,UAAK,GAAc,KAAK,CAAC;QACzB,UAAK,GAAS,EAAE,CAAC;QACjB,WAAM,GAAS,EAAE,CAAC;QAClB,aAAQ,GAAS,EAAE,CAAC;QACpB,SAAI,GAAY,KAAK,CAAC;QACtB,UAAK,GAAS,EAAE,CAAC;QACjB,UAAK,GAAY,CAAC,CAAC;QACnB,UAAK,GAAS,EAAE,CAAC;QAIlB,aAAQ,GAAS,EAAE,CAAC;QAG1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,IAAI;QACT,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE,KAAK,EAAG,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,SAAS;QACrB,IAAI,KAAa,CAAA;QACjB,IAAI,OAAO,GAAc,EAAE,CAAA;QAC3B,IAAI;YACH,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAA;SAC/B;QAAC,OAAO,GAAG,EAAE;YACb,MAAM,GAAG,CAAA;SACT;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAU,EAAE,EAAE,GAAG,OAAO,IAAI,CAAC,IAAI,CAAA,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAU,EAAE,EAAE;YAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBACzC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACvB;iBAAM,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC5E,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACvB;iBAAM,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE;gBACtE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACvB;iBAAM,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;gBACrE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACvB;iBAAM,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBACnE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACvB;QACF,CAAC,CAAC,CAAA;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACvC;aAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,OAAO,OAAO,CAAA;SACd;IACF,CAAC;IAED;;;;;;;QAOI;IACI,KAAK,CAAC,SAAS,CAAE,MAAe,EAAE,GAAY;QACrD,OAAO,IAAI,OAAO,CAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,OAAO,MAAM,EAAE,CAAC,CAAA;YAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAW,EAAE,EAAE;gBACjC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAA;YACnB,CAAC,CAAA;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,MAAM,EAAE,CAAC,CAAA;YAClC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAS,EAAE,OAAa,EAAE,EAAE;gBAC9E,IAAI,GAAG,EAAE;oBACR,qBAAqB;oBACrB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;iBAClB;YACF,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,IAAI,CAAE,MAAe,EAAE,GAAY;QAC/C,MAAM,MAAM,GAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACvC,IAAI,EAAW,CAAA;QACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,MAAM,EAAE,CAAC,CAAA;QACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,MAAM,YAAY,CAAC,CAAA;YAChD,OAAO,IAAI,CAAA;SACX;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjB,MAAM,aAAK,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACpC,IAAI;YACH,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;SACtC;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;SACxB;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAEnB,MAAM,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;QAC5C,OAAO,EAAE,CAAA;IACV,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,UAAU,CAAE,MAAe,EAAE,GAAY;QACrD,IAAI,YAAkB,CAAA;QACtB,MAAM,aAAK,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACpC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW;eAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;YACzC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;SAClD;aAAM;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,MAAM,EAAE,CAAC,CAAA;YAC/C,IAAI;gBACH,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;aACjD;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;aACxB;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;YAC/B,OAAO,YAAY,CAAA;SACnB;IACF,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,UAAU,CAAE,MAAe,EAAE,UAAoB,KAAK;QACnE,MAAM,GAAG,GAAY,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA;QAC1C,MAAM,MAAM,GAAY,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC5E,OAAO,IAAI,OAAO,CAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAc,EAAE,EAAE;gBACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;gBAC7B,IAAI,OAAO,EAAE;oBACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;oBAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,MAAM,oBAAoB,KAAK,GAAG,CAAC,CAAA;iBAC3D;gBACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC,CAAA;YACD,IAAI,OAAO,EAAE;gBACZ,UAAU,CAAC;oBACV,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE;wBAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;wBAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,MAAM,yBAAyB,CAAC,CAAA;wBACxD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;qBACpB;gBACF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;aACnB;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,MAAM,EAAE,CAAC,CAAA;YAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAS,EAAE,OAAa,EAAE,EAAE;gBAClE,IAAI,GAAG,EAAE;oBACR,qBAAqB;oBACrB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;iBAClB;YACF,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,KAAK,CAAE,MAAe,EAAE,UAAoB,KAAK;QAC7D,MAAM,MAAM,GAAY,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC5E,IAAI,OAAgB,CAAA;QAEpB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,YAAY,CAAC,CAAA;YACjD,OAAO,IAAI,CAAA;SACX;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjB,MAAM,aAAK,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAEpC,IAAI;YACH,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAChD;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;SACxB;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAEnB,MAAM,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/D,OAAO,OAAO,CAAA;IACf,CAAC;IAED;;;;;;;QAOI;IACI,KAAK,CAAC,UAAU,CAAE,MAAe,EAAE,GAAY;QACtD,OAAO,IAAI,OAAO,CAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,GAAS,EAAE,OAAa;gBAC5E,IAAI,GAAG,EAAE;oBACR,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;iBAClB;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;YACxB,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;QAEI;IACI,GAAG,CAAE,MAAe,EAAE,IAAa;QAC1C,MAAM,GAAG,GAAY,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;QACzC,MAAM,EAAE,GAAY,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;QACpC,IAAI,QAAc,CAAA;QAClB,2CAA2C;QAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACnB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA,CAAC,kBAAkB;YAClD,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;SACvB;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE;YAC7C,0CAA0C;YAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACnB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YAClD,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACxC,OAAO,IAAI,CAAA;SACX;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE;YAC7C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAA;YACtD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACnB,aAAa;YACb,eAAe;YACf,mBAAmB;SACnB;aAAM;YACN,iEAAiE;SACjE;QACD,OAAO,EAAE,CAAA;IACV,CAAC;IAEM,WAAW,CAAE,MAAe,EAAE,MAAe;QACnD,2DAA2D;QAC3D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAE,MAAe,EAAE,MAAe,EAAE,OAAa;QACpE,2CAA2C;QAC3C,2CAA2C;QAC3C,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,IAAI,cAAoB,CAAA;YACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;YAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAChC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC;gBACpC,IAAI,EAAG,MAAM;gBACb,QAAQ,EAAG,KAAK;gBAChB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;gBAC1B,MAAM;aACN,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACnB,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;aAC/C;YAAC,OAAO,CAAC,EAAE;gBACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAA;gBACtC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;aAChB;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,MAAM,EAAE,CAAC,CAAA;YACzE,IAAI,CAAC,OAAO,EAAE;gBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;oBAClE,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;oBAC7B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;oBAClD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;gBAC3B,CAAC,CAAC,CAAA;aACF;iBAAM;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;oBAClE,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;oBAC7B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;oBAClD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;gBAChC,CAAC,CAAC,CAAA;aACF;YAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;IACH,CAAC;IAEO,UAAU,CAAE,IAAa;QAChC,IAAO,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO;eACnC,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB;eAC7C,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB;eAC1C,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB;eACzC,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B;eACnD,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC;eAC1D,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B;eAEpD,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B;eACpD,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB;eAC9C,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB;eACjD,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB;eAClD,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB;eACzC,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU;eAEnC,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB;eACjD,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB;eAC3C,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB;eAC9C,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB;eAC/C,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa;eACtC,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO;eAEhC,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB;eAC1C,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB;eACjD,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC;eAC3D,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE;YAEjE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;SAClC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE;YAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YACvC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;SAClC;IACF,CAAC;IAEM,KAAK,CAAC,MAAM;QAClB,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,MAAM,MAAM,GAAY,SAAS,CAAA;YACjC,IAAI,YAAkB,CAAA;YACtB,IAAI,CAAC,WAAW,GAAG,UAAU,GAAS,EAAE,IAAa;gBACpD,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;oBACrC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;iBACpB;qBAAM;oBACN,OAAO,MAAM,CAAC,qBAAqB,CAAC,CAAA;iBACpC;YACF,CAAC,CAAA;YAED,MAAM,aAAK,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;YAEpC,IAAI;gBACH,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;aACpE;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;aAChB;YACD,OAAO,OAAO,CAAC,YAAY,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,WAAW;QACvB,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,MAAM,MAAM,GAAY,SAAS,CAAA;YACjC,IAAI,YAAkB,CAAA;YACtB,IAAI,IAAa,CAAA;YACjB,IAAI,CAAC,WAAW,GAAG,UAAU,GAAS,EAAE,IAAa;gBACpD,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE;oBAClD,IAAI,GAAG,WAAW,CAAA;iBAClB;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;oBACtD,IAAI,GAAG,QAAQ,CAAA;iBACf;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE;oBACrD,IAAI,GAAG,OAAO,CAAA;iBACd;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;oBAC/D,IAAI,GAAG,iBAAiB,CAAA;iBACxB;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE;oBACtE,IAAI,GAAG,wBAAwB,CAAA;iBAC/B;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE;oBAChE,IAAI,GAAG,kBAAkB,CAAA;iBACzB;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE;oBAChE,IAAI,GAAG,kBAAkB,CAAA;iBACzB;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE;oBAC1D,IAAI,GAAG,4BAA4B,CAAA;iBACnC;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE;oBAC7D,IAAI,GAAG,eAAe,CAAA;iBACtB;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE;oBACvD,IAAI,GAAG,sBAAsB,CAAA;iBAC7B;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE;oBACjE,IAAI,GAAG,mCAAmC,CAAA;iBAC1C;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE;oBACjE,IAAI,GAAG,gCAAgC,CAAA;iBACvC;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE;oBAClE,IAAI,GAAG,iDAAiD,CAAA;iBACxD;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;oBACtD,IAAI,GAAG,QAAQ,CAAA;iBACf;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE;oBAC7D,IAAI,GAAG,eAAe,CAAA;iBACtB;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE;oBACvE,IAAI,GAAG,yBAAyB,CAAA;iBAChC;qBAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE;oBACxE,IAAI,GAAG,0CAA0C,CAAA;iBACjD;gBACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC,CAAA;YAED,MAAM,aAAK,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;YAEpC,IAAI;gBACH,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;gBAC7E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;aAC3B;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;aAChB;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,KAAK;QACjB,MAAM,MAAM,GAAY,SAAS,CAAA;QACjC,IAAI,YAAsB,CAAA;QAC1B,IAAI;YACH,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;SAC9C;QAAC,OAAO,CAAC,EAAE;YACX,MAAM,CAAC,CAAA;SACP;QACD,OAAO,YAAY,CAAA;IACpB,CAAC;IAEM,KAAK,CAAC,WAAW,CAAE,MAAe;QACxC,MAAM,MAAM,GAAY,WAAW,CAAA;QACnC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;YACrB,KAAK,EAAG,KAAK,WAAW,GAAY,EAAE,EAAQ;gBAC7C,MAAM,CAAC,GAAS;oBACf,CAAC,EAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK;oBAChD,CAAC,EAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;oBAClD,CAAC,EAAG,GAAG;oBACP,CAAC,EAAG,GAAG;iBACP,CAAA;gBACD,IAAI,OAAO,GAAY,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC7B,IAAI,OAAO,OAAO,KAAK,WAAW;oBAAE,OAAO,GAAG,EAAE,CAAA;gBAChD,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;gBAE3B,MAAM,aAAK,CAAC,OAAO,CAAC,CAAA;gBAEpB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;gBACxB,OAAO,EAAE,EAAE,CAAA;YAEZ,CAAC;YACD,MAAM,EAAG,KAAK,WAAW,GAAY;gBACpC,YAAY;gBACZ,OAAO,IAAI,CAAA;YACZ,CAAC;YACD,IAAI,EAAG,IAAI;SACX,CAAA;QACD,uEAAuE;QACvE,OAAO,IAAI,CAAA;IACZ,CAAC;IAED;;;;;;QAMI;IACI,KAAK,CAAC,WAAW,CAAE,MAAe;QACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAS,EAAE,EAAE;gBACzD,IAAI,GAAG,EAAE;oBACR,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;iBAClB;gBACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;;;;;QAMI;IACI,KAAK,CAAC,YAAY,CAAE,MAAe;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAa,EAAE,MAAY,EAAE,EAAE;YAClD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAS,EAAE,EAAE;gBAC1D,IAAI,GAAG,EAAE;oBACR,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;iBAClB;gBACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC;IAEO,IAAI,CAAE,MAAe;QAC5B,0CAA0C;QAC1C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAC1B,CAAC;IAEO,MAAM,CAAE,MAAe;QAC9B,4CAA4C;QAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;IAC3B,CAAC;IAEO,QAAQ,CAAE,MAAe;QAChC,OAAO,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IAChF,CAAC;CACD;AAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE;IACnD,MAAM,CAAC,OAAO,GAAG,UAAU,CAAO,EAAE,EAAQ,EAAE,UAAqB;QAClE,YAAY,GAAG,EAAE,CAAA;QACjB,GAAG,GAAG,CAAC,CAAA;QACP,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAA;QACjC,OAAO,OAAO,CAAA;IACf,CAAC,CAAA;CACD"} \ No newline at end of file diff --git a/app/lib/cam/index.js b/app/lib/cam/index.js index de621a0..b2527fa 100644 --- a/app/lib/cam/index.js +++ b/app/lib/cam/index.js @@ -164,13 +164,15 @@ class Camera { const started = +new Date(); let ms; let confirmState; + let parts; + let confirmExposure; if (this.intval) { return this.intval.setExposure(this.id, exposure, (ms) => { + this.ui.send('timing', { c: 'c', ms: exposure }); return this.end(cmd, id, ms); }); } else if (this.arduino.hasState[this.id]) { - this.log.info(`Sending cmd ${cmd}`); try { ms = this.arduino.send(this.id, cmd); } @@ -178,25 +180,29 @@ class Camera { this.log.error('Error sending camera exposure command', err); } await delay_1.delay(1); - this.log.info(`Sending str ${str}`); try { ms = await this.arduino.sendString(this.id, str); } catch (err) { this.log.error('Error sending camera exposure string', err); } - this.log.info(`Sent str ${str}`); await ms; - this.log.info(`Sent cmd ${cmd}`); await delay_1.delay(1); - this.log.info(`Sending state request`); try { confirmState = await this.arduino.state(this.id, false); } catch (err) { this.log.error(`Error confirming set state`, err); } - console.dir(confirmState); + parts = this.arduino.stateStr[this.id].split('G'); + if (parts.length > 1) { + parts = parts[1].split('H'); + confirmExposure = parseInt(parts[0]); + if (!isNaN(confirmExposure)) { + this.log.info(`Exposure successfully set to ${confirmExposure}ms`); + this.ui.send('timing', { c: 'c', ms: exposure }); + } + } ms = (+new Date()) - started; return await this.end(cmd, id, ms); } diff --git a/app/lib/cam/index.js.map b/app/lib/cam/index.js.map index f2770ad..6082ab5 100644 --- a/app/lib/cam/index.js.map +++ b/app/lib/cam/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cam/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,mCAAgC;AAChC,2CAAwC;AACxC,iCAA8B;AAE9B,2CAA2C;AAE3C,MAAM,MAAM;IAeX;;QAEI;IACJ,YAAa,OAAiB,EAAE,GAAS,EAAE,EAAQ,EAAE,OAAa,EAAE,SAAmB,KAAK;QAjBpF,UAAK,GAAS;YACrB,GAAG,EAAG,CAAC;YACP,GAAG,EAAG,IAAI;YACV,MAAM,EAAE,KAAK;SACb,CAAC;QACM,YAAO,GAAa,IAAI,CAAC;QACzB,WAAM,GAAS,IAAI,CAAC;QACpB,eAAU,GAAS,IAAI,CAAC;QAMxB,OAAE,GAAY,QAAQ,CAAC;QAK9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,MAAM;YAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,IAAI;QACjB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE,KAAK,EAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED;;QAEI;IACI,MAAM;QACb,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,GAAG,CAAE,GAAa,EAAE,EAAW;QAC3C,IAAI,GAAY,CAAC;QACjB,IAAI,EAAW,CAAC;QAEhB,IAAI,GAAG,EAAE;YACR,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;SACjD;aAAM;YACN,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;SAClD;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAErB,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACvC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACvB,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACnC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;aAAM;YACN,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;aAC3C;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;QACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,GAAG,CAAE,KAAe,EAAE,EAAW;QAC9C,IAAI,GAAY,CAAC;QACjB,IAAI,EAAW,CAAC;QAEhB,IAAI,KAAK,EAAE;YACV,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;SACjD;aAAM;YACN,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;SAClD;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QAE1B,IAAI;YACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;SAC3C;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpB;QACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,IAAI,CAAE,KAAc,EAAE,EAAW;QAC7C,MAAM,GAAG,GAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,EAAW,CAAC;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;YAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;SAC1B;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aAClC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACvB,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;aAC9B;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;aAAM;YACN,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;aAC3C;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;YAC/B,0BAA0B;YAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;SACzB;QACD,4CAA4C;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,IAAI,CAAE,KAAW,EAAE,EAAW;QAC1C,MAAM,GAAG,GAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,EAAW,CAAC;QAChB,IAAI;YACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;SAC1C;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;SAC9C;QACD,6CAA6C;QAC7C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,QAAQ,CAAE,QAAiB,EAAE,EAAW;QACpD,MAAM,GAAG,GAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QAC1D,MAAM,GAAG,GAAY,GAAG,QAAQ,EAAE,CAAC;QACnC,MAAM,OAAO,GAAY,CAAC,IAAI,IAAI,EAAE,CAAC;QACrC,IAAI,EAAQ,CAAC;QACb,IAAI,YAAkB,CAAC;QAEvB,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAW,EAAE,EAAE;gBACjE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;SACH;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;YACpC,IAAI;gBACH,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;aACrC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;aAC7D;YAED,MAAM,aAAK,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;YACpC,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;aACjD;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;aAC5D;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;YACjC,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;YACjC,MAAM,aAAK,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACvC,IAAI;gBACH,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;aACxD;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;aAClD;YACD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1B,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;YAC7B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACnC;QACD,OAAO,CAAC,CAAC;IACV,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,aAAa,CAAE,KAAW,EAAE,GAAS;QAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,GAAG,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;gBACtB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAS,EAAE,EAAW,EAAE,KAAe,EAAE,EAAE;oBAC/D,IAAI,GAAG,EAAE;wBACR,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAG,KAAK,EAAE,CAAC,CAAA;wBAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;wBACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;qBAClB;yBAAM;wBACN,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAG,IAAI,EAAE,GAAG,EAAG,GAAG,CAAC,GAAG,EAAE,KAAK,EAAG,KAAK,EAAE,CAAC,CAAA;wBAC1E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;qBAC5D;oBACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;gBACrB,CAAC,CAAC,CAAA;aACF;iBAAM,IAAI,GAAG,CAAC,UAAU,EAAE;gBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;gBAClB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;aACrB;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,iBAAiB,CAAE,KAAW,EAAE,GAAS;QACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YAClB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAG,IAAI,EAAE,GAAG,EAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;YAC/D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,QAAQ,CAAE,KAAW,EAAE,GAAS;QAC7C,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,WAAW,EAAE;YACnC,IAAI;gBACH,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;aAC/B;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;SACD;aAAM,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,WAAW,EAAE;YAC5C,IAAI;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;aAClC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;SACD;aAAM,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,WAAW,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;SACxB;aAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE;YAC7C,IAAI;gBACH,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;aAClC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;SACD;aAAM,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE;YAC/C,IAAI;gBACH,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;aAC1C;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;QACD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,GAAG,CAAE,GAAY,EAAE,EAAW,EAAE,EAAW;QACxD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE;YAChD,OAAO,GAAG,uBAAuB,CAAC;SAClC;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE;YACxD,OAAO,GAAG,wBAAwB,CAAC;SACnC;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE;YAC9D,OAAO,GAAG,8BAA8B,CAAC;SACzC;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE;YAC/D,OAAO,GAAG,+BAA+B,CAAC;SAC1C;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;YAC/C,OAAO,GAAG,SAAS,CAAC;YACpB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnB,OAAO,IAAI,UAAU,CAAC;aACtB;iBAAM;gBACN,OAAO,IAAI,SAAS,CAAC;aACrB;YACD,OAAO,IAAI,UAAU,CAAC;SACtB;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;YACtD,OAAO,GAAG,gBAAgB,CAAC;YAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnB,OAAO,IAAI,UAAU,CAAC;aACtB;iBAAM;gBACN,OAAO,IAAI,SAAS,CAAC;aACrB;YACD,OAAO,IAAI,UAAU,CAAC;SACtB;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;YACjD,OAAO,IAAI,iCAAiC,CAAC;SAC7C;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE;YACpD,OAAO,IAAI,qBAAqB,CAAC;SACjC;QACD,OAAO,IAAI,IAAI,EAAE,IAAI,CAAA;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC,CAAC;QACnD,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,OAAiB,EAAE,GAAS,EAAE,EAAQ,EAAE,OAAa,EAAE,MAAgB;IACjG,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC,CAAA"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cam/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/devices/index.js b/app/lib/devices/index.js index bb7e621..9fcee0c 100644 --- a/app/lib/devices/index.js +++ b/app/lib/devices/index.js @@ -56,34 +56,34 @@ class Devices { * **/ async enumerate() { - let devices; + let serials; try { - devices = await this.arduino.enumerate(); + serials = await this.arduino.enumerate(); } catch (err) { this.log.warn(err, 'SERIAL', false, true); await delay_1.delay(1000); return this.all([]); } - this.log.info(`Found ${devices.length} USB devices`, 'SERIAL', true, true); - devices = this.favor(devices); - return await this.all(devices); + this.log.info(`Found ${serials.length} USB devices`, 'SERIAL', true, true); + serials = this.favor(serials); + return await this.all(serials); } /** * **/ - favor(devices) { + favor(serials) { const past = this.settings.state.devices.filter((device) => { - if (device.arduino) { + if (device.serial) { return device; } }).map((device) => { - return device.arduino; + return device.serial; }); if (past.length === 0) { - return devices; + return serials; } - devices.sort((a, b) => { + serials.sort((a, b) => { if (past.indexOf(a) !== -1 && past.indexOf(b) === -1) { return 1; } @@ -92,17 +92,20 @@ class Devices { } return 0; }); - return devices; + return serials; } /** * **/ - async distinguish(device) { + async distinguish(serial) { let connectSuccess; let verifySuccess; - let type; + let device; + let exposure; + let parts; + //this.log.info(`distinguish() ${serial}`) try { - connectSuccess = await this.arduino.connect('connect', device, true); + connectSuccess = await this.arduino.connect('connect', serial, true); } catch (err) { this.log.error('Error connecting', err); @@ -116,28 +119,38 @@ class Devices { this.log.error('Error verifying device', err); return null; } - this.log.info(`Verified ${device} as mcopy device`, 'SERIAL', true, true); + this.log.info(`Verified ${serial} as mcopy device`, 'SERIAL', true, true); await delay_1.delay(1000); try { - type = await this.arduino.distinguish(); + device = await this.arduino.distinguish(); } catch (err) { this.log.error('Error distinguishing device', err); return null; } - this.remember('arduino', device, type); - this.log.info(`Determined ${device} to be ${type}`, 'SERIAL', true, true); + this.remember('arduino', device, serial); + this.log.info(`Determined ${device} to be ${device}`, 'SERIAL', true, true); await delay_1.delay(100); try { - await this.arduino.state(device.toString(), true); + await this.arduino.state(device, true); } catch (err) { this.log.error('Error checking state capability', err); } - if (this.arduino.hasState[device.toString()]) { - this.arduino.hasState[type] = true; + if (this.arduino.hasState[device]) { + if (device.indexOf('camera') !== -1) { + parts = this.arduino.stateStr[device].split('G'); + if (parts.length > 1) { + parts = parts[1].split('H'); + exposure = parseInt(parts[0]); + if (!isNaN(exposure)) { + this.log.info(`Timing for [${device}] = ${exposure}`); + this.ui.send('timing', { c: 'c', ms: exposure }); + } + } + } } - return type; + return device; } /** * @@ -206,7 +219,7 @@ class Devices { /** * **/ - async connectDevice(device, type) { + async connectDevice(device, serial) { let closeSuccess; let connectSuccess; try { @@ -216,10 +229,10 @@ class Devices { this.log.error('Error closing arduino connection', err); return false; } - if (type === 'projector') { - this.connected.projector = device; + if (device === 'projector') { + this.connected.projector = serial; try { - connectSuccess = await this.arduino.connect('projector', device, false); + connectSuccess = await this.arduino.connect('projector', serial, false); } catch (err) { this.log.error('Error connecting to projector', err); @@ -227,10 +240,10 @@ class Devices { } this.log.info(`Connected to ${device} as PROJECTOR`, 'SERIAL', true, true); } - else if (type === 'camera') { - this.connected.camera = device; + else if (device === 'camera') { + this.connected.camera = serial; try { - connectSuccess = await this.arduino.connect('camera', device, false); + connectSuccess = await this.arduino.connect('camera', serial, false); } catch (err) { this.log.error('Error connecting to camera', err); @@ -238,10 +251,10 @@ class Devices { } this.log.info(`Connected to ${device} as CAMERA`, 'SERIAL', true, true); } - else if (type === 'light') { - this.connected.light = device; + else if (device === 'light') { + this.connected.light = serial; try { - connectSuccess = await this.arduino.connect('light', device, false); + connectSuccess = await this.arduino.connect('light', serial, false); } catch (err) { this.log.error('Error connecting to light', err); @@ -249,12 +262,12 @@ class Devices { } this.log.info(`Connected to ${device} as LIGHT`, 'SERIAL', true, true); } - else if (type === 'projector,light') { - this.connected.projector = device; - this.connected.light = device; - this.arduino.aliasSerial('light', device); + else if (device === 'projector,light') { + this.connected.projector = serial; + this.connected.light = serial; + this.arduino.aliasSerial('light', serial); try { - connectSuccess = await this.arduino.connect('projector', device, false); + connectSuccess = await this.arduino.connect('projector', serial, false); } catch (err) { this.log.error('Error connecting to projector and light', err); @@ -262,14 +275,14 @@ class Devices { } this.log.info(`Connected to ${device} as PROJECTOR + LIGHT`, 'SERIAL', true, true); } - else if (type === 'projector,camera,light') { - this.connected.projector = device; - this.connected.camera = device; - this.connected.light = device; - this.arduino.aliasSerial('camera', device); - this.arduino.aliasSerial('light', device); + else if (device === 'projector,camera,light') { + this.connected.projector = serial; + this.connected.camera = serial; + this.connected.light = serial; + this.arduino.aliasSerial('camera', serial); + this.arduino.aliasSerial('light', serial); try { - connectSuccess = await this.arduino.connect('projector', device, false); + connectSuccess = await this.arduino.connect('projector', serial, false); } catch (err) { this.log.error('Error connecting to projector, camera and light', err); @@ -277,12 +290,12 @@ class Devices { } this.log.info(`Connected to ${device} as PROJECTOR + CAMERA + LIGHT`, 'SERIAL', true, true); } - else if (type === 'projector,camera') { - this.connected.projector = device; - this.connected.camera = device; - this.arduino.aliasSerial('camera', device); + else if (device === 'projector,camera') { + this.connected.projector = serial; + this.connected.camera = serial; + this.arduino.aliasSerial('camera', serial); try { - connectSuccess = await this.arduino.connect('projector', device, false); + connectSuccess = await this.arduino.connect('projector', serial, false); } catch (err) { this.log.error('Error connecting to projector and camera', err); @@ -290,10 +303,10 @@ class Devices { } this.log.info(`Connected to ${device} as PROJECTOR + CAMERA`, 'SERIAL', true, true); } - else if (type === 'projector_second') { - this.connected.projector_second = device; + else if (device === 'projector_second') { + this.connected.projector_second = serial; try { - connectSuccess = await this.arduino.connect('projector_second', device, false); + connectSuccess = await this.arduino.connect('projector_second', serial, false); } catch (err) { this.log.error('Error connecting to secondary projector', err); @@ -301,130 +314,130 @@ class Devices { } this.log.info(`Connected to ${device} as PROJECTOR_SECOND`, 'SERIAL', true, true); } - else if (type === 'projector,projector_second') { - this.connected.projector = device; - this.connected.projector_second = device; - this.arduino.aliasSerial('projector_second', device); + else if (device === 'projector,projector_second') { + this.connected.projector = serial; + this.connected.projector_second = serial; + this.arduino.aliasSerial('projector_second', serial); try { - connectSuccess = await this.arduino.connect('projector', device, false); + connectSuccess = await this.arduino.connect('projector', serial, false); } catch (err) { this.log.error('Error connecting to projector and secondary projector', err); return false; } } - else if (type === 'camera_second') { - this.connected.camera_second = device; + else if (device === 'camera_second') { + this.connected.camera_second = serial; try { - connectSuccess = await this.arduino.connect('camera_second', device, false); + connectSuccess = await this.arduino.connect('camera_second', serial, false); } catch (err) { console.error(err); return false; } } - else if (type === 'camera,camera_second') { - this.connected.camera = device; - this.connected.camera_second = device; - this.arduino.aliasSerial('camera_second', device); + else if (device === 'camera,camera_second') { + this.connected.camera = serial; + this.connected.camera_second = serial; + this.arduino.aliasSerial('camera_second', serial); try { - connectSuccess = await this.arduino.connect('camera', device, false); + connectSuccess = await this.arduino.connect('camera', serial, false); } catch (err) { this.log.error('Error connecting to camera, camera_secondary and projector', err); return false; } } - else if (type === 'camera,projector,projector_second') { - this.connected.camera = device; - this.connected.projector = device; - this.connected.projector_second = device; - this.arduino.aliasSerial('projector', device); - this.arduino.aliasSerial('projector_second', device); + else if (device === 'camera,projector,projector_second') { + this.connected.camera = serial; + this.connected.projector = serial; + this.connected.projector_second = serial; + this.arduino.aliasSerial('projector', serial); + this.arduino.aliasSerial('projector_second', serial); try { - connectSuccess = await this.arduino.connect('camera', device, false); + connectSuccess = await this.arduino.connect('camera', serial, false); } catch (err) { this.log.error('Error connecting to camera, projector and projector_second', err); return false; } } - else if (type === 'camera,camera_second,projector') { - this.connected.camera = device; - this.connected.camera_second = device; - this.connected.projector = device; - this.arduino.aliasSerial('camera_second', device); - this.arduino.aliasSerial('projector', device); + else if (device === 'camera,camera_second,projector') { + this.connected.camera = serial; + this.connected.camera_second = serial; + this.connected.projector = serial; + this.arduino.aliasSerial('camera_second', serial); + this.arduino.aliasSerial('projector', serial); try { - connectSuccess = await this.arduino.connect('camera', device, false); + connectSuccess = await this.arduino.connect('camera', serial, false); } catch (err) { this.log.error('Error connecting to camera, camera_second and projector', err); return false; } } - else if (type === 'camera,camera_second,projector,projector_second') { - this.connected.camera = device; - this.connected.camera_second = device; - this.connected.projector = device; - this.connected.projector_second = device; - this.arduino.aliasSerial('camera_second', device); - this.arduino.aliasSerial('projector', device); - this.arduino.aliasSerial('projector_second', device); + else if (device === 'camera,camera_second,projector,projector_second') { + this.connected.camera = serial; + this.connected.camera_second = serial; + this.connected.projector = serial; + this.connected.projector_second = serial; + this.arduino.aliasSerial('camera_second', serial); + this.arduino.aliasSerial('projector', serial); + this.arduino.aliasSerial('projector_second', serial); try { - connectSuccess = await this.arduino.connect('camera', device, false); + connectSuccess = await this.arduino.connect('camera', serial, false); } catch (err) { this.log.error('Error connecting to camera, camera_second, projector and projector_second', err); return false; } } - else if (type === 'capper') { - this.connected.capper = device; + else if (device === 'capper') { + this.connected.capper = serial; try { - connectSuccess = await this.arduino.connect('capper', device, false); + connectSuccess = await this.arduino.connect('capper', serial, false); } catch (err) { this.log.error('Error connecting capper', err); return false; } } - else if (type === 'camera,capper') { - this.connected.camera = device; - this.connected.capper = device; - this.arduino.aliasSerial('capper', device); + else if (device === 'camera,capper') { + this.connected.camera = serial; + this.connected.capper = serial; + this.arduino.aliasSerial('capper', serial); try { - connectSuccess = await this.arduino.connect('camera', device, false); + connectSuccess = await this.arduino.connect('camera', serial, false); } catch (err) { this.log.error('Error connecting to camera and capper', err); return false; } } - else if (type === 'camera,capper,projector') { - this.connected.camera = device; - this.connected.capper = device; - this.connected.projector = device; - this.arduino.aliasSerial('capper', device); - this.arduino.aliasSerial('projector', device); + else if (device === 'camera,capper,projector') { + this.connected.camera = serial; + this.connected.capper = serial; + this.connected.projector = serial; + this.arduino.aliasSerial('capper', serial); + this.arduino.aliasSerial('projector', serial); try { - connectSuccess = await this.arduino.connect('camera', device, false); + connectSuccess = await this.arduino.connect('camera', serial, false); } catch (err) { this.log.error('Error connecting to camera, capper and projector', err); return false; } } - else if (type === 'camera,capper,projector,projector_second') { - this.connected.camera = device; - this.connected.capper = device; - this.connected.projector = device; - this.connected.projector_second = device; - this.arduino.aliasSerial('capper', device); - this.arduino.aliasSerial('projector', device); - this.arduino.aliasSerial('projector_second', device); + else if (device === 'camera,capper,projector,projector_second') { + this.connected.camera = serial; + this.connected.capper = serial; + this.connected.projector = serial; + this.connected.projector_second = serial; + this.arduino.aliasSerial('capper', serial); + this.arduino.aliasSerial('projector', serial); + this.arduino.aliasSerial('projector_second', serial); try { - connectSuccess = await this.arduino.connect('camera', device, false); + connectSuccess = await this.arduino.connect('camera', serial, false); } catch (err) { this.log.error('Error connecting to camera, capper, projector and projector_second', err); @@ -437,11 +450,11 @@ class Devices { * **/ //Cases for 1 or 2 arduinos connected - async all(devices) { + async all(serials) { let c = {}; let p = {}; let l = {}; - let type; + let device; let d; let cs = {}; let ps = {}; @@ -454,16 +467,16 @@ class Devices { projector_second: false, capper: false }; - for (let device of devices) { + for (let serial of serials) { try { - type = await this.distinguish(device); + device = await this.distinguish(serial); } catch (err) { this.log.error('Error distinguishing device', err); throw err; } try { - await this.connectDevice(device, type); + await this.connectDevice(device, serial); } catch (err) { this.log.error('Error connecting to device', err); @@ -502,23 +515,25 @@ class Devices { if (this.settings.state.camera && this.settings.state.camera.intval) { c.intval = this.settings.state.camera.intval; } + //console.dir(this.arduino.alias); + //console.dir(this.arduino.serial); return this.ready(p, c, l, cs, ps, capper); } /** * **/ - remember(which, device, type) { + remember(device, serial, type) { let deviceEntry; const match = this.settings.state.devices.filter((dev) => { - if (dev[which] && dev[which] === device) { + if (dev[device] && dev[device] === serial) { return dev; } }); if (match.length === 0) { deviceEntry = { - type + device, + serial }; - deviceEntry[which] = device; this.settings.state.devices.push(deviceEntry); this.settings.update('devices', this.settings.state.devices); this.settings.save(); diff --git a/app/lib/devices/index.js.map b/app/lib/devices/index.js.map index 02371d4..317ae3d 100644 --- a/app/lib/devices/index.js.map +++ b/app/lib/devices/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,iCAA8B;AAC9B,2BAA4B;AAE5B;;;;IAII;AAEJ,MAAM,OAAO;IAYZ;;;QAGI;IACJ,YAAa,OAAiB,EAAE,QAAc,EAAE,UAAgB,EAAE,GAAS;QAbpE,cAAS,GAAS,EAAE,CAAA;QAc1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IACD;;;QAGI;IACI,KAAK,CAAC,IAAI;QACjB,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE,KAAK,EAAG,SAAS,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IACD;;QAEI;IACI,MAAM;QACb,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IACD;;;QAGI;IACI,QAAQ,CAAE,KAAW,EAAE,GAAS;QACvC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,WAAW,EAAE;YACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACzE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACrB;QACD,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACrB;IACF,CAAC;IACD;;QAEI;IACG,KAAK,CAAC,SAAS;QACrB,IAAI,OAAkB,CAAC;QACvB,IAAG;YACF,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;SACzC;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,aAAK,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IACD;;QAEI;IACI,KAAK,CAAE,OAAkB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAe,EAAE,EAAE;YACnE,IAAI,MAAM,CAAC,OAAO,EAAE;gBACnB,OAAO,MAAM,CAAC;aACd;QACF,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAe,EAAE,EAAE;YAC1B,OAAO,MAAM,CAAC,OAAO,CAAC;QACvB,CAAC,CAAC,CAAA;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO,OAAO,CAAC;SACf;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAO,EAAE,CAAO,EAAE,EAAE;YACjC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gBACrD,OAAO,CAAC,CAAC;aACT;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC5D,OAAO,CAAC,CAAC,CAAC;aACV;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAC;IAChB,CAAC;IACD;;QAEI;IACI,KAAK,CAAC,WAAW,CAAE,MAAe;QACzC,IAAI,cAAoB,CAAC;QACzB,IAAI,aAAmB,CAAC;QACxB,IAAI,IAAU,CAAC;QAEf,IAAI;YACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;SACpE;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;YACvC,OAAO,IAAI,CAAA;SACX;QAED,MAAM,aAAK,CAAC,IAAI,CAAC,CAAA;QAEjB,IAAI;YACH,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;SAC3C;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAA;YAC7C,OAAO,IAAI,CAAA;SACX;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,MAAM,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAEzE,MAAM,aAAK,CAAC,IAAI,CAAC,CAAA;QAEjB,IAAI;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;SACvC;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;YAClD,OAAO,IAAI,CAAA;SACX;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,MAAM,UAAU,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAGzE,MAAM,aAAK,CAAC,GAAG,CAAC,CAAA;QAEhB,IAAI;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAA;SACjD;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAA;SACtD;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE;YAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;SACnC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IACD;;QAEI;IACI,KAAK,CAAC,aAAa;QAC1B,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW,CAAA;QACtC,IAAI;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;SAC3C;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2CAA2C,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YACjF,OAAO,KAAK,CAAA;SACZ;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACzE,OAAO,IAAI,CAAA;IACZ,CAAC;IACD;;QAEI;IACI,KAAK,CAAC,UAAU;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,WAAW,CAAA;QACnC,IAAI;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;SACxC;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC9E,OAAO,KAAK,CAAA;SACZ;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACtE,OAAO,IAAI,CAAA;IACZ,CAAC;IACD;;QAEI;IACI,KAAK,CAAC,SAAS;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW,CAAA;QAClC,IAAI;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;SACvC;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC7E,OAAO,KAAK,CAAA;SACZ;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACrE,OAAO,IAAI,CAAA;IACZ,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,UAAU;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,WAAW,CAAA;QACnC,IAAI;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;SACxC;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC9E,OAAO,KAAK,CAAA;SACZ;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACtE,OAAO,IAAI,CAAA;IACZ,CAAC;IACD;;QAEI;IACI,KAAK,CAAC,aAAa,CAAE,MAAe,EAAE,IAAU;QACvD,IAAI,YAAkB,CAAC;QACvB,IAAI,cAAoB,CAAC;QACzB,IAAK;YACJ,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;SACzC;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAA;YACvD,OAAO,KAAK,CAAA;SACZ;QACD,IAAI,IAAI,KAAK,WAAW,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACvE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;gBACpD,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SAC1E;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;gBACjD,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SACvE;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAA;YAC7B,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACnE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;gBAChD,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SACtE;aAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAA;YAC7B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YACzC,IAAG;gBACF,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACvE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAA;gBAC9D,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SAElF;aAAM,IAAI,IAAI,KAAK,wBAAwB,EAAE;YAC7C,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAA;YAC7B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC1C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YACzC,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACvE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAA;gBACtE,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,gCAAgC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SAE3F;aAAM,IAAI,IAAI,KAAK,kBAAkB,EAAE;YACvC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC1C,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACvE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAA;gBAC/D,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SACnF;aAAM,IAAI,IAAI,KAAK,kBAAkB,EAAE;YACvC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAA;YACxC,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aAC9E;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAA;gBAC9D,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SACjF;aAAM,IAAI,IAAI,KAAK,4BAA4B,EAAE;YACjD,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAA;YACxC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;YACpD,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACvE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uDAAuD,EAAE,GAAG,CAAC,CAAA;gBAC5E,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,eAAe,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,MAAM,CAAA;YACrC,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aAC3E;YAAC,OAAO,GAAG,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAClB,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,sBAAsB,EAAE;YAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,MAAM,CAAA;YACrC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;YACjD,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4DAA4D,EAAE,GAAG,CAAC,CAAA;gBACjF,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,mCAAmC,EAAE;YACxD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAA;YACxC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;YACpD,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4DAA4D,EAAE,GAAG,CAAC,CAAA;gBACjF,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,gCAAgC,EAAE;YACrD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,MAAM,CAAA;YACrC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;YACjD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAE7C,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yDAAyD,EAAE,GAAG,CAAC,CAAA;gBAC9E,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,iDAAiD,EAAE;YACtE,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,MAAM,CAAA;YACrC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAA;YACxC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;YACjD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;YAEpD,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2EAA2E,EAAE,GAAG,CAAC,CAAA;gBAChG,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAA;gBAC9C,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,eAAe,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC1C,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAA;gBAC5D,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,yBAAyB,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC1C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAE7C,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAA;gBACvE,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,0CAA0C,EAAE;YAC/D,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAA;YACxC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC1C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;YACpD,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oEAAoE,EAAE,GAAG,CAAC,CAAA;gBACzF,OAAO,KAAK,CAAA;aACZ;SACD;QACD,OAAO,cAAc,CAAA;IACtB,CAAC;IACD;;QAEI;IACJ,qCAAqC;IAC7B,KAAK,CAAC,GAAG,CAAE,OAAkB;QACpC,IAAI,CAAC,GAAS,EAAE,CAAA;QAChB,IAAI,CAAC,GAAS,EAAE,CAAA;QAChB,IAAI,CAAC,GAAS,EAAE,CAAA;QAChB,IAAI,IAAa,CAAC;QAClB,IAAI,CAAO,CAAA;QACX,IAAI,EAAE,GAAS,EAAE,CAAA;QACjB,IAAI,EAAE,GAAS,EAAE,CAAA;QACjB,IAAI,MAAM,GAAS,EAAE,CAAA;QACrB,IAAI,SAAS,GAAW,EAAE,CAAA;QAE1B,IAAI,CAAC,SAAS,GAAG;YAChB,SAAS,EAAG,KAAK;YACjB,MAAM,EAAG,KAAK;YACd,KAAK,EAAG,KAAK;YACb,gBAAgB,EAAG,KAAK;YACxB,MAAM,EAAG,KAAK;SACd,CAAA;QAED,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;YAC3B,IAAI;gBACH,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;aACrC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;gBAClD,MAAM,GAAG,CAAA;aACT;YAED,IAAI;gBACH,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;aACtC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;gBACjD,MAAM,GAAG,CAAA;aACT;SACD;QAED,uBAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;YAC9B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;SAC1B;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC9C,CAAC,CAAC,KAAK,GAAG,IAAI,CAAA;SACd;QACD,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAA;QAEpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC3B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;SACvB;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC3C,CAAC,CAAC,KAAK,GAAG,IAAI,CAAA;YACd,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAA;SACjB;QACD,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA;QAEjC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YAC1B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;SACtB;QACD,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAEhC,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;YACjC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAA;SACzC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACpC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAA;SAC5C;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC1B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA;SACtC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;YACpE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA;SAE5C;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;IACD;;QAEI;IACI,QAAQ,CAAE,KAAc,EAAE,MAAY,EAAE,IAAa;QAC5D,IAAI,WAAiB,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAS,EAAE,EAAE;YAC9D,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE;gBACxC,OAAO,GAAG,CAAA;aACV;QACF,CAAC,CAAC,CAAA;QACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,WAAW,GAAG;gBACb,IAAI;aACJ,CAAA;YACD,WAAW,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;YAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;SACpB;IACF,CAAC;IACD;;QAEI;IACI,KAAK,CAAE,SAAe,EAAE,MAAY,EAAE,KAAW,EAAE,aAAmB,EAAE,gBAAsB,EAAE,MAAY;QACnH,IAAI,IAAI,GAAS;YAChB,MAAM;YACN,SAAS;YACT,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO;SACpC,CAAA;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAA;SACxC;QAED,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,EAAE;YACjD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;YACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAA;YAC1D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;SACjC;QAED,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;YAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;YACpD,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,EAAE;gBACjD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;aACjC;iBAAM;gBACN,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;aACjC;SACD;QAED,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;YAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;SACtC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAGpC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QAEpB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAE3B,OAAO,IAAI,CAAA;IACZ,CAAC;CAMD;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,OAAiB,EAAE,QAAc,EAAE,UAAgB,EAAE,GAAS;IACxF,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;AACvD,CAAC,CAAA"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/proj/index.js b/app/lib/proj/index.js index 9eaf156..aa7dfa0 100644 --- a/app/lib/proj/index.js +++ b/app/lib/proj/index.js @@ -59,6 +59,7 @@ class Projector { this.log.error(`Error setting ${this.id} direction`, err); } } + console.dir(ms); return await this.end(cmd, id, ms); } /** @@ -166,7 +167,7 @@ class Projector { } message += ` ${ms}ms`; this.log.info(message, 'PROJECTOR'); - return await this.ui.send(this.id, { cmd: cmd, id: id, ms: ms }); + return await this.ui.send(this.id, { cmd, id, ms }); } } module.exports = function (arduino, cfg, ui, filmout, second) { diff --git a/app/lib/proj/index.js.map b/app/lib/proj/index.js.map index 71cc387..932d08e 100644 --- a/app/lib/proj/index.js.map +++ b/app/lib/proj/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proj/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proj/index.ts"],"names":[],"mappings":";AAAA,iDAAiD;;AAEjD,2BAA4B;AAE5B,MAAM,SAAS;IAad;;QAEI;IACJ,YAAa,OAAiB,EAAE,GAAS,EAAE,EAAQ,EAAE,OAAa,EAAE,SAAmB,KAAK;QAfpF,UAAK,GAAS;YACrB,GAAG,EAAG,CAAC;YACP,GAAG,EAAG,IAAI;SACV,CAAC;QACM,YAAO,GAAa,IAAI,CAAC;QAMzB,OAAE,GAAY,WAAW,CAAC;QAMjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,MAAM;YAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,IAAI;QACjB,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE,KAAK,EAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED;;QAEI;IACI,MAAM;QACb,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,GAAG,CAAE,GAAa,EAAE,EAAW;QAC3C,IAAI,GAAY,CAAC;QACjB,IAAI,EAAW,CAAC;QAChB,IAAI,GAAG,EAAE;YACR,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,UAAU,CAAC,CAAA;SAChD;aAAM;YACN,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,WAAW,CAAC,CAAA;SACjD;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;QACpB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;YAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACrB;aAAM;YACN,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;aAC1C;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;aACzD;SACD;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,IAAI,CAAE,KAAW,EAAE,EAAW;QAC1C,MAAM,GAAG,GAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,EAAW,CAAC;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;YAC/B,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;aAC9B;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;SACD;aAAM;YACN,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;aAC1C;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;aAC9C;SACD;QACD,+CAA+C;QAC/C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IAEM,KAAK,CAAC,IAAI,CAAE,KAAW,EAAE,EAAW;QAC1C,MAAM,GAAG,GAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;QACzD,IAAI,EAAW,CAAC;QAChB,IAAI;YACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;SAC1C;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;SAC9C;QACD,gDAAgD;QAChD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,QAAQ,CAAG,KAAW,EAAE,GAAS;QAC9C,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,WAAW,EAAE;YACnC,IAAI;gBACH,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;aAC/B;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;SACD;aAAM,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,WAAW,EAAE;YAC5C,IAAI;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;aAClC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;SACD;aAAM,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,WAAW,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAA;SAClC;QACD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAED;;QAEI;IACJ,KAAK,CAAC,GAAG,CAAE,GAAY,EAAE,EAAW,EAAE,EAAW;QAChD,IAAI,OAAO,GAAY,EAAE,CAAA;QACzB,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;YACnD,OAAO,GAAG,0BAA0B,CAAA;SACpC;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE;YAC3D,OAAO,GAAG,2BAA2B,CAAA;SACrC;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE;YACjE,OAAO,GAAG,iCAAiC,CAAA;SAC3C;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE;YAClE,OAAO,GAAG,kCAAkC,CAAA;SAC5C;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE;YAClD,OAAO,GAAG,YAAY,CAAA;YACtB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnB,OAAO,IAAI,UAAU,CAAA;aACrB;iBAAM;gBACN,OAAO,IAAI,SAAS,CAAA;aACpB;YACD,OAAO,IAAI,UAAU,CAAA;SACrB;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE;YACzD,OAAO,GAAG,mBAAmB,CAAA;YAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnB,OAAO,IAAI,UAAU,CAAA;aACrB;iBAAM;gBACN,OAAO,IAAI,SAAS,CAAA;aACpB;YACD,OAAO,IAAI,UAAU,CAAA;SACrB;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;YACnD,OAAO,IAAI,oCAAoC,CAAA;SAC/C;QACD,OAAO,IAAI,IAAI,EAAE,IAAI,CAAA;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACnC,OAAO,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACpD,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,OAAiB,EAAE,GAAS,EAAE,EAAQ,EAAE,OAAa,EAAE,MAAgB;IACjG,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AACxD,CAAC,CAAA"} \ No newline at end of file diff --git a/app/lib/ui/timing.js b/app/lib/ui/timing.js index 3ea3d6d..9511812 100644 --- a/app/lib/ui/timing.js +++ b/app/lib/ui/timing.js @@ -33,6 +33,17 @@ class Timing { 'PBPF': 'projs' }; } + init() { + this.listen(); + } + listen() { + ipcRenderer.on('timing', this.timing.bind(this)); + } + timing(event, arg) { + if (arg.c) { + this.update(arg.c, parseInt(arg.ms), true); + } + } reset(profile) { const keys = Object.keys(profile); const cmds = Object.keys(cfg.cmd); @@ -74,11 +85,16 @@ class Timing { this.data = timing; } //update with rolling average - update(c, ms) { + update(c, ms, force = false) { let cmd = this.fromArduino[c]; let id; if (typeof cmd !== 'undefined' && typeof this.data[cmd] !== 'undefined') { - this.data[cmd] = Math.round((this.data[cmd] + ms) / 2); + if (force) { + this.data[cmd] = ms; + } + else { + this.data[cmd] = Math.round((this.data[cmd] + ms) / 2); + } id = `#${cmd}_time`; this.updateUI(id, this.data[cmd]); } diff --git a/app/lib/ui/timing.js.map b/app/lib/ui/timing.js.map index 497a839..42a58b8 100644 --- a/app/lib/ui/timing.js.map +++ b/app/lib/ui/timing.js.map @@ -1 +1 @@ -{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../src/lib/ui/timing.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../src/lib/ui/timing.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/src/index.js b/app/src/index.js index f25f52a..e16d436 100644 --- a/app/src/index.js +++ b/app/src/index.js @@ -57,4 +57,5 @@ async function init () { seq.init(); capper.init(); alertObj.init(); + timing.init(); }; \ No newline at end of file diff --git a/app/src/lib/ui/timing.ts b/app/src/lib/ui/timing.ts index 1106985..3f7fa80 100644 --- a/app/src/lib/ui/timing.ts +++ b/app/src/lib/ui/timing.ts @@ -7,9 +7,7 @@ interface TimingData { } class Timing { - public data : TimingData = { - - } + public data : TimingData = {} private fromArduino : any = { 'c' : 'cam', @@ -46,6 +44,20 @@ class Timing { } + public init () { + this.listen(); + } + + private listen () { + ipcRenderer.on('timing', this.timing.bind(this)); + } + + private timing (event : any, arg : any) { + if (arg.c) { + this.update(arg.c, parseInt(arg.ms), true); + } + } + public reset (profile : any) { const keys : string[] = Object.keys(profile); const cmds : string[] = Object.keys(cfg.cmd); @@ -89,11 +101,15 @@ class Timing { } //update with rolling average - public update (c : string, ms : number) { + public update (c : string, ms : number, force : boolean = false) { let cmd : string = this.fromArduino[c]; let id : string; if (typeof cmd !== 'undefined' && typeof this.data[cmd] !== 'undefined') { - this.data[cmd] = Math.round((this.data[cmd] + ms) / 2); + if (force) { + this.data[cmd] = ms; + } else { + this.data[cmd] = Math.round((this.data[cmd] + ms) / 2); + } id = `#${cmd}_time`; this.updateUI(id, this.data[cmd]); } diff --git a/src/arduino/index.ts b/src/arduino/index.ts index bc3551a..32cb3b4 100644 --- a/src/arduino/index.ts +++ b/src/arduino/index.ts @@ -49,16 +49,17 @@ class Arduino { private path : any = {}; private known : string[] = KNOWN; private alias : any = {}; - private serial : any = { connect : {}, projector : {}, camera : {}, light : {} }; - private hasState : any = { }; + private serial : any = {}; + private hasState : any = {}; private baud : number = 57600; private queue : any = {}; private timer : number = 0; - private lock : boolean = false; private locks : any = {}; private confirmExec : any; private errorState : Function; + public stateStr : any = {}; + constructor (errorState : Function) { this.errorState = errorState; this.init() @@ -74,7 +75,7 @@ class Arduino { * * @returns {Promise} Resolves after enumerating **/ - async enumerate () { + public async enumerate () : Promise{ let ports : any[] let matches : string[] = [] try { @@ -112,13 +113,14 @@ class Arduino { * * @returns {Promise} Resolves after sending **/ - async sendAsync (device : string, cmd : string) { + private async sendAsync (device : string, cmd : string) : Promise { return new Promise ((resolve, reject) => { - this.log.info(`sendAsyc ${device} -> ${cmd}`) + this.log.info(`sendAsync ${cmd} -> ${device}`) this.queue[cmd] = (ms : number) => { return resolve(ms) } - return this.serial[device].write(cmd, (err : any, results : any) => { + this.log.info(`Device: ${device}`) + return this.serial[this.alias[device]].write(cmd, (err : any, results : any) => { if (err) { //this.log.error(err) return reject(err) @@ -130,45 +132,45 @@ class Arduino { /** * **/ - async send (serial : string, cmd : string) { - const device : any = this.alias[serial] - let results : any - this.log.info(`send ${cmd} -> ${serial}`) - if (this.locks[serial]) { - this.log.warning(`Serial ${serial} is locked`) - return false + public async send (device : string, cmd : string) : Promise { + const serial : any = this.alias[device] + let ms : number + this.log.info(`send ${cmd} -> ${device}`) + if (this.isLocked(serial)) { + this.log.warn(`send Serial ${serial} is locked`) + return null } this.timer = new Date().getTime() - this.locks[serial] = true + this.lock(serial) await delay(cfg.arduino.serialDelay) try { - results = await this.sendAsync(device, cmd) + ms = await this.sendAsync(device, cmd) } catch (e) { return this.log.error(e) } - this.locks[serial] = false + this.unlock(serial) await eventEmitter.emit('arduino_send', cmd) - return results + return ms } /** * **/ - async sendString (serial : string, str : string) : Promise { - const device : any = this.alias[serial] + public async sendString (device : string, str : string) : Promise { let writeSuccess : any await delay(cfg.arduino.serialDelay) - if (typeof this.serial[device].fake !== 'undefined' - && this.serial[device].fake) { - return this.serial[device].string(str) + if (typeof this.serial[this.alias[device]].fake !== 'undefined' + && this.serial[this.alias[device]].fake) { + return this.serial[this.alias[device]].string(str) } else { - this.log.info(`sendString ${device} -> ${str}`) + this.log.info(`sendString ${str} -> ${device}`) try { writeSuccess = await this.writeAsync(device, str) } catch (e) { return this.log.error(e) } + this.unlock(this.alias[device]) return writeSuccess } } @@ -176,10 +178,12 @@ class Arduino { /** * **/ - async stateAsync (device : string, confirm : boolean = false) : Promise { + private async stateAsync (device : string, confirm : boolean = false) : Promise { const cmd : string = cfg.arduino.cmd.state + const serial : string = confirm ? this.alias['connect'] : this.alias[device] return new Promise ((resolve, reject) => { this.queue[cmd] = (state : string) => { + this.stateStr[device] = state if (confirm) { this.hasState[device] = true this.log.info(`Device ${device} supports state [${state}]`) @@ -196,8 +200,8 @@ class Arduino { } }.bind(this), 1000) } - this.log.info(`stateAsync ${device} -> ${cmd}`) - return this.serial[device].write(cmd, (err : any, results : any) => { + this.log.info(`stateAsync ${cmd} -> ${device}`) + return this.serial[serial].write(cmd, (err : any, results : any) => { if (err) { //this.log.error(err) return reject(err) @@ -209,26 +213,25 @@ class Arduino { /** * **/ - async state (device : string, confirm : boolean = false) : Promise{ + public async state (device : string, confirm : boolean = false) : Promise{ const serial : string = confirm ? this.alias['connect'] : this.alias[device] let results : string - this.log.info(`state device ${device}`) - this.log.info(`state serial ${serial}`) - console.dir(this.locks) - if (typeof this.locks[serial] !== 'undefined' && this.locks[serial] === true) { - this.log.info("Serial is locked") + + if (this.isLocked(serial)) { + this.log.warn(`state Serial ${serial} is locked`) return null } this.timer = new Date().getTime() - this.locks[serial] = true + this.lock(serial) + await delay(cfg.arduino.serialDelay) - if (!confirm) this.log.info("got here") + try { results = await this.stateAsync(device, confirm) } catch (e) { return this.log.error(e) } - this.locks[serial] = false + this.unlock(serial) await eventEmitter.emit('arduino_state', cfg.arduino.cmd.state) return results @@ -242,9 +245,9 @@ class Arduino { * * @returns {Promise} Resolves after sending **/ - async writeAsync (device : string, str : string) : Promise { + private async writeAsync (device : string, str : string) : Promise { return new Promise ((resolve, reject) => { - this.serial[device].write(str, function (err : any, results : any) { + this.serial[this.alias[device]].write(str, function (err : any, results : any) { if (err) { return reject(err) } @@ -256,26 +259,26 @@ class Arduino { /** * **/ - end (serial : string, data : string) : any { + private end (serial : string, data : string) : any { const end : number = new Date().getTime() const ms : number = end - this.timer let complete : any - this.log.info(`end ${serial} -> ${data}`) + //this.log.info(`end ${serial} -> ${data}`) if (this.queue[data] !== undefined) { - this.locks[serial] = false + this.unlock(serial) complete = this.queue[data](ms) //execute callback eventEmitter.emit('arduino_end', data) delete this.queue[data] } else if (data[0] === cfg.arduino.cmd.state) { - this.log.info(`end serial -> ${serial}`) - this.locks[serial] = false + //this.log.info(`end serial -> ${serial}`) + this.unlock(serial) complete = this.queue[cfg.arduino.cmd.state](data) eventEmitter.emit('arduino_end', data) delete this.queue[cfg.arduino.cmd.state] return data } else if (data[0] === cfg.arduino.cmd.error) { this.log.error(`Received error from device ${serial}`) - this.locks[serial] = false + this.unlock(serial) //error state //stop sequence //throw error in ui @@ -285,40 +288,40 @@ class Arduino { return ms } - aliasSerial (serial : string, device : string) { + public aliasSerial (device : string, serial : string) { //this.log.info(`Making "${serial}" an alias of ${device}`) - this.alias[serial] = device; + this.alias[device] = serial; } - async connect (serial : string, device : string, confirm : any) : Promise { - this.log.info(`connect device ${device}`) - this.log.info(`connect serial ${serial}`) + public async connect (device : string, serial : string, confirm : any) : Promise { + //this.log.info(`connect device ${device}`) + //this.log.info(`connect serial ${serial}`) return new Promise(async (resolve, reject) => { let connectSuccess : any - this.path[serial] = device - this.alias[serial] = device - this.serial[device] = new SerialPort({ - path : this.path[serial], + this.path[device] = serial + this.aliasSerial(device, serial) + this.serial[serial] = new SerialPort({ + path : serial, autoOpen : false, baudRate: cfg.arduino.baud, parser }) - this.locks[device] = false + this.unlock(serial) try { connectSuccess = await this.openArduino(device) } catch (e) { this.log.error('failed to open: ' + e) return reject(e) } - this.log.info(`Opened connection with ${this.path[serial]} as ${serial}`) + this.log.info(`Opened connection with ${this.path[device]} as ${device}`) if (!confirm) { - this.serial[device].on('data', async (data : Buffer) => { + this.serial[this.alias[device]].on('data', async (data : Buffer) => { let d = data.toString('utf8') d = d.replace(newlineRe, '').replace(returnRe, '') return this.end(serial, d) }) } else { - this.serial[device].on('data', async (data : Buffer) => { + this.serial[this.alias[device]].on('data', async (data : Buffer) => { let d = data.toString('utf8') d = d.replace(newlineRe, '').replace(returnRe, '') return await this.confirmEnd(d) @@ -329,7 +332,7 @@ class Arduino { }) } - confirmEnd (data : string) { + private confirmEnd (data : string) { if ( data === cfg.arduino.cmd.connect || data === cfg.arduino.cmd.projector_identifier || data === cfg.arduino.cmd.camera_identifier @@ -359,15 +362,17 @@ class Arduino { this.confirmExec(null, data) this.confirmExec = {} + this.unlock(this.alias['connect']) } else if (data[0] === cfg.arduino.cmd.state) { this.queue[cfg.arduino.cmd.state](data) delete this.queue[cfg.arduino.cmd.state] + this.unlock(this.alias['connect']) } } - async verify () { + public async verify () { return new Promise(async (resolve, reject) => { - const device : any = this.alias['connect'] + const device : string = 'connect' let writeSuccess : any this.confirmExec = function (err : any, data : string) { if (data === cfg.arduino.cmd.connect) { @@ -388,9 +393,9 @@ class Arduino { }) } - async distinguish () { + public async distinguish () { return new Promise(async (resolve, reject) => { - const device : any = this.alias['connect'] + const device : string = 'connect' let writeSuccess : any let type : string this.confirmExec = function (err : any, data : string) { @@ -443,9 +448,9 @@ class Arduino { }) } - async close () { - const device = this.alias['connect'] - let closeSuccess + public async close () { + const device : string = 'connect' + let closeSuccess : boolean try { closeSuccess = await this.closeArduino(device) } catch (e) { @@ -454,10 +459,10 @@ class Arduino { return closeSuccess } - async fakeConnect (serial : string) { - const device : string = '/dev/fake' - this.alias[serial] = device - this.serial[device] = { + public async fakeConnect (device : string) { + const serial : string = '/dev/fake' + this.aliasSerial(device, serial) + this.serial[serial] = { write : async function (cmd : string, cb : any) { const t : any = { c : cfg.arduino.cam.time + cfg.arduino.cam.delay, @@ -492,9 +497,9 @@ class Arduino { * * @returns {Promise} Resolves after opening **/ - async openArduino (device : string) { + private async openArduino (device : string) : Promise { return new Promise((resolve, reject) => { - return this.serial[device].open((err : any) => { + return this.serial[this.alias[device]].open((err : any) => { if (err) { return reject(err) } @@ -510,9 +515,9 @@ class Arduino { * * @returns {Promise} Resolves after closing **/ - async closeArduino (device : string) { + private async closeArduino (device : string) : Promise { return new Promise((resolve : any, reject : any) => { - return this.serial[device].close((err : any) => { + return this.serial[this.alias[device]].close((err : any) => { if (err) { return reject(err) } @@ -520,6 +525,20 @@ class Arduino { }) }) } + + private lock (serial : string) { + //this.log.info(`Locked serial ${serial}`) + this.locks[serial] = true + } + + private unlock (serial : string) { + //this.log.info(`Unlocked serial ${serial}`) + this.locks[serial] = false + } + + private isLocked (serial : string) { + return typeof this.locks[serial] !== 'undefined' && this.locks[serial] === true + } } if (typeof module !== 'undefined' && module.parent) { diff --git a/src/cam/index.ts b/src/cam/index.ts index bd541ec..a32c563 100644 --- a/src/cam/index.ts +++ b/src/cam/index.ts @@ -167,13 +167,15 @@ class Camera { const started : number = +new Date(); let ms : any; let confirmState : any; + let parts : string[]; + let confirmExposure : number; if (this.intval) { return this.intval.setExposure(this.id, exposure, (ms : number) => { + this.ui.send('timing', { c : 'c', ms : exposure }); return this.end(cmd, id, ms); }); } else if (this.arduino.hasState[this.id]) { - this.log.info(`Sending cmd ${cmd}`); try { ms = this.arduino.send(this.id, cmd); } catch (err) { @@ -181,23 +183,31 @@ class Camera { } await delay(1); - this.log.info(`Sending str ${str}`); + try { ms = await this.arduino.sendString(this.id, str); } catch (err) { this.log.error('Error sending camera exposure string', err); } - this.log.info(`Sent str ${str}`); await ms; - this.log.info(`Sent cmd ${cmd}`); await delay(1); - this.log.info(`Sending state request`); + try { confirmState = await this.arduino.state(this.id, false); } catch (err) { this.log.error(`Error confirming set state`, err); } - console.dir(confirmState); + + parts = this.arduino.stateStr[this.id].split('G') + if (parts.length > 1) { + parts = parts[1].split('H') + confirmExposure = parseInt(parts[0]) + if (!isNaN(confirmExposure)) { + this.log.info(`Exposure successfully set to ${confirmExposure}ms`) + this.ui.send('timing', { c : 'c', ms : exposure }) + } + } + ms = (+new Date()) - started; return await this.end(cmd, id, ms); } diff --git a/src/devices/index.ts b/src/devices/index.ts index 7715ff3..a59cf77 100644 --- a/src/devices/index.ts +++ b/src/devices/index.ts @@ -68,33 +68,33 @@ class Devices { * **/ public async enumerate () { - let devices : Device[]; + let serials : string[]; try{ - devices = await this.arduino.enumerate(); + serials = await this.arduino.enumerate(); } catch (err) { this.log.warn(err, 'SERIAL', false, true); await delay(1000); return this.all([]); } - this.log.info(`Found ${devices.length} USB devices`, 'SERIAL', true, true); - devices = this.favor(devices); - return await this.all(devices); + this.log.info(`Found ${serials.length} USB devices`, 'SERIAL', true, true); + serials = this.favor(serials); + return await this.all(serials); } /** * **/ - private favor (devices : Device[]) { + private favor (serials : string[]) { const past = this.settings.state.devices.filter((device : Device) => { - if (device.arduino) { + if (device.serial) { return device; } }).map((device : Device) => { - return device.arduino; + return device.serial; }) if (past.length === 0) { - return devices; + return serials; } - devices.sort((a : any, b : any) => { + serials.sort((a : any, b : any) => { if (past.indexOf(a) !== -1 && past.indexOf(b) === -1) { return 1; } else if (past.indexOf(a) === -1 && past.indexOf(b) !== -1) { @@ -102,18 +102,20 @@ class Devices { } return 0; }) - return devices; + return serials; } /** * **/ - private async distinguish (device : Device) { - let connectSuccess : any; - let verifySuccess : any; - let type : any; - + private async distinguish (serial : string) { + let connectSuccess : any + let verifySuccess : any + let device : any + let exposure : number + let parts : string[] + //this.log.info(`distinguish() ${serial}`) try { - connectSuccess = await this.arduino.connect('connect', device, true) + connectSuccess = await this.arduino.connect('connect', serial, true) } catch (err) { this.log.error('Error connecting', err) return null @@ -128,34 +130,44 @@ class Devices { return null } - this.log.info(`Verified ${device} as mcopy device`, 'SERIAL', true, true) + this.log.info(`Verified ${serial} as mcopy device`, 'SERIAL', true, true) await delay(1000) try { - type = await this.arduino.distinguish() + device = await this.arduino.distinguish() } catch (err) { this.log.error('Error distinguishing device', err) return null } - this.remember('arduino', device, type) - this.log.info(`Determined ${device} to be ${type}`, 'SERIAL', true, true) + this.remember('arduino', device, serial) + this.log.info(`Determined ${device} to be ${device}`, 'SERIAL', true, true) await delay(100) try { - await this.arduino.state(device.toString(), true) + await this.arduino.state(device, true) } catch (err) { this.log.error('Error checking state capability', err) } - if (this.arduino.hasState[device.toString()]) { - this.arduino.hasState[type] = true; + if (this.arduino.hasState[device]) { + if (device.indexOf('camera') !== -1) { + parts = this.arduino.stateStr[device].split('G') + if (parts.length > 1) { + parts = parts[1].split('H') + exposure = parseInt(parts[0]) + if (!isNaN(exposure)) { + this.log.info(`Timing for [${device}] = ${exposure}`) + this.ui.send('timing', { c : 'c', ms : exposure }) + } + } + } } - return type + return device } /** * @@ -221,7 +233,7 @@ class Devices { /** * **/ - private async connectDevice (device : Device, type : any) { + private async connectDevice (device : string, serial : string) { let closeSuccess : any; let connectSuccess : any; try { @@ -230,188 +242,188 @@ class Devices { this.log.error('Error closing arduino connection', err) return false } - if (type === 'projector') { - this.connected.projector = device + if (device === 'projector') { + this.connected.projector = serial try { - connectSuccess = await this.arduino.connect('projector', device, false) + connectSuccess = await this.arduino.connect('projector', serial, false) } catch (err) { this.log.error('Error connecting to projector', err) return false } this.log.info(`Connected to ${device} as PROJECTOR`, 'SERIAL', true, true) - } else if (type === 'camera') { - this.connected.camera = device + } else if (device === 'camera') { + this.connected.camera = serial try { - connectSuccess = await this.arduino.connect('camera', device, false) + connectSuccess = await this.arduino.connect('camera', serial, false) } catch (err) { this.log.error('Error connecting to camera', err) return false } this.log.info(`Connected to ${device} as CAMERA`, 'SERIAL', true, true) - } else if (type === 'light') { - this.connected.light = device + } else if (device === 'light') { + this.connected.light = serial try { - connectSuccess = await this.arduino.connect('light', device, false) + connectSuccess = await this.arduino.connect('light', serial, false) } catch (err) { this.log.error('Error connecting to light', err) return false } this.log.info(`Connected to ${device} as LIGHT`, 'SERIAL', true, true) - } else if (type === 'projector,light') { - this.connected.projector = device - this.connected.light = device - this.arduino.aliasSerial('light', device) + } else if (device === 'projector,light') { + this.connected.projector = serial + this.connected.light = serial + this.arduino.aliasSerial('light', serial) try{ - connectSuccess = await this.arduino.connect('projector', device, false) + connectSuccess = await this.arduino.connect('projector', serial, false) } catch (err) { this.log.error('Error connecting to projector and light', err) return false } this.log.info(`Connected to ${device} as PROJECTOR + LIGHT`, 'SERIAL', true, true) - } else if (type === 'projector,camera,light') { - this.connected.projector = device - this.connected.camera = device - this.connected.light = device - this.arduino.aliasSerial('camera', device) - this.arduino.aliasSerial('light', device) + } else if (device === 'projector,camera,light') { + this.connected.projector = serial + this.connected.camera = serial + this.connected.light = serial + this.arduino.aliasSerial('camera', serial) + this.arduino.aliasSerial('light', serial) try { - connectSuccess = await this.arduino.connect('projector', device, false) + connectSuccess = await this.arduino.connect('projector', serial, false) } catch (err) { this.log.error('Error connecting to projector, camera and light', err) return false } this.log.info(`Connected to ${device} as PROJECTOR + CAMERA + LIGHT`, 'SERIAL', true, true) - } else if (type === 'projector,camera') { - this.connected.projector = device - this.connected.camera = device - this.arduino.aliasSerial('camera', device) + } else if (device === 'projector,camera') { + this.connected.projector = serial + this.connected.camera = serial + this.arduino.aliasSerial('camera', serial) try { - connectSuccess = await this.arduino.connect('projector', device, false) + connectSuccess = await this.arduino.connect('projector', serial, false) } catch (err) { this.log.error('Error connecting to projector and camera', err) return false } this.log.info(`Connected to ${device} as PROJECTOR + CAMERA`, 'SERIAL', true, true) - } else if (type === 'projector_second') { - this.connected.projector_second = device + } else if (device === 'projector_second') { + this.connected.projector_second = serial try { - connectSuccess = await this.arduino.connect('projector_second', device, false) + connectSuccess = await this.arduino.connect('projector_second', serial, false) } catch (err) { this.log.error('Error connecting to secondary projector', err) return false } this.log.info(`Connected to ${device} as PROJECTOR_SECOND`, 'SERIAL', true, true) - } else if (type === 'projector,projector_second') { - this.connected.projector = device - this.connected.projector_second = device - this.arduino.aliasSerial('projector_second', device) + } else if (device === 'projector,projector_second') { + this.connected.projector = serial + this.connected.projector_second = serial + this.arduino.aliasSerial('projector_second', serial) try { - connectSuccess = await this.arduino.connect('projector', device, false) + connectSuccess = await this.arduino.connect('projector', serial, false) } catch (err) { this.log.error('Error connecting to projector and secondary projector', err) return false } - } else if (type === 'camera_second') { - this.connected.camera_second = device + } else if (device === 'camera_second') { + this.connected.camera_second = serial try { - connectSuccess = await this.arduino.connect('camera_second', device, false) + connectSuccess = await this.arduino.connect('camera_second', serial, false) } catch (err) { console.error(err) return false } - } else if (type === 'camera,camera_second') { - this.connected.camera = device - this.connected.camera_second = device - this.arduino.aliasSerial('camera_second', device) + } else if (device === 'camera,camera_second') { + this.connected.camera = serial + this.connected.camera_second = serial + this.arduino.aliasSerial('camera_second', serial) try { - connectSuccess = await this.arduino.connect('camera', device, false) + connectSuccess = await this.arduino.connect('camera', serial, false) } catch (err) { this.log.error('Error connecting to camera, camera_secondary and projector', err) return false } - } else if (type === 'camera,projector,projector_second') { - this.connected.camera = device - this.connected.projector = device - this.connected.projector_second = device - this.arduino.aliasSerial('projector', device) - this.arduino.aliasSerial('projector_second', device) + } else if (device === 'camera,projector,projector_second') { + this.connected.camera = serial + this.connected.projector = serial + this.connected.projector_second = serial + this.arduino.aliasSerial('projector', serial) + this.arduino.aliasSerial('projector_second', serial) try { - connectSuccess = await this.arduino.connect('camera', device, false) + connectSuccess = await this.arduino.connect('camera', serial, false) } catch (err) { this.log.error('Error connecting to camera, projector and projector_second', err) return false } - } else if (type === 'camera,camera_second,projector') { - this.connected.camera = device - this.connected.camera_second = device - this.connected.projector = device - this.arduino.aliasSerial('camera_second', device) - this.arduino.aliasSerial('projector', device) + } else if (device === 'camera,camera_second,projector') { + this.connected.camera = serial + this.connected.camera_second = serial + this.connected.projector = serial + this.arduino.aliasSerial('camera_second', serial) + this.arduino.aliasSerial('projector', serial) try { - connectSuccess = await this.arduino.connect('camera', device, false) + connectSuccess = await this.arduino.connect('camera', serial, false) } catch (err) { this.log.error('Error connecting to camera, camera_second and projector', err) return false } - } else if (type === 'camera,camera_second,projector,projector_second') { - this.connected.camera = device - this.connected.camera_second = device - this.connected.projector = device - this.connected.projector_second = device - this.arduino.aliasSerial('camera_second', device) - this.arduino.aliasSerial('projector', device) - this.arduino.aliasSerial('projector_second', device) + } else if (device === 'camera,camera_second,projector,projector_second') { + this.connected.camera = serial + this.connected.camera_second = serial + this.connected.projector = serial + this.connected.projector_second = serial + this.arduino.aliasSerial('camera_second', serial) + this.arduino.aliasSerial('projector', serial) + this.arduino.aliasSerial('projector_second', serial) try { - connectSuccess = await this.arduino.connect('camera', device, false) + connectSuccess = await this.arduino.connect('camera', serial, false) } catch (err) { this.log.error('Error connecting to camera, camera_second, projector and projector_second', err) return false } - } else if (type === 'capper') { - this.connected.capper = device + } else if (device === 'capper') { + this.connected.capper = serial try { - connectSuccess = await this.arduino.connect('capper', device, false) + connectSuccess = await this.arduino.connect('capper', serial, false) } catch (err) { this.log.error('Error connecting capper', err) return false } - } else if (type === 'camera,capper') { - this.connected.camera = device - this.connected.capper = device - this.arduino.aliasSerial('capper', device) + } else if (device === 'camera,capper') { + this.connected.camera = serial + this.connected.capper = serial + this.arduino.aliasSerial('capper', serial) try { - connectSuccess = await this.arduino.connect('camera', device, false) + connectSuccess = await this.arduino.connect('camera', serial, false) } catch (err) { this.log.error('Error connecting to camera and capper', err) return false } - } else if (type === 'camera,capper,projector') { - this.connected.camera = device - this.connected.capper = device - this.connected.projector = device - this.arduino.aliasSerial('capper', device) - this.arduino.aliasSerial('projector', device) + } else if (device === 'camera,capper,projector') { + this.connected.camera = serial + this.connected.capper = serial + this.connected.projector = serial + this.arduino.aliasSerial('capper', serial) + this.arduino.aliasSerial('projector', serial) try { - connectSuccess = await this.arduino.connect('camera', device, false) + connectSuccess = await this.arduino.connect('camera', serial, false) } catch (err) { this.log.error('Error connecting to camera, capper and projector', err) return false } - } else if (type === 'camera,capper,projector,projector_second') { - this.connected.camera = device - this.connected.capper = device - this.connected.projector = device - this.connected.projector_second = device - this.arduino.aliasSerial('capper', device) - this.arduino.aliasSerial('projector', device) - this.arduino.aliasSerial('projector_second', device) + } else if (device === 'camera,capper,projector,projector_second') { + this.connected.camera = serial + this.connected.capper = serial + this.connected.projector = serial + this.connected.projector_second = serial + this.arduino.aliasSerial('capper', serial) + this.arduino.aliasSerial('projector', serial) + this.arduino.aliasSerial('projector_second', serial) try { - connectSuccess = await this.arduino.connect('camera', device, false) + connectSuccess = await this.arduino.connect('camera', serial, false) } catch (err) { this.log.error('Error connecting to camera, capper, projector and projector_second', err) return false @@ -423,11 +435,11 @@ class Devices { * **/ //Cases for 1 or 2 arduinos connected - private async all (devices : Device[]) { + private async all (serials : string[]) { let c : any = {} let p : any = {} let l : any = {} - let type : string; + let device : string; let d : any let cs : any = {} let ps : any = {} @@ -442,16 +454,16 @@ class Devices { capper : false } - for (let device of devices) { + for (let serial of serials) { try { - type = await this.distinguish(device) + device = await this.distinguish(serial) } catch (err) { this.log.error('Error distinguishing device', err) throw err } try { - await this.connectDevice(device, type) + await this.connectDevice(device, serial) } catch (err) { this.log.error('Error connecting to device', err) throw err @@ -496,23 +508,25 @@ class Devices { c.intval = this.settings.state.camera.intval } + //console.dir(this.arduino.alias); + //console.dir(this.arduino.serial); return this.ready(p, c, l, cs, ps, capper) } /** * **/ - private remember (which : string, device : any, type : string) { + private remember (device: string, serial : string, type : string) { let deviceEntry : any; const match = this.settings.state.devices.filter((dev : any) => { - if (dev[which] && dev[which] === device) { + if (dev[device] && dev[device] === serial) { return dev } }) if (match.length === 0) { deviceEntry = { - type + device, + serial } - deviceEntry[which] = device this.settings.state.devices.push(deviceEntry) this.settings.update('devices', this.settings.state.devices) this.settings.save() diff --git a/src/globals.d.ts b/src/globals.d.ts index 80861f1..243ac35 100644 --- a/src/globals.d.ts +++ b/src/globals.d.ts @@ -15,20 +15,24 @@ declare module 'winston'; declare module 'frame'; interface Device { - arduino : string; + serial : string; + device : string; } interface Arduino { hasState : any; + alias : any; + serial : any; + stateStr : any; send (id : string, cmd : string) : number; sendString (id : string, str : string) : any; enumerate () : any; - connect (id : string, device : Device, state : boolean) : any; + connect (device : string, serial : string, state : boolean) : any; verify () : any; distinguish () : any; fakeConnect ( id : string) : any; stateAsync (device : string, confirm: boolean) : any; state (serial: string, confirm: boolean) : number; close () : any; - aliasSerial ( id : string, device : Device) : any; + aliasSerial ( device : string, serial : string) : any; } diff --git a/src/proj/index.ts b/src/proj/index.ts index 641343a..036d868 100644 --- a/src/proj/index.ts +++ b/src/proj/index.ts @@ -64,6 +64,7 @@ class Projector { this.log.error(`Error setting ${this.id} direction`, err) } } + console.dir(ms) return await this.end(cmd, id, ms) } @@ -129,7 +130,7 @@ class Projector { * **/ async end (cmd : string, id : string, ms : number) { - let message : string = ''; + let message : string = '' if (cmd === this.cfg.arduino.cmd.projector_forward) { message = 'Projector set to FORWARD' } else if (cmd === this.cfg.arduino.cmd.projector_backward) { @@ -159,7 +160,7 @@ class Projector { } message += ` ${ms}ms` this.log.info(message, 'PROJECTOR') - return await this.ui.send(this.id, {cmd: cmd, id : id, ms: ms}) + return await this.ui.send(this.id, { cmd, id, ms }) } }