From 71e4bea384dbf4063a239b85a469fa307881989c Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 16 Jun 2023 23:04:16 -0400 Subject: [PATCH] Preliminary state support in arduino library. Currently confirms the negative state. Might want to push it until after verify, out of enumerate. --- app/lib/arduino/index.js | 37 +++++++++++++++++++++++++------ app/lib/arduino/index.js.map | 2 +- src/arduino/index.ts | 43 ++++++++++++++++++++++++++++-------- 3 files changed, 65 insertions(+), 17 deletions(-) diff --git a/app/lib/arduino/index.js b/app/lib/arduino/index.js index 1af0766..ddd47a6 100644 --- a/app/lib/arduino/index.js +++ b/app/lib/arduino/index.js @@ -30,6 +30,7 @@ class Arduino { this.known = KNOWN; this.alias = {}; this.serial = { connect: {}, projector: {}, camera: {}, light: {} }; + this.hasState = { projector: false, camera: false, light: false }; this.baud = 57600; this.queue = {}; this.timer = 0; @@ -141,12 +142,26 @@ class Arduino { return writeSuccess; } } - async stateAsync(device) { + async stateAsync(device, confirm = false) { const cmd = cfg.arduino.cmd.state; return new Promise((resolve, reject) => { - this.queue[cmd] = (ms) => { - return resolve(ms); + this.queue[cmd] = (state) => { + if (confirm) { + this.hasState[device] = true; + this.log.info(`Device ${device} supports state [${state}]`); + } + return resolve(state); }; + if (confirm) { + setTimeout(function () { + if (typeof this.queue[cmd] !== 'undefined') { + delete this.queue[cmd]; + this.hasState[device] = false; + this.log.info(`Device ${device} does not support state`); + return resolve(null); + } + }.bind(this), 100); + } return this.serial[device].write(cmd, (err, results) => { if (err) { //this.log.error(err) @@ -155,17 +170,17 @@ class Arduino { }); }); } - async state(serial) { + async state(serial, confirm = false) { const device = this.alias[serial]; let results; if (this.locks[serial]) { - return -1; + return null; } this.timer = new Date().getTime(); this.locks[serial] = true; await delay_1.delay(cfg.arduino.serialDelay); try { - results = await this.stateAsync(device); + results = await this.stateAsync(device, confirm); } catch (e) { return this.log.error(e); @@ -204,7 +219,9 @@ class Arduino { delete this.queue[data]; } else if (data[0] === cfg.arduino.cmd.state) { - complete = this.queue[data](ms); + complete = this.queue[cfg.arduino.cmd.state](ms); + 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}`); @@ -255,6 +272,12 @@ class Arduino { return await this.confirmEnd(d); }); } + try { + await this.state(serial, true); + } + catch (e) { + this.log.error(`failed to establish state capabilities` + e); + } return resolve(this.path[serial]); }); } diff --git a/app/lib/arduino/index.js.map b/app/lib/arduino/index.js.map index bc84e23..f4830bc 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":"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"} \ No newline at end of file diff --git a/src/arduino/index.ts b/src/arduino/index.ts index aea6851..41b86c6 100644 --- a/src/arduino/index.ts +++ b/src/arduino/index.ts @@ -37,6 +37,7 @@ class Arduino { private known : string[] = KNOWN; private alias : any = {}; private serial : any = { connect : {}, projector : {}, camera : {}, light : {} }; + private hasState : any = { projector : false, camera : false, light : false }; private baud : number = 57600; private queue : any = {}; private timer : number = 0; @@ -150,11 +151,25 @@ class Arduino { } } - async stateAsync (device : string) : Promise { + async stateAsync (device : string, confirm : boolean = false) : Promise { const cmd : string = cfg.arduino.cmd.state return new Promise ((resolve, reject) => { - this.queue[cmd] = (ms : number) => { - return resolve(ms) + this.queue[cmd] = (state : string) => { + if (confirm) { + this.hasState[device] = true + this.log.info(`Device ${device} supports state [${state}]`) + } + return resolve(state) + } + if (confirm) { + setTimeout(function () { + if (typeof this.queue[cmd] !== 'undefined') { + delete this.queue[cmd] + this.hasState[device] = false + this.log.info(`Device ${device} does not support state`) + return resolve(null) + } + }.bind(this), 100) } return this.serial[device].write(cmd, (err : any, results : any) => { if (err) { @@ -165,18 +180,18 @@ class Arduino { }) } - async state (serial : string) : Promise{ + async state (serial : string, confirm : boolean = false) : Promise{ const device : any = this.alias[serial] - let results : number + let results : string if (this.locks[serial]) { - return -1 + return null } this.timer = new Date().getTime() this.locks[serial] = true await delay(cfg.arduino.serialDelay) try { - results = await this.stateAsync(device) + results = await this.stateAsync(device, confirm) } catch (e) { return this.log.error(e) } @@ -205,7 +220,7 @@ class Arduino { }) } - end (serial : string, data : string) : number { + end (serial : string, data : string) : any { const end : number = new Date().getTime() const ms : number = end - this.timer let complete : any @@ -216,9 +231,12 @@ class Arduino { eventEmitter.emit('arduino_end', data) delete this.queue[data] } else if (data[0] === cfg.arduino.cmd.state) { - complete = this.queue[data](ms) + complete = this.queue[cfg.arduino.cmd.state](ms) + 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}`) + //error state //stop sequence //throw error in ui @@ -265,6 +283,13 @@ class Arduino { return await this.confirmEnd(d) }) } + + try { + await this.state(serial, true) + } catch (e) { + this.log.error(`failed to establish state capabilities` + e) + } + return resolve(this.path[serial]) }) }