From 43ee0d0672a3433fc322a3c6a106d6374aed2411 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 23 Mar 2019 21:58:22 -0400 Subject: [PATCH] Sequence now runs entirely in the main process. Renderer no longer stores the sequence, it is a for loop inside the main process. --- app/data/cfg.json | 2 +- app/js/app.js | 1 + app/lib/sequencer/index.js | 55 +++++++++++++++++++-------- app/lib/sequencer/index.js.map | 2 +- app/lib/settings/index.js | 2 +- app/lib/settings/index.js.map | 2 +- app/lib/ui/devices.js | 8 +++- app/lib/ui/seq.js | 42 ++++++++++++++++++++- app/main.js | 2 +- app/package-lock.json | 2 +- app/package.json | 2 +- app/src/index.js | 1 + cli/data/cfg.json | 2 +- cli/lib/sequencer/index.js | 55 +++++++++++++++++++-------- cli/lib/sequencer/index.js.map | 2 +- cli/lib/settings/index.js | 2 +- cli/lib/settings/index.js.map | 2 +- cli/package-lock.json | 2 +- cli/package.json | 2 +- data/cfg.json | 2 +- lib/sequencer/index.js | 55 +++++++++++++++++++-------- lib/sequencer/index.js.map | 2 +- lib/settings/index.js | 2 +- lib/settings/index.js.map | 2 +- package-lock.json | 2 +- package.json | 2 +- src/sequencer/index.ts | 68 +++++++++++++++++++++++++--------- src/settings/index.ts | 2 +- 28 files changed, 239 insertions(+), 86 deletions(-) diff --git a/app/data/cfg.json b/app/data/cfg.json index 2d1595d..85f19de 100644 --- a/app/data/cfg.json +++ b/app/data/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.3.3", + "version": "1.4.0", "ext_port": 1111, "profiles": { "mcopy": { diff --git a/app/js/app.js b/app/js/app.js index 69b74ab..7994911 100644 --- a/app/js/app.js +++ b/app/js/app.js @@ -2568,4 +2568,5 @@ async function init () { light.init(); proj.init(); cam.init(); + seq.init(); }; \ No newline at end of file diff --git a/app/lib/sequencer/index.js b/app/lib/sequencer/index.js index 71b46dc..d851436 100644 --- a/app/lib/sequencer/index.js +++ b/app/lib/sequencer/index.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const Log = require("log"); let seq; class Sequencer { - constructor(cfg, cmd) { + constructor(cfg, cmd, ui) { this.running = false; this.paused = false; this.arr = []; @@ -12,19 +12,19 @@ class Sequencer { this.id = 'sequence'; this.cfg = cfg; this.cmd = cmd; + this.ui = ui; this.cmds(cfg.cmd); this.init(); } cmds(obj) { let keys = Object.keys(obj); - let key; - for (key in keys) { - this.CMDS[keys[key]] = key; + for (let key of keys) { + this.CMDS[obj[key]] = key; } } //currently called by ui async init() { - this.log = Log({ label: this.id }); + this.log = await Log({ label: this.id }); this.ipc = require('electron').ipcMain; this.listen(); } @@ -32,7 +32,6 @@ class Sequencer { this.ipc.on(this.id, this.listener.bind(this)); } async listener(event, arg) { - console.dir(arg); if (arg && arg.start) { this.start(arg); } @@ -49,14 +48,23 @@ class Sequencer { this.unsetSteps(arg.unset); } else if (arg && arg.loops) { - this.loops = arg.loops; + this.setLoops(arg.loops); } event.returnValue = true; } + setLoops(count) { + this.loops = count; + this.log.info(`Set loop count to ${count}`); + } setSteps(steps) { - console.dir(steps); + for (let step of steps) { + this.arr[step.x] = step; + } } unsetSteps(steps) { + for (let x of steps) { + this.arr[x] = undefined; + } } //new, replaces exec and init async start(arg) { @@ -68,20 +76,35 @@ class Sequencer { } this.running = true; this.paused = false; + //start sequence + this.log.info(`Starting sequence...`); for (let x = 0; x < this.loops; x++) { //start loop + this.log.info(`Starting loop ${x + 1}`); + this.ui.send(this.id, { loop: x, start: true }); for (let y = 0; y < this.arr.length; y++) { //start step + this.log.info(`Starting step ${y + 1} of loop ${x + 1}`); + this.ui.send(this.id, { step: y, start: true }); if (this.running) { while (this.paused) { await delay(42); } await this.step(y); } + else { + break; + } //end step + this.log.info(`Ended step ${y + 1} of loop ${x + 1}`); + this.ui.send(this.id, { step: y, stop: true }); } //end loop + this.log.info(`Ended loop ${x + 1}`); + this.ui.send(this.id, { loop: x, stop: true }); } + //end sequence + this.log.info(`Ended sequence`); } //new pause() { @@ -94,21 +117,23 @@ class Sequencer { this.running = false; //clear? } - async step(index) { + async step(x) { try { - await this.cmdMap(index); + await this.cmdMap(x); } catch (err) { throw err; } } - async cmdMap(index) { - const cmdOriginal = this.arr[index].cmd; + async cmdMap(x) { + const cmdOriginal = this.arr[x].cmd; const cmd = this.CMDS[cmdOriginal]; - return await this.cmd[cmd]; + this.log.info(`CMD: '${cmdOriginal}' -> ${cmd}`); + //I wrote this when I was very tired and delirious + return await this.cmd[cmd](); } } -module.exports = function (cfg, cmd) { - return new Sequencer(cfg, cmd); +module.exports = function (cfg, cmd, ui) { + return new Sequencer(cfg, cmd, ui); }; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/app/lib/sequencer/index.js.map b/app/lib/sequencer/index.js.map index 26a4a56..68c0ff7 100644 --- a/app/lib/sequencer/index.js.map +++ b/app/lib/sequencer/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequencer/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequencer/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/settings/index.js b/app/lib/settings/index.js index eb555af..e6819aa 100644 --- a/app/lib/settings/index.js +++ b/app/lib/settings/index.js @@ -81,7 +81,7 @@ class Settings { if (exists) { str = await fs.readFile(this.file, 'utf8'); this.state = JSON.parse(str); - console.dir(this.state); + //console.dir(this.state) } else { this.save(); diff --git a/app/lib/settings/index.js.map b/app/lib/settings/index.js.map index ed8aaf7..59256c4 100644 --- a/app/lib/settings/index.js.map +++ b/app/lib/settings/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/ui/devices.js b/app/lib/ui/devices.js index f20b22d..16c1a5f 100644 --- a/app/lib/ui/devices.js +++ b/app/lib/ui/devices.js @@ -91,6 +91,12 @@ devices.ready = function (event, arg) { } //devices.profile(arg.profile) } + + seq.set(0, cfg.cmd.camera_forward); + seq.set(1, cfg.cmd.projector_forward); + grid.state(0); + grid.state(1); + if (arg.projector_second) { //add second row of projector pads to grid } @@ -220,7 +226,7 @@ devices.digitalCb = function (evt, args) { seq.set(0, 'PF'); grid.state(0); - + seq.set(1, 'CF'); seq.setLight(1, color); grid.state(1); diff --git a/app/lib/ui/seq.js b/app/lib/ui/seq.js index f0fd98d..aff1538 100644 --- a/app/lib/ui/seq.js +++ b/app/lib/ui/seq.js @@ -10,6 +10,45 @@ seq.running = false; Sequence Object *******/ +seq.init = function () { + seq.listen(); +} + +seq.listen = function () { + ipcRenderer.on(seq.id, seq.listener); +} + +seq.listener = function (event, arg) { + console.log(JSON.stringify(arg)) + if (typeof arg.loop !== 'undefined' && arg.start) { + $('#loop_current').text(gui.fmtZero(arg.loop + 1, 6)); + } else if (typeof arg.loop !== 'undefined' && arg.stop) { + $('#loop_current').text(''); + } else if (typeof arg.step !== 'undefined' && arg.start) { + seq.activeStep(arg.step); + log.info(`Step ${arg.step} active`, 'SERIAL', true); + } else if (arg.step && arg.stop) { + seq.inactiveAll(); + } else if (arg.stop) { + log.info('Sequence stopped', 'SERIAL', true); + } else if (arg.start) { + // + } + return event.returnValue = true; +} + +seq.activeStep = function (x) { + seq.inactiveAll(); + console.log(`.row input[x=${x + ''}]`) + $(`.row input[x=${x + ''}]`).addClass('h'); + $(`#numbers div[x=${x + ''}]`).addClass('h'); +} + +seq.inactiveAll = function () { + $('.row input').removeClass('h'); + $('#numbers div').removeClass('h'); +} + seq.stop = function (s) { 'use strict'; ipcRenderer.send(seq.id, { stop : true }); @@ -18,7 +57,6 @@ seq.stop = function (s) { seq.start = function (start) { 'use strict'; seq.time = +new Date(); - ipcRenderer.send(seq.id, { start : true }); }; @@ -76,7 +114,7 @@ seq.setLoops = function (count) { 'use strict'; seq.loops = count; seq.stats(); - ipcRenderer.send(seq.id, { loops : seq.count }) + ipcRenderer.send(seq.id, { loops : seq.loops }) }; seq.stats = function () { diff --git a/app/main.js b/app/main.js index 433d687..8615e6b 100644 --- a/app/main.js +++ b/app/main.js @@ -123,7 +123,7 @@ var init = async function () { proj = require('proj')(arduino, cfg, mainWindow.webContents, dig) cmd = require('cmd')(cfg, proj, cam, light) - seq = require('sequencer')(cfg, cmd) + seq = require('sequencer')(cfg, cmd, mainWindow.webContents) } app.on('ready', init) diff --git a/app/package-lock.json b/app/package-lock.json index 7d90a4a..32c50a7 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -1,6 +1,6 @@ { "name": "mcopy-app", - "version": "1.3.2", + "version": "1.3.5", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/app/package.json b/app/package.json index 19246ee..da79745 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "mcopy-app", - "version": "1.3.4", + "version": "1.4.0", "description": "GUI for the mcopy small gauge film optical printer platform", "main": "main.js", "scripts": { diff --git a/app/src/index.js b/app/src/index.js index dfe91cd..4574f20 100644 --- a/app/src/index.js +++ b/app/src/index.js @@ -94,4 +94,5 @@ async function init () { light.init(); proj.init(); cam.init(); + seq.init(); }; \ No newline at end of file diff --git a/cli/data/cfg.json b/cli/data/cfg.json index 2d1595d..85f19de 100644 --- a/cli/data/cfg.json +++ b/cli/data/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.3.3", + "version": "1.4.0", "ext_port": 1111, "profiles": { "mcopy": { diff --git a/cli/lib/sequencer/index.js b/cli/lib/sequencer/index.js index 71b46dc..d851436 100644 --- a/cli/lib/sequencer/index.js +++ b/cli/lib/sequencer/index.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const Log = require("log"); let seq; class Sequencer { - constructor(cfg, cmd) { + constructor(cfg, cmd, ui) { this.running = false; this.paused = false; this.arr = []; @@ -12,19 +12,19 @@ class Sequencer { this.id = 'sequence'; this.cfg = cfg; this.cmd = cmd; + this.ui = ui; this.cmds(cfg.cmd); this.init(); } cmds(obj) { let keys = Object.keys(obj); - let key; - for (key in keys) { - this.CMDS[keys[key]] = key; + for (let key of keys) { + this.CMDS[obj[key]] = key; } } //currently called by ui async init() { - this.log = Log({ label: this.id }); + this.log = await Log({ label: this.id }); this.ipc = require('electron').ipcMain; this.listen(); } @@ -32,7 +32,6 @@ class Sequencer { this.ipc.on(this.id, this.listener.bind(this)); } async listener(event, arg) { - console.dir(arg); if (arg && arg.start) { this.start(arg); } @@ -49,14 +48,23 @@ class Sequencer { this.unsetSteps(arg.unset); } else if (arg && arg.loops) { - this.loops = arg.loops; + this.setLoops(arg.loops); } event.returnValue = true; } + setLoops(count) { + this.loops = count; + this.log.info(`Set loop count to ${count}`); + } setSteps(steps) { - console.dir(steps); + for (let step of steps) { + this.arr[step.x] = step; + } } unsetSteps(steps) { + for (let x of steps) { + this.arr[x] = undefined; + } } //new, replaces exec and init async start(arg) { @@ -68,20 +76,35 @@ class Sequencer { } this.running = true; this.paused = false; + //start sequence + this.log.info(`Starting sequence...`); for (let x = 0; x < this.loops; x++) { //start loop + this.log.info(`Starting loop ${x + 1}`); + this.ui.send(this.id, { loop: x, start: true }); for (let y = 0; y < this.arr.length; y++) { //start step + this.log.info(`Starting step ${y + 1} of loop ${x + 1}`); + this.ui.send(this.id, { step: y, start: true }); if (this.running) { while (this.paused) { await delay(42); } await this.step(y); } + else { + break; + } //end step + this.log.info(`Ended step ${y + 1} of loop ${x + 1}`); + this.ui.send(this.id, { step: y, stop: true }); } //end loop + this.log.info(`Ended loop ${x + 1}`); + this.ui.send(this.id, { loop: x, stop: true }); } + //end sequence + this.log.info(`Ended sequence`); } //new pause() { @@ -94,21 +117,23 @@ class Sequencer { this.running = false; //clear? } - async step(index) { + async step(x) { try { - await this.cmdMap(index); + await this.cmdMap(x); } catch (err) { throw err; } } - async cmdMap(index) { - const cmdOriginal = this.arr[index].cmd; + async cmdMap(x) { + const cmdOriginal = this.arr[x].cmd; const cmd = this.CMDS[cmdOriginal]; - return await this.cmd[cmd]; + this.log.info(`CMD: '${cmdOriginal}' -> ${cmd}`); + //I wrote this when I was very tired and delirious + return await this.cmd[cmd](); } } -module.exports = function (cfg, cmd) { - return new Sequencer(cfg, cmd); +module.exports = function (cfg, cmd, ui) { + return new Sequencer(cfg, cmd, ui); }; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/sequencer/index.js.map b/cli/lib/sequencer/index.js.map index 26a4a56..68c0ff7 100644 --- a/cli/lib/sequencer/index.js.map +++ b/cli/lib/sequencer/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequencer/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequencer/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/lib/settings/index.js b/cli/lib/settings/index.js index eb555af..e6819aa 100644 --- a/cli/lib/settings/index.js +++ b/cli/lib/settings/index.js @@ -81,7 +81,7 @@ class Settings { if (exists) { str = await fs.readFile(this.file, 'utf8'); this.state = JSON.parse(str); - console.dir(this.state); + //console.dir(this.state) } else { this.save(); diff --git a/cli/lib/settings/index.js.map b/cli/lib/settings/index.js.map index ed8aaf7..59256c4 100644 --- a/cli/lib/settings/index.js.map +++ b/cli/lib/settings/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/cli/package-lock.json b/cli/package-lock.json index 06890d0..a78a253 100644 --- a/cli/package-lock.json +++ b/cli/package-lock.json @@ -1,6 +1,6 @@ { "name": "mcopy-cli", - "version": "1.3.2", + "version": "1.3.5", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/cli/package.json b/cli/package.json index dc442c3..f235636 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "mcopy-cli", - "version": "1.3.4", + "version": "1.4.0", "description": "CLI for controlling the mcopy optical printer platform", "main": "index.js", "scripts": { diff --git a/data/cfg.json b/data/cfg.json index 9d68eb6..85f19de 100644 --- a/data/cfg.json +++ b/data/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.3.4", + "version": "1.4.0", "ext_port": 1111, "profiles": { "mcopy": { diff --git a/lib/sequencer/index.js b/lib/sequencer/index.js index 71b46dc..d851436 100644 --- a/lib/sequencer/index.js +++ b/lib/sequencer/index.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const Log = require("log"); let seq; class Sequencer { - constructor(cfg, cmd) { + constructor(cfg, cmd, ui) { this.running = false; this.paused = false; this.arr = []; @@ -12,19 +12,19 @@ class Sequencer { this.id = 'sequence'; this.cfg = cfg; this.cmd = cmd; + this.ui = ui; this.cmds(cfg.cmd); this.init(); } cmds(obj) { let keys = Object.keys(obj); - let key; - for (key in keys) { - this.CMDS[keys[key]] = key; + for (let key of keys) { + this.CMDS[obj[key]] = key; } } //currently called by ui async init() { - this.log = Log({ label: this.id }); + this.log = await Log({ label: this.id }); this.ipc = require('electron').ipcMain; this.listen(); } @@ -32,7 +32,6 @@ class Sequencer { this.ipc.on(this.id, this.listener.bind(this)); } async listener(event, arg) { - console.dir(arg); if (arg && arg.start) { this.start(arg); } @@ -49,14 +48,23 @@ class Sequencer { this.unsetSteps(arg.unset); } else if (arg && arg.loops) { - this.loops = arg.loops; + this.setLoops(arg.loops); } event.returnValue = true; } + setLoops(count) { + this.loops = count; + this.log.info(`Set loop count to ${count}`); + } setSteps(steps) { - console.dir(steps); + for (let step of steps) { + this.arr[step.x] = step; + } } unsetSteps(steps) { + for (let x of steps) { + this.arr[x] = undefined; + } } //new, replaces exec and init async start(arg) { @@ -68,20 +76,35 @@ class Sequencer { } this.running = true; this.paused = false; + //start sequence + this.log.info(`Starting sequence...`); for (let x = 0; x < this.loops; x++) { //start loop + this.log.info(`Starting loop ${x + 1}`); + this.ui.send(this.id, { loop: x, start: true }); for (let y = 0; y < this.arr.length; y++) { //start step + this.log.info(`Starting step ${y + 1} of loop ${x + 1}`); + this.ui.send(this.id, { step: y, start: true }); if (this.running) { while (this.paused) { await delay(42); } await this.step(y); } + else { + break; + } //end step + this.log.info(`Ended step ${y + 1} of loop ${x + 1}`); + this.ui.send(this.id, { step: y, stop: true }); } //end loop + this.log.info(`Ended loop ${x + 1}`); + this.ui.send(this.id, { loop: x, stop: true }); } + //end sequence + this.log.info(`Ended sequence`); } //new pause() { @@ -94,21 +117,23 @@ class Sequencer { this.running = false; //clear? } - async step(index) { + async step(x) { try { - await this.cmdMap(index); + await this.cmdMap(x); } catch (err) { throw err; } } - async cmdMap(index) { - const cmdOriginal = this.arr[index].cmd; + async cmdMap(x) { + const cmdOriginal = this.arr[x].cmd; const cmd = this.CMDS[cmdOriginal]; - return await this.cmd[cmd]; + this.log.info(`CMD: '${cmdOriginal}' -> ${cmd}`); + //I wrote this when I was very tired and delirious + return await this.cmd[cmd](); } } -module.exports = function (cfg, cmd) { - return new Sequencer(cfg, cmd); +module.exports = function (cfg, cmd, ui) { + return new Sequencer(cfg, cmd, ui); }; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/sequencer/index.js.map b/lib/sequencer/index.js.map index 26a4a56..68c0ff7 100644 --- a/lib/sequencer/index.js.map +++ b/lib/sequencer/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequencer/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequencer/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/settings/index.js b/lib/settings/index.js index eb555af..e6819aa 100644 --- a/lib/settings/index.js +++ b/lib/settings/index.js @@ -81,7 +81,7 @@ class Settings { if (exists) { str = await fs.readFile(this.file, 'utf8'); this.state = JSON.parse(str); - console.dir(this.state); + //console.dir(this.state) } else { this.save(); diff --git a/lib/settings/index.js.map b/lib/settings/index.js.map index ed8aaf7..59256c4 100644 --- a/lib/settings/index.js.map +++ b/lib/settings/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 037a53c..d5fefb7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "mcopy", - "version": "1.3.5", + "version": "1.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 68c47fa..003854d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mcopy", - "version": "1.3.5", + "version": "1.4.0", "description": "Small gauge film optical printer platform", "main": "build.js", "directories": { diff --git a/src/sequencer/index.ts b/src/sequencer/index.ts index 6f3a6a5..1d4d548 100644 --- a/src/sequencer/index.ts +++ b/src/sequencer/index.ts @@ -1,5 +1,6 @@ 'use strict'; +import uuid from 'uuid/v4'; import Log = require('log'); let seq : Sequencer; @@ -16,27 +17,28 @@ class Sequencer { private cmd : any; private CMDS : any = {}; private ipc : any; + private ui : any; private log : any; private id : string = 'sequence'; - constructor (cfg : any, cmd : any) { + constructor (cfg : any, cmd : any, ui : any) { this.cfg = cfg; this.cmd = cmd; + this.ui = ui; this.cmds(cfg.cmd); this.init(); } private cmds (obj : any) { let keys : string[] = Object.keys(obj); - let key : string; - for (key in keys) { - this.CMDS[keys[key]] = key; + for (let key of keys) { + this.CMDS[obj[key]] = key; } } //currently called by ui private async init () { - this.log = Log({ label : this.id }) + this.log = await Log({ label : this.id }) this.ipc = require('electron').ipcMain; this.listen(); } @@ -46,7 +48,6 @@ class Sequencer { } private async listener (event : any, arg : any) { - console.dir(arg) if (arg && arg.start) { this.start(arg); } else if (arg && arg.stop) { @@ -58,17 +59,28 @@ class Sequencer { } else if (arg && arg.unset) { this.unsetSteps(arg.unset); } else if (arg && arg.loops) { - this.loops = arg.loops; + this.setLoops(arg.loops); } event.returnValue = true; } - public setSteps (steps : any) { - console.dir(steps) + public setLoops (count : number) { + this.loops = count; + this.log.info(`Set loop count to ${count}`); } - public unsetSteps (steps : number[]) { + public setSteps (steps : any[]) { + for (let step of steps) { + this.arr[step.x] = step; + } } + + public unsetSteps (steps : number[]) { + for (let x of steps) { + this.arr[x] = undefined; + } + } + //new, replaces exec and init public async start (arg : any) { if (arg && arg.arr) { @@ -81,25 +93,44 @@ class Sequencer { this.running = true; this.paused = false; + //start sequence + this.log.info(`Starting sequence...`) + for (let x = 0; x < this.loops; x++) { //start loop + this.log.info(`Starting loop ${x + 1}`) + this.ui.send(this.id, { loop : x, start : true }); + for (let y = 0; y < this.arr.length; y++) { //start step + this.log.info(`Starting step ${y + 1} of loop ${x + 1}`) + this.ui.send(this.id, { step : y, start : true }); + if (this.running) { while (this.paused) { await delay(42); } await this.step(y); + } else { + break } //end step + this.log.info(`Ended step ${y + 1} of loop ${x + 1}`) + this.ui.send(this.id, { step : y, stop : true }); } //end loop + this.log.info(`Ended loop ${x + 1}`) + this.ui.send(this.id, { loop : x, stop : true }); } + //end sequence + this.log.info(`Ended sequence`) } + //new public pause () { this.paused = true; } + /** * Stop the sequence **/ @@ -109,22 +140,23 @@ class Sequencer { } - private async step (index : number) { + private async step (x: number) { try { - await this.cmdMap(index) + await this.cmdMap(x) } catch (err) { throw err; } - } - private async cmdMap (index : number) { - const cmdOriginal : string = this.arr[index].cmd; + private async cmdMap (x : number) { + const cmdOriginal : string = this.arr[x].cmd; const cmd : string = this.CMDS[cmdOriginal]; - return await this.cmd[cmd]; + this.log.info(`CMD: '${cmdOriginal}' -> ${cmd}`); + //I wrote this when I was very tired and delirious + return await this.cmd[cmd](); } } -module.exports = function (cfg : any, cmd : any) { - return new Sequencer(cfg, cmd); +module.exports = function (cfg : any, cmd : any, ui : any) { + return new Sequencer(cfg, cmd, ui); } diff --git a/src/settings/index.ts b/src/settings/index.ts index 726e63d..565015b 100644 --- a/src/settings/index.ts +++ b/src/settings/index.ts @@ -82,7 +82,7 @@ class Settings { if (exists) { str = await fs.readFile(this.file, 'utf8'); this.state = JSON.parse(str); - console.dir(this.state) + //console.dir(this.state) } else { this.save(); }