Use the import Log = require() method of including log lib. This is cleaner and easier to read when parsing dependencies.

This commit is contained in:
mmcwilliams 2019-03-21 18:03:53 -04:00
parent 478799965e
commit fc3cc96cd8
38 changed files with 702 additions and 502 deletions

View File

@ -1,9 +1,10 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
//import Log = require('log');
const delay = require("delay");
const SerialPort = require('serialport'); const SerialPort = require('serialport');
const Readline = SerialPort.parsers.Readline; const Readline = SerialPort.parsers.Readline;
const exec = require('child_process').exec; const exec = require('child_process').exec;
const delay = require("delay");
const parser = new Readline(''); const parser = new Readline('');
const newlineRe = new RegExp('\n', 'g'); const newlineRe = new RegExp('\n', 'g');
const returnRe = new RegExp('\r', 'g'); const returnRe = new RegExp('\r', 'g');

File diff suppressed because one or more lines are too long

View File

@ -1,25 +1,27 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const Intval = require("intval"); const Intval = require("intval");
const Log = require("log");
/** class representing camera functions **/ /** class representing camera functions **/
class Camera { class Camera {
/** /**
* *
**/ **/
constructor(arduino, cfg, ui) { constructor(arduino, cfg, ui, dig) {
this.state = { dir: true, digital: false }; this.state = { dir: true, digital: false };
this.arduino = null; this.arduino = null;
this.intval = null; this.intval = null;
this.arduino = arduino; this.arduino = arduino;
this.cfg = cfg; this.cfg = cfg;
this.ui = ui; this.ui = ui;
this.dig = dig;
this.init(); this.init();
} }
/** /**
* *
**/ **/
async init() { async init() {
this.log = await require('log')({ label: 'cam' }); this.log = await Log({ label: 'cam' });
this.ipc = require('electron').ipcMain; this.ipc = require('electron').ipcMain;
this.listen(); this.listen();
} }
@ -67,9 +69,9 @@ class Camera {
async move(frame, id) { async move(frame, id) {
const cmd = this.cfg.arduino.cmd.camera; const cmd = this.cfg.arduino.cmd.camera;
let ms; let ms;
//if (this.state.digital) { if (this.dig.state.enabled) {
//await this.dig.start() await this.dig.start();
//} }
if (this.intval) { if (this.intval) {
try { try {
ms = await this.intval.move(); ms = await this.intval.move();
@ -86,9 +88,9 @@ class Camera {
this.log.error(err); this.log.error(err);
} }
} }
//if (this.state.digital) { if (this.dig.state.enabled) {
// await this.dig.end() await this.dig.end();
//} }
this.log.info('Camera move time', { ms }); this.log.info('Camera move time', { ms });
return this.end(cmd, id, ms); return this.end(cmd, id, ms);
} }
@ -175,9 +177,8 @@ class Camera {
this.log.info(message, 'CAMERA', true, true); this.log.info(message, 'CAMERA', true, true);
this.ui.send('cam', { cmd: cmd, id: id, ms: ms }); this.ui.send('cam', { cmd: cmd, id: id, ms: ms });
} }
;
} }
module.exports = function (arduino, cfg, ui) { module.exports = function (arduino, cfg, ui, dig) {
return new Camera(arduino, cfg, ui); return new Camera(arduino, cfg, ui, dig);
}; };
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,56 +1,129 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const delay = require("delay"); const delay = require("delay");
const dig = {}; const Log = require("log");
dig.state = { class Digital {
/**
*
**/
constructor(display, ffmpeg, ffprobe, ui, light) {
this.state = {
frame: 0, frame: 0,
frames: 0, frames: 0,
path: null, path: null,
fileName: null, fileName: null,
info: {}, info: {},
dir: true dir: true,
}; enabled: false
dig.set = function (dir) { };
dig.state.dir = dir; this.display = display;
}; this.ffmpeg = ffmpeg;
dig.move = async function () { this.ffprobe = ffprobe;
this.ui = ui;
this.light = light;
this.init();
}
/**
*
**/
async init() {
this.log = await Log({ label: 'digital' });
this.ipc = require('electron').ipcMain;
this.listen();
}
/**
*
**/
listen() {
this.ipc.on('digital', this.connectDigital.bind(this));
}
/**
*
**/
set(dir) {
this.state.dir = dir;
}
/**
*
**/
async move() {
let start = +new Date(); let start = +new Date();
let last = dig.state.dir + 0; if (this.state.dir) {
if (dig.state.dir) { this.state.frame++;
dig.state.frame++;
} }
else { else {
dig.state.frame--; this.state.frame--;
} }
if (dig.state.frame < 1) { if (this.state.frame < 1) {
dig.state.frame = 1; this.state.frame = 1;
} }
return (+new Date()) - start; return (+new Date()) - start;
}; }
dig.start = async function (lightState) { /**
*
**/
async start() {
try { try {
await dig.ffmpeg.clearAll(); await this.ffmpeg.clearAll();
} }
catch (err) { catch (err) {
console.error(err); console.error(err);
throw err;
} }
try { try {
await dig.ffmpeg.frame(dig.state, lightState); await this.ffmpeg.frame(this.state, this.light.state);
} }
catch (err) { catch (err) {
console.error(err); console.error(err);
throw err;
} }
dig.display.start(dig.state.frame); this.display.start(this.state.frame);
await delay(20); await delay(20);
}; }
dig.end = async function () { /**
*
**/
async end() {
await delay(20); await delay(20);
dig.display.end(); this.display.end();
}; }
module.exports = (display, ffmpeg, ffprobe) => { /**
dig.display = display; * Use a file as the "digital" source on "projector"
dig.ffmpeg = ffmpeg; *
dig.ffprobe = ffprobe; **/
return dig; async connectDigital(evt, arg) {
let info;
let frames = 0;
try {
info = await this.ffprobe.info(arg.path);
}
catch (err) {
//this.log.error(err, 'DIGITAL', true, true);
this.state.enabled = false;
await this.ui.send('digital', { valid: false });
return false;
}
try {
frames = await this.ffprobe.frames(arg.path);
}
catch (err) {
this.log.error(err, 'DIGITAL', true, true);
this.state.enabled = false;
await this.ui.send('digital', { valid: false });
return false;
}
this.state.frame = 0;
this.state.path = arg.path;
this.state.fileName = arg.fileName;
this.state.frames = frames;
this.state.info = info;
this.log.info(`Opened ${this.state.fileName}`, 'DIGITAL', true, true);
this.log.info(`Frames : ${frames}`, 'DIGITAL', true, true);
this.state.enabled = true;
return await this.ui.send('digital', { valid: true, state: JSON.stringify(this.state) });
}
}
module.exports = (display, ffmpeg, ffprobe, ui, light) => {
return new Digital(display, ffmpeg, ffprobe, ui, light);
}; };
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

View File

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/digital/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,+BAAgC;AAEhC,MAAM,GAAG,GAAS,EAAE,CAAC;AACrB,GAAG,CAAC,KAAK,GAAG;IACX,KAAK,EAAG,CAAC;IACT,MAAM,EAAG,CAAC;IACV,IAAI,EAAG,IAAI;IACX,QAAQ,EAAG,IAAI;IACf,IAAI,EAAG,EAAE;IACT,GAAG,EAAG,IAAI;CACV,CAAC;AAEF,GAAG,CAAC,GAAG,GAAI,UAAU,GAAa;IACjC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;AACrB,CAAC,CAAA;AAED,GAAG,CAAC,IAAI,GAAG,KAAK;IACf,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;IACvB,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;QAClB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;KACjB;SAAM;QACN,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;KACjB;IACD,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE;QACxB,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAA;KACnB;IACD,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAA;AAC7B,CAAC,CAAA;AAED,GAAG,CAAC,KAAK,GAAG,KAAK,WAAW,UAAoB;IAC/C,IAAI;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;KAC3B;IAAC,OAAO,GAAG,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KAClB;IAED,IAAI;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;KAC7C;IAAC,OAAO,GAAG,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KAClB;IAED,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAA;AAChB,CAAC,CAAA;AAED,GAAG,CAAC,GAAG,GAAG,KAAK;IACd,MAAM,KAAK,CAAC,EAAE,CAAC,CAAA;IACf,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,CAAC,OAAO,GAAG,CAAC,OAAa,EAAE,MAAY,EAAE,OAAa,EAAE,EAAE;IAC/D,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACpB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,OAAO,GAAG,CAAC;AACZ,CAAC,CAAA"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/digital/index.ts"],"names":[],"mappings":"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"}

View File

@ -1,6 +1,7 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const delay = require("delay"); const delay = require("delay");
const Log = require("log");
class Light { class Light {
/** /**
* *
@ -16,7 +17,7 @@ class Light {
* *
**/ **/
async init() { async init() {
this.log = await require('log')({ label: 'light' }); this.log = await Log({ label: 'light' });
this.ipc = require('electron').ipcMain; this.ipc = require('electron').ipcMain;
this.listen(); this.listen();
} }

View File

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/light/index.ts"],"names":[],"mappings":"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"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/light/index.ts"],"names":[],"mappings":"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"}

View File

@ -1,4 +1,7 @@
"use strict";
/** class representing the Projector features **/ /** class representing the Projector features **/
Object.defineProperty(exports, "__esModule", { value: true });
const Log = require("log");
class Projector { class Projector {
/** /**
* *
@ -16,7 +19,7 @@ class Projector {
* *
**/ **/
async init() { async init() {
this.log = await require('log')({ label: 'proj' }); this.log = await Log({ label: 'proj' });
this.ipc = require('electron').ipcMain; this.ipc = require('electron').ipcMain;
this.listen(); this.listen();
} }
@ -25,7 +28,6 @@ class Projector {
**/ **/
listen() { listen() {
this.ipc.on('proj', this.listener.bind(this)); this.ipc.on('proj', this.listener.bind(this));
this.ipc.on('digital', this.connectDigital.bind(this));
} }
/** /**
* *
@ -40,8 +42,8 @@ class Projector {
cmd = this.cfg.arduino.cmd.proj_backward; cmd = this.cfg.arduino.cmd.proj_backward;
} }
this.state.dir = dir; this.state.dir = dir;
if (this.state.digital) { if (this.dig.state.enabled) {
//this.dig.set(dir) this.dig.set(dir);
} }
else { else {
try { try {
@ -59,9 +61,9 @@ class Projector {
async move(frame, id) { async move(frame, id) {
const cmd = this.cfg.arduino.cmd.projector; const cmd = this.cfg.arduino.cmd.projector;
let ms; let ms;
if (this.state.digital) { if (this.dig.state.enabled) {
try { try {
//ms = await this.dig.move() ms = await this.dig.move();
} }
catch (err) { catch (err) {
this.log.error(err); this.log.error(err);
@ -127,41 +129,6 @@ class Projector {
this.log.info(message, 'PROJECTOR'); this.log.info(message, 'PROJECTOR');
return await this.ui.send('proj', { cmd: cmd, id: id, ms: ms }); return await this.ui.send('proj', { cmd: cmd, id: id, ms: ms });
} }
/**
* Use a file as the "digital" source on "projector"
*
**/
async connectDigital(evt, arg) {
let info;
let frames = 0;
try {
info = await this.dig.ffprobe.info(arg.path);
}
catch (err) {
this.log.error(err, 'DIGITAL', true, true);
this.state.digital = false;
await this.ui.send('digital', { valid: false });
return false;
}
try {
frames = await this.dig.ffprobe.frames(arg.path);
}
catch (err) {
this.log.error(err, 'DIGITAL', true, true);
this.state.digital = false;
await this.ui.send('digital', { valid: false });
return false;
}
this.dig.state.frame = 0;
this.dig.state.path = arg.path;
this.dig.state.fileName = arg.fileName;
this.dig.state.frames = frames;
this.dig.state.info = info;
this.log.info(`Opened ${this.dig.state.fileName}`, 'DIGITAL', true, true);
this.log.info(`Frames : ${frames}`, 'DIGITAL', true, true);
this.state.digital = true;
return await this.ui.send('digital', { valid: true, state: JSON.stringify(this.dig.state) });
}
} }
module.exports = function (arduino, cfg, ui, dig) { module.exports = function (arduino, cfg, ui, dig) {
return new Projector(arduino, cfg, ui, dig); return new Projector(arduino, cfg, ui, dig);

File diff suppressed because one or more lines are too long

View File

@ -1,83 +1,107 @@
'use strict' 'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const os = require('os'); const os = require("os");
const path = require('path'); const path = require("path");
const fs = require('fs-extra'); const fs = require("fs-extra");
const settings = {}; class Settings {
/**
settings.file = path.join(os.homedir(), `/.mcopy/settings.json`); *
settings.state = { **/
server : { constructor() {
port : 1111, this.file = path.join(os.homedir(), `/.mcopy/settings.json`);
enabled : true this.state = {
server: {
port: 1111,
enabled: true
}, },
devices : [], devices: [],
profile : 'mcopy', profile: 'mcopy',
camera : {}, camera: {},
projector : {}, projector: {},
light : {} light: {}
} };
}
settings.checkDir = async function () { /**
*
**/
async checkDir() {
const dir = path.join(os.homedir(), '.mcopy/'); const dir = path.join(os.homedir(), '.mcopy/');
const exists = await fs.exists(dir) const exists = await fs.exists(dir);
if (!exists) { if (!exists) {
try { try {
await fs.mkdir(dir); await fs.mkdir(dir);
} catch (err) { }
if (err.code === 'EEXIST') return true catch (err) {
if (err.code === 'EEXIST')
return true;
console.error(err); console.error(err);
} }
} }
return true return true;
} }
/**
settings.save = async function () { *
const str = JSON.stringify(settings.state, null, '\t'); **/
settings.checkDir(); async save() {
const str = JSON.stringify(this.state, null, '\t');
this.checkDir();
try { try {
await fs.writeFile(settings.file, str, 'utf8'); await fs.writeFile(this.file, str, 'utf8');
} catch (err) { }
catch (err) {
console.error(err); console.error(err);
} }
} }
settings.update = function (key, val) { /**
settings.state[key] = val; *
} **/
update(key, val) {
settings.get = function (key) { this.state[key] = val;
return settings.state[key]; }
} /**
*
settings.all = function () { **/
return settings.state; get(key) {
} return this.state[key];
}
settings.restore = async function () { /**
*
**/
all() {
return this.state;
}
/**
*
**/
async restore() {
let exists; let exists;
let str; let str;
this.checkDir();
settings.checkDir(); exists = await fs.exists(this.file);
exists = await fs.exists(settings.file);
if (exists) { if (exists) {
str = await fs.readFile(settings.file, 'utf8'); str = await fs.readFile(this.file, 'utf8');
settings.state = JSON.parse(str); this.state = JSON.parse(str);
} else {
settings.save();
} }
} else {
this.save();
settings.reset = async function () { }
const exists = await fs.exists(settings.file); }
/**
*
**/
async reset() {
const exists = await fs.exists(this.file);
if (exists) { if (exists) {
try { try {
await fs.unlink(settings.file); await fs.unlink(this.file);
} catch (err) { }
catch (err) {
console.error(err); console.error(err);
} }
} }
settings.restore(); this.restore();
}; }
;
module.exports = settings; }
module.exports = new Settings();
//# sourceMappingURL=index.js.map

View File

@ -1,9 +1,10 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
//import Log = require('log');
const delay = require("delay");
const SerialPort = require('serialport'); const SerialPort = require('serialport');
const Readline = SerialPort.parsers.Readline; const Readline = SerialPort.parsers.Readline;
const exec = require('child_process').exec; const exec = require('child_process').exec;
const delay = require("delay");
const parser = new Readline(''); const parser = new Readline('');
const newlineRe = new RegExp('\n', 'g'); const newlineRe = new RegExp('\n', 'g');
const returnRe = new RegExp('\r', 'g'); const returnRe = new RegExp('\r', 'g');

File diff suppressed because one or more lines are too long

View File

@ -1,25 +1,27 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const Intval = require("intval"); const Intval = require("intval");
const Log = require("log");
/** class representing camera functions **/ /** class representing camera functions **/
class Camera { class Camera {
/** /**
* *
**/ **/
constructor(arduino, cfg, ui) { constructor(arduino, cfg, ui, dig) {
this.state = { dir: true, digital: false }; this.state = { dir: true, digital: false };
this.arduino = null; this.arduino = null;
this.intval = null; this.intval = null;
this.arduino = arduino; this.arduino = arduino;
this.cfg = cfg; this.cfg = cfg;
this.ui = ui; this.ui = ui;
this.dig = dig;
this.init(); this.init();
} }
/** /**
* *
**/ **/
async init() { async init() {
this.log = await require('log')({ label: 'cam' }); this.log = await Log({ label: 'cam' });
this.ipc = require('electron').ipcMain; this.ipc = require('electron').ipcMain;
this.listen(); this.listen();
} }
@ -67,9 +69,9 @@ class Camera {
async move(frame, id) { async move(frame, id) {
const cmd = this.cfg.arduino.cmd.camera; const cmd = this.cfg.arduino.cmd.camera;
let ms; let ms;
//if (this.state.digital) { if (this.dig.state.enabled) {
//await this.dig.start() await this.dig.start();
//} }
if (this.intval) { if (this.intval) {
try { try {
ms = await this.intval.move(); ms = await this.intval.move();
@ -86,9 +88,9 @@ class Camera {
this.log.error(err); this.log.error(err);
} }
} }
//if (this.state.digital) { if (this.dig.state.enabled) {
// await this.dig.end() await this.dig.end();
//} }
this.log.info('Camera move time', { ms }); this.log.info('Camera move time', { ms });
return this.end(cmd, id, ms); return this.end(cmd, id, ms);
} }
@ -175,9 +177,8 @@ class Camera {
this.log.info(message, 'CAMERA', true, true); this.log.info(message, 'CAMERA', true, true);
this.ui.send('cam', { cmd: cmd, id: id, ms: ms }); this.ui.send('cam', { cmd: cmd, id: id, ms: ms });
} }
;
} }
module.exports = function (arduino, cfg, ui) { module.exports = function (arduino, cfg, ui, dig) {
return new Camera(arduino, cfg, ui); return new Camera(arduino, cfg, ui, dig);
}; };
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,56 +1,129 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const delay = require("delay"); const delay = require("delay");
const dig = {}; const Log = require("log");
dig.state = { class Digital {
/**
*
**/
constructor(display, ffmpeg, ffprobe, ui, light) {
this.state = {
frame: 0, frame: 0,
frames: 0, frames: 0,
path: null, path: null,
fileName: null, fileName: null,
info: {}, info: {},
dir: true dir: true,
}; enabled: false
dig.set = function (dir) { };
dig.state.dir = dir; this.display = display;
}; this.ffmpeg = ffmpeg;
dig.move = async function () { this.ffprobe = ffprobe;
this.ui = ui;
this.light = light;
this.init();
}
/**
*
**/
async init() {
this.log = await Log({ label: 'digital' });
this.ipc = require('electron').ipcMain;
this.listen();
}
/**
*
**/
listen() {
this.ipc.on('digital', this.connectDigital.bind(this));
}
/**
*
**/
set(dir) {
this.state.dir = dir;
}
/**
*
**/
async move() {
let start = +new Date(); let start = +new Date();
let last = dig.state.dir + 0; if (this.state.dir) {
if (dig.state.dir) { this.state.frame++;
dig.state.frame++;
} }
else { else {
dig.state.frame--; this.state.frame--;
} }
if (dig.state.frame < 1) { if (this.state.frame < 1) {
dig.state.frame = 1; this.state.frame = 1;
} }
return (+new Date()) - start; return (+new Date()) - start;
}; }
dig.start = async function (lightState) { /**
*
**/
async start() {
try { try {
await dig.ffmpeg.clearAll(); await this.ffmpeg.clearAll();
} }
catch (err) { catch (err) {
console.error(err); console.error(err);
throw err;
} }
try { try {
await dig.ffmpeg.frame(dig.state, lightState); await this.ffmpeg.frame(this.state, this.light.state);
} }
catch (err) { catch (err) {
console.error(err); console.error(err);
throw err;
} }
dig.display.start(dig.state.frame); this.display.start(this.state.frame);
await delay(20); await delay(20);
}; }
dig.end = async function () { /**
*
**/
async end() {
await delay(20); await delay(20);
dig.display.end(); this.display.end();
}; }
module.exports = (display, ffmpeg, ffprobe) => { /**
dig.display = display; * Use a file as the "digital" source on "projector"
dig.ffmpeg = ffmpeg; *
dig.ffprobe = ffprobe; **/
return dig; async connectDigital(evt, arg) {
let info;
let frames = 0;
try {
info = await this.ffprobe.info(arg.path);
}
catch (err) {
//this.log.error(err, 'DIGITAL', true, true);
this.state.enabled = false;
await this.ui.send('digital', { valid: false });
return false;
}
try {
frames = await this.ffprobe.frames(arg.path);
}
catch (err) {
this.log.error(err, 'DIGITAL', true, true);
this.state.enabled = false;
await this.ui.send('digital', { valid: false });
return false;
}
this.state.frame = 0;
this.state.path = arg.path;
this.state.fileName = arg.fileName;
this.state.frames = frames;
this.state.info = info;
this.log.info(`Opened ${this.state.fileName}`, 'DIGITAL', true, true);
this.log.info(`Frames : ${frames}`, 'DIGITAL', true, true);
this.state.enabled = true;
return await this.ui.send('digital', { valid: true, state: JSON.stringify(this.state) });
}
}
module.exports = (display, ffmpeg, ffprobe, ui, light) => {
return new Digital(display, ffmpeg, ffprobe, ui, light);
}; };
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

View File

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/digital/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,+BAAgC;AAEhC,MAAM,GAAG,GAAS,EAAE,CAAC;AACrB,GAAG,CAAC,KAAK,GAAG;IACX,KAAK,EAAG,CAAC;IACT,MAAM,EAAG,CAAC;IACV,IAAI,EAAG,IAAI;IACX,QAAQ,EAAG,IAAI;IACf,IAAI,EAAG,EAAE;IACT,GAAG,EAAG,IAAI;CACV,CAAC;AAEF,GAAG,CAAC,GAAG,GAAI,UAAU,GAAa;IACjC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;AACrB,CAAC,CAAA;AAED,GAAG,CAAC,IAAI,GAAG,KAAK;IACf,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;IACvB,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;QAClB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;KACjB;SAAM;QACN,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;KACjB;IACD,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE;QACxB,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAA;KACnB;IACD,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAA;AAC7B,CAAC,CAAA;AAED,GAAG,CAAC,KAAK,GAAG,KAAK,WAAW,UAAoB;IAC/C,IAAI;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;KAC3B;IAAC,OAAO,GAAG,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KAClB;IAED,IAAI;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;KAC7C;IAAC,OAAO,GAAG,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KAClB;IAED,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAA;AAChB,CAAC,CAAA;AAED,GAAG,CAAC,GAAG,GAAG,KAAK;IACd,MAAM,KAAK,CAAC,EAAE,CAAC,CAAA;IACf,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,CAAC,OAAO,GAAG,CAAC,OAAa,EAAE,MAAY,EAAE,OAAa,EAAE,EAAE;IAC/D,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACpB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,OAAO,GAAG,CAAC;AACZ,CAAC,CAAA"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/digital/index.ts"],"names":[],"mappings":"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"}

View File

@ -1,6 +1,7 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const delay = require("delay"); const delay = require("delay");
const Log = require("log");
class Light { class Light {
/** /**
* *
@ -16,7 +17,7 @@ class Light {
* *
**/ **/
async init() { async init() {
this.log = await require('log')({ label: 'light' }); this.log = await Log({ label: 'light' });
this.ipc = require('electron').ipcMain; this.ipc = require('electron').ipcMain;
this.listen(); this.listen();
} }

View File

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/light/index.ts"],"names":[],"mappings":"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"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/light/index.ts"],"names":[],"mappings":"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"}

View File

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/log/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAC/D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;AAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAC9B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAExB,MAAM,OAAO,GAAG,mBAAmB,CAAA;AACnC,IAAI,SAAe,CAAA;AAEnB;;;;;IAKI;AACJ,KAAK,UAAU,OAAO;IAErB,MAAM,OAAO,GAAY,EAAE,CAAC,OAAO,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAY,qBAAqB,CAAC;IAChD,MAAM,MAAM,GAAY,0BAA0B,CAAC;IACnD,MAAM,MAAM,GAAY,6BAA6B,CAAC;IACtD,IAAI,OAAO,GAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,MAAgB,CAAC;IAErB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;QAClC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACrC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QACxC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACrC;IACD,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE;QACZ,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACxB;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC5C,CAAC;AACD;;;;;;;IAOI;AACJ,MAAM,CAAC,OAAO,GAAG,KAAK,WAAW,GAAS;IACzC,IAAI,MAAM,CAAC;IACX,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;QACrB,SAAS,GAAG;YACX,IAAI,EAAG,cAAa,CAAC;YACrB,IAAI,EAAG,cAAa,CAAC;YACrB,KAAK,EAAG,cAAa,CAAC;SACtB,CAAA;KACD;SAAM;QACN,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;YACrB,MAAM,GAAG,OAAO,CACf,KAAK,CAAC,EAAE,KAAK,EAAG,GAAG,CAAC,KAAK,EAAE,CAAC,EAC5B,SAAS,EAAE,EACX,QAAQ,EAAE,EACV,MAAM,EAAE,CACR,CAAC;SACF;aAAM;YACN,MAAM,GAAG,OAAO,CACf,SAAS,EAAE,EACX,QAAQ,EAAE,EACV,MAAM,EAAE,CACR,CAAC;SACF;QACD,SAAS,GAAG,YAAY,CAAC;YACxB,UAAU,EAAE;gBACX,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBACxB,MAAM;iBACN,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACrB,QAAQ,EAAE,MAAM,OAAO,EAAE;iBACzB,CAAC;aACF;SACD,CAAC,CAAA;KACF;IACD,OAAO,SAAS,CAAA;AACjB,CAAC,CAAA"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/log/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAC/D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;AACpE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAC9B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAExB,MAAM,OAAO,GAAG,mBAAmB,CAAA;AACnC,IAAI,SAAe,CAAA;AAEnB;;;;;IAKI;AACJ,KAAK,UAAU,OAAO;IAErB,MAAM,OAAO,GAAY,EAAE,CAAC,OAAO,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAY,iBAAiB,CAAC;IAC5C,MAAM,MAAM,GAAY,sBAAsB,CAAC;IAC/C,MAAM,MAAM,GAAY,yBAAyB,CAAC;IAClD,IAAI,OAAO,GAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,MAAgB,CAAC;IAErB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;QAClC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACrC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QACxC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACrC;IACD,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE;QACZ,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACxB;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACxC,CAAC;AACD;;;;;;;IAOI;AACJ,MAAM,CAAC,OAAO,GAAG,KAAK,WAAW,GAAS;IACzC,IAAI,MAAM,CAAC;IACX,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;QACrB,SAAS,GAAG;YACX,IAAI,EAAG,cAAa,CAAC;YACrB,IAAI,EAAG,cAAa,CAAC;YACrB,KAAK,EAAG,cAAa,CAAC;SACtB,CAAA;KACD;SAAM;QACN,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;YACrB,MAAM,GAAG,OAAO,CACf,KAAK,CAAC,EAAE,KAAK,EAAG,GAAG,CAAC,KAAK,EAAE,CAAC;YAC5B,cAAc;YACd,QAAQ,EAAE,EACV,MAAM,EAAE,CACR,CAAC;SACF;aAAM;YACN,MAAM,GAAG,OAAO;YACf,cAAc;YACd,QAAQ,EAAE,EACV,MAAM,EAAE,CACR,CAAC;SACF;QACD,SAAS,GAAG,YAAY,CAAC;YACxB,UAAU,EAAE;gBACX,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBACxB,MAAM;iBACN,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACrB,QAAQ,EAAE,MAAM,OAAO,EAAE;oBACzB,MAAM,EAAG,OAAO,CACf,KAAK,CAAC,EAAE,KAAK,EAAG,GAAG,CAAC,KAAK,EAAE,CAAC;oBAC5B,cAAc;oBACd,IAAI,EAAE,CACN;iBACD,CAAC;aACF;SACD,CAAC,CAAA;KACF;IACD,OAAO,SAAS,CAAA;AACjB,CAAC,CAAA"}

View File

@ -1,4 +1,7 @@
"use strict";
/** class representing the Projector features **/ /** class representing the Projector features **/
Object.defineProperty(exports, "__esModule", { value: true });
const Log = require("log");
class Projector { class Projector {
/** /**
* *
@ -16,7 +19,7 @@ class Projector {
* *
**/ **/
async init() { async init() {
this.log = await require('log')({ label: 'proj' }); this.log = await Log({ label: 'proj' });
this.ipc = require('electron').ipcMain; this.ipc = require('electron').ipcMain;
this.listen(); this.listen();
} }
@ -25,7 +28,6 @@ class Projector {
**/ **/
listen() { listen() {
this.ipc.on('proj', this.listener.bind(this)); this.ipc.on('proj', this.listener.bind(this));
this.ipc.on('digital', this.connectDigital.bind(this));
} }
/** /**
* *
@ -40,8 +42,8 @@ class Projector {
cmd = this.cfg.arduino.cmd.proj_backward; cmd = this.cfg.arduino.cmd.proj_backward;
} }
this.state.dir = dir; this.state.dir = dir;
if (this.state.digital) { if (this.dig.state.enabled) {
//this.dig.set(dir) this.dig.set(dir);
} }
else { else {
try { try {
@ -59,9 +61,9 @@ class Projector {
async move(frame, id) { async move(frame, id) {
const cmd = this.cfg.arduino.cmd.projector; const cmd = this.cfg.arduino.cmd.projector;
let ms; let ms;
if (this.state.digital) { if (this.dig.state.enabled) {
try { try {
//ms = await this.dig.move() ms = await this.dig.move();
} }
catch (err) { catch (err) {
this.log.error(err); this.log.error(err);
@ -127,41 +129,6 @@ class Projector {
this.log.info(message, 'PROJECTOR'); this.log.info(message, 'PROJECTOR');
return await this.ui.send('proj', { cmd: cmd, id: id, ms: ms }); return await this.ui.send('proj', { cmd: cmd, id: id, ms: ms });
} }
/**
* Use a file as the "digital" source on "projector"
*
**/
async connectDigital(evt, arg) {
let info;
let frames = 0;
try {
info = await this.dig.ffprobe.info(arg.path);
}
catch (err) {
this.log.error(err, 'DIGITAL', true, true);
this.state.digital = false;
await this.ui.send('digital', { valid: false });
return false;
}
try {
frames = await this.dig.ffprobe.frames(arg.path);
}
catch (err) {
this.log.error(err, 'DIGITAL', true, true);
this.state.digital = false;
await this.ui.send('digital', { valid: false });
return false;
}
this.dig.state.frame = 0;
this.dig.state.path = arg.path;
this.dig.state.fileName = arg.fileName;
this.dig.state.frames = frames;
this.dig.state.info = info;
this.log.info(`Opened ${this.dig.state.fileName}`, 'DIGITAL', true, true);
this.log.info(`Frames : ${frames}`, 'DIGITAL', true, true);
this.state.digital = true;
return await this.ui.send('digital', { valid: true, state: JSON.stringify(this.dig.state) });
}
} }
module.exports = function (arduino, cfg, ui, dig) { module.exports = function (arduino, cfg, ui, dig) {
return new Projector(arduino, cfg, ui, dig); return new Projector(arduino, cfg, ui, dig);

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,10 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
//import Log = require('log');
const delay = require("delay");
const SerialPort = require('serialport'); const SerialPort = require('serialport');
const Readline = SerialPort.parsers.Readline; const Readline = SerialPort.parsers.Readline;
const exec = require('child_process').exec; const exec = require('child_process').exec;
const delay = require("delay");
const parser = new Readline(''); const parser = new Readline('');
const newlineRe = new RegExp('\n', 'g'); const newlineRe = new RegExp('\n', 'g');
const returnRe = new RegExp('\r', 'g'); const returnRe = new RegExp('\r', 'g');

File diff suppressed because one or more lines are too long

View File

@ -1,25 +1,27 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const Intval = require("intval"); const Intval = require("intval");
const Log = require("log");
/** class representing camera functions **/ /** class representing camera functions **/
class Camera { class Camera {
/** /**
* *
**/ **/
constructor(arduino, cfg, ui) { constructor(arduino, cfg, ui, dig) {
this.state = { dir: true, digital: false }; this.state = { dir: true, digital: false };
this.arduino = null; this.arduino = null;
this.intval = null; this.intval = null;
this.arduino = arduino; this.arduino = arduino;
this.cfg = cfg; this.cfg = cfg;
this.ui = ui; this.ui = ui;
this.dig = dig;
this.init(); this.init();
} }
/** /**
* *
**/ **/
async init() { async init() {
this.log = await require('log')({ label: 'cam' }); this.log = await Log({ label: 'cam' });
this.ipc = require('electron').ipcMain; this.ipc = require('electron').ipcMain;
this.listen(); this.listen();
} }
@ -67,9 +69,9 @@ class Camera {
async move(frame, id) { async move(frame, id) {
const cmd = this.cfg.arduino.cmd.camera; const cmd = this.cfg.arduino.cmd.camera;
let ms; let ms;
//if (this.state.digital) { if (this.dig.state.enabled) {
//await this.dig.start() await this.dig.start();
//} }
if (this.intval) { if (this.intval) {
try { try {
ms = await this.intval.move(); ms = await this.intval.move();
@ -86,9 +88,9 @@ class Camera {
this.log.error(err); this.log.error(err);
} }
} }
//if (this.state.digital) { if (this.dig.state.enabled) {
// await this.dig.end() await this.dig.end();
//} }
this.log.info('Camera move time', { ms }); this.log.info('Camera move time', { ms });
return this.end(cmd, id, ms); return this.end(cmd, id, ms);
} }
@ -175,9 +177,8 @@ class Camera {
this.log.info(message, 'CAMERA', true, true); this.log.info(message, 'CAMERA', true, true);
this.ui.send('cam', { cmd: cmd, id: id, ms: ms }); this.ui.send('cam', { cmd: cmd, id: id, ms: ms });
} }
;
} }
module.exports = function (arduino, cfg, ui) { module.exports = function (arduino, cfg, ui, dig) {
return new Camera(arduino, cfg, ui); return new Camera(arduino, cfg, ui, dig);
}; };
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,56 +1,129 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const delay = require("delay"); const delay = require("delay");
const dig = {}; const Log = require("log");
dig.state = { class Digital {
/**
*
**/
constructor(display, ffmpeg, ffprobe, ui, light) {
this.state = {
frame: 0, frame: 0,
frames: 0, frames: 0,
path: null, path: null,
fileName: null, fileName: null,
info: {}, info: {},
dir: true dir: true,
}; enabled: false
dig.set = function (dir) { };
dig.state.dir = dir; this.display = display;
}; this.ffmpeg = ffmpeg;
dig.move = async function () { this.ffprobe = ffprobe;
this.ui = ui;
this.light = light;
this.init();
}
/**
*
**/
async init() {
this.log = await Log({ label: 'digital' });
this.ipc = require('electron').ipcMain;
this.listen();
}
/**
*
**/
listen() {
this.ipc.on('digital', this.connectDigital.bind(this));
}
/**
*
**/
set(dir) {
this.state.dir = dir;
}
/**
*
**/
async move() {
let start = +new Date(); let start = +new Date();
let last = dig.state.dir + 0; if (this.state.dir) {
if (dig.state.dir) { this.state.frame++;
dig.state.frame++;
} }
else { else {
dig.state.frame--; this.state.frame--;
} }
if (dig.state.frame < 1) { if (this.state.frame < 1) {
dig.state.frame = 1; this.state.frame = 1;
} }
return (+new Date()) - start; return (+new Date()) - start;
}; }
dig.start = async function (lightState) { /**
*
**/
async start() {
try { try {
await dig.ffmpeg.clearAll(); await this.ffmpeg.clearAll();
} }
catch (err) { catch (err) {
console.error(err); console.error(err);
throw err;
} }
try { try {
await dig.ffmpeg.frame(dig.state, lightState); await this.ffmpeg.frame(this.state, this.light.state);
} }
catch (err) { catch (err) {
console.error(err); console.error(err);
throw err;
} }
dig.display.start(dig.state.frame); this.display.start(this.state.frame);
await delay(20); await delay(20);
}; }
dig.end = async function () { /**
*
**/
async end() {
await delay(20); await delay(20);
dig.display.end(); this.display.end();
}; }
module.exports = (display, ffmpeg, ffprobe) => { /**
dig.display = display; * Use a file as the "digital" source on "projector"
dig.ffmpeg = ffmpeg; *
dig.ffprobe = ffprobe; **/
return dig; async connectDigital(evt, arg) {
let info;
let frames = 0;
try {
info = await this.ffprobe.info(arg.path);
}
catch (err) {
//this.log.error(err, 'DIGITAL', true, true);
this.state.enabled = false;
await this.ui.send('digital', { valid: false });
return false;
}
try {
frames = await this.ffprobe.frames(arg.path);
}
catch (err) {
this.log.error(err, 'DIGITAL', true, true);
this.state.enabled = false;
await this.ui.send('digital', { valid: false });
return false;
}
this.state.frame = 0;
this.state.path = arg.path;
this.state.fileName = arg.fileName;
this.state.frames = frames;
this.state.info = info;
this.log.info(`Opened ${this.state.fileName}`, 'DIGITAL', true, true);
this.log.info(`Frames : ${frames}`, 'DIGITAL', true, true);
this.state.enabled = true;
return await this.ui.send('digital', { valid: true, state: JSON.stringify(this.state) });
}
}
module.exports = (display, ffmpeg, ffprobe, ui, light) => {
return new Digital(display, ffmpeg, ffprobe, ui, light);
}; };
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

View File

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/digital/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,+BAAgC;AAEhC,MAAM,GAAG,GAAS,EAAE,CAAC;AACrB,GAAG,CAAC,KAAK,GAAG;IACX,KAAK,EAAG,CAAC;IACT,MAAM,EAAG,CAAC;IACV,IAAI,EAAG,IAAI;IACX,QAAQ,EAAG,IAAI;IACf,IAAI,EAAG,EAAE;IACT,GAAG,EAAG,IAAI;CACV,CAAC;AAEF,GAAG,CAAC,GAAG,GAAI,UAAU,GAAa;IACjC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;AACrB,CAAC,CAAA;AAED,GAAG,CAAC,IAAI,GAAG,KAAK;IACf,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;IACvB,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;QAClB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;KACjB;SAAM;QACN,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;KACjB;IACD,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE;QACxB,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAA;KACnB;IACD,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAA;AAC7B,CAAC,CAAA;AAED,GAAG,CAAC,KAAK,GAAG,KAAK,WAAW,UAAoB;IAC/C,IAAI;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;KAC3B;IAAC,OAAO,GAAG,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KAClB;IAED,IAAI;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;KAC7C;IAAC,OAAO,GAAG,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KAClB;IAED,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAA;AAChB,CAAC,CAAA;AAED,GAAG,CAAC,GAAG,GAAG,KAAK;IACd,MAAM,KAAK,CAAC,EAAE,CAAC,CAAA;IACf,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,CAAC,OAAO,GAAG,CAAC,OAAa,EAAE,MAAY,EAAE,OAAa,EAAE,EAAE;IAC/D,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACpB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,OAAO,GAAG,CAAC;AACZ,CAAC,CAAA"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/digital/index.ts"],"names":[],"mappings":"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"}

View File

@ -1,6 +1,7 @@
'use strict'; 'use strict';
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const delay = require("delay"); const delay = require("delay");
const Log = require("log");
class Light { class Light {
/** /**
* *
@ -16,7 +17,7 @@ class Light {
* *
**/ **/
async init() { async init() {
this.log = await require('log')({ label: 'light' }); this.log = await Log({ label: 'light' });
this.ipc = require('electron').ipcMain; this.ipc = require('electron').ipcMain;
this.listen(); this.listen();
} }

View File

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/light/index.ts"],"names":[],"mappings":"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"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/light/index.ts"],"names":[],"mappings":"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"}

View File

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/log/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAC/D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;AAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAC9B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAExB,MAAM,OAAO,GAAG,mBAAmB,CAAA;AACnC,IAAI,SAAe,CAAA;AAEnB;;;;;IAKI;AACJ,KAAK,UAAU,OAAO;IAErB,MAAM,OAAO,GAAY,EAAE,CAAC,OAAO,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAY,qBAAqB,CAAC;IAChD,MAAM,MAAM,GAAY,0BAA0B,CAAC;IACnD,MAAM,MAAM,GAAY,6BAA6B,CAAC;IACtD,IAAI,OAAO,GAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,MAAgB,CAAC;IAErB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;QAClC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACrC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QACxC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACrC;IACD,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE;QACZ,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACxB;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC5C,CAAC;AACD;;;;;;;IAOI;AACJ,MAAM,CAAC,OAAO,GAAG,KAAK,WAAW,GAAS;IACzC,IAAI,MAAM,CAAC;IACX,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;QACrB,SAAS,GAAG;YACX,IAAI,EAAG,cAAa,CAAC;YACrB,IAAI,EAAG,cAAa,CAAC;YACrB,KAAK,EAAG,cAAa,CAAC;SACtB,CAAA;KACD;SAAM;QACN,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;YACrB,MAAM,GAAG,OAAO,CACf,KAAK,CAAC,EAAE,KAAK,EAAG,GAAG,CAAC,KAAK,EAAE,CAAC,EAC5B,SAAS,EAAE,EACX,QAAQ,EAAE,EACV,MAAM,EAAE,CACR,CAAC;SACF;aAAM;YACN,MAAM,GAAG,OAAO,CACf,SAAS,EAAE,EACX,QAAQ,EAAE,EACV,MAAM,EAAE,CACR,CAAC;SACF;QACD,SAAS,GAAG,YAAY,CAAC;YACxB,UAAU,EAAE;gBACX,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBACxB,MAAM;iBACN,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACrB,QAAQ,EAAE,MAAM,OAAO,EAAE;iBACzB,CAAC;aACF;SACD,CAAC,CAAA;KACF;IACD,OAAO,SAAS,CAAA;AACjB,CAAC,CAAA"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/log/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAC/D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;AACpE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAC9B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAExB,MAAM,OAAO,GAAG,mBAAmB,CAAA;AACnC,IAAI,SAAe,CAAA;AAEnB;;;;;IAKI;AACJ,KAAK,UAAU,OAAO;IAErB,MAAM,OAAO,GAAY,EAAE,CAAC,OAAO,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAY,iBAAiB,CAAC;IAC5C,MAAM,MAAM,GAAY,sBAAsB,CAAC;IAC/C,MAAM,MAAM,GAAY,yBAAyB,CAAC;IAClD,IAAI,OAAO,GAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,MAAgB,CAAC;IAErB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;QAClC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACrC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QACxC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACrC;IACD,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE;QACZ,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACxB;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACxC,CAAC;AACD;;;;;;;IAOI;AACJ,MAAM,CAAC,OAAO,GAAG,KAAK,WAAW,GAAS;IACzC,IAAI,MAAM,CAAC;IACX,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;QACrB,SAAS,GAAG;YACX,IAAI,EAAG,cAAa,CAAC;YACrB,IAAI,EAAG,cAAa,CAAC;YACrB,KAAK,EAAG,cAAa,CAAC;SACtB,CAAA;KACD;SAAM;QACN,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;YACrB,MAAM,GAAG,OAAO,CACf,KAAK,CAAC,EAAE,KAAK,EAAG,GAAG,CAAC,KAAK,EAAE,CAAC;YAC5B,cAAc;YACd,QAAQ,EAAE,EACV,MAAM,EAAE,CACR,CAAC;SACF;aAAM;YACN,MAAM,GAAG,OAAO;YACf,cAAc;YACd,QAAQ,EAAE,EACV,MAAM,EAAE,CACR,CAAC;SACF;QACD,SAAS,GAAG,YAAY,CAAC;YACxB,UAAU,EAAE;gBACX,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBACxB,MAAM;iBACN,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACrB,QAAQ,EAAE,MAAM,OAAO,EAAE;oBACzB,MAAM,EAAG,OAAO,CACf,KAAK,CAAC,EAAE,KAAK,EAAG,GAAG,CAAC,KAAK,EAAE,CAAC;oBAC5B,cAAc;oBACd,IAAI,EAAE,CACN;iBACD,CAAC;aACF;SACD,CAAC,CAAA;KACF;IACD,OAAO,SAAS,CAAA;AACjB,CAAC,CAAA"}

View File

@ -1,4 +1,7 @@
"use strict";
/** class representing the Projector features **/ /** class representing the Projector features **/
Object.defineProperty(exports, "__esModule", { value: true });
const Log = require("log");
class Projector { class Projector {
/** /**
* *
@ -16,7 +19,7 @@ class Projector {
* *
**/ **/
async init() { async init() {
this.log = await require('log')({ label: 'proj' }); this.log = await Log({ label: 'proj' });
this.ipc = require('electron').ipcMain; this.ipc = require('electron').ipcMain;
this.listen(); this.listen();
} }
@ -25,7 +28,6 @@ class Projector {
**/ **/
listen() { listen() {
this.ipc.on('proj', this.listener.bind(this)); this.ipc.on('proj', this.listener.bind(this));
this.ipc.on('digital', this.connectDigital.bind(this));
} }
/** /**
* *
@ -40,8 +42,8 @@ class Projector {
cmd = this.cfg.arduino.cmd.proj_backward; cmd = this.cfg.arduino.cmd.proj_backward;
} }
this.state.dir = dir; this.state.dir = dir;
if (this.state.digital) { if (this.dig.state.enabled) {
//this.dig.set(dir) this.dig.set(dir);
} }
else { else {
try { try {
@ -59,9 +61,9 @@ class Projector {
async move(frame, id) { async move(frame, id) {
const cmd = this.cfg.arduino.cmd.projector; const cmd = this.cfg.arduino.cmd.projector;
let ms; let ms;
if (this.state.digital) { if (this.dig.state.enabled) {
try { try {
//ms = await this.dig.move() ms = await this.dig.move();
} }
catch (err) { catch (err) {
this.log.error(err); this.log.error(err);
@ -127,41 +129,6 @@ class Projector {
this.log.info(message, 'PROJECTOR'); this.log.info(message, 'PROJECTOR');
return await this.ui.send('proj', { cmd: cmd, id: id, ms: ms }); return await this.ui.send('proj', { cmd: cmd, id: id, ms: ms });
} }
/**
* Use a file as the "digital" source on "projector"
*
**/
async connectDigital(evt, arg) {
let info;
let frames = 0;
try {
info = await this.dig.ffprobe.info(arg.path);
}
catch (err) {
this.log.error(err, 'DIGITAL', true, true);
this.state.digital = false;
await this.ui.send('digital', { valid: false });
return false;
}
try {
frames = await this.dig.ffprobe.frames(arg.path);
}
catch (err) {
this.log.error(err, 'DIGITAL', true, true);
this.state.digital = false;
await this.ui.send('digital', { valid: false });
return false;
}
this.dig.state.frame = 0;
this.dig.state.path = arg.path;
this.dig.state.fileName = arg.fileName;
this.dig.state.frames = frames;
this.dig.state.info = info;
this.log.info(`Opened ${this.dig.state.fileName}`, 'DIGITAL', true, true);
this.log.info(`Frames : ${frames}`, 'DIGITAL', true, true);
this.state.digital = true;
return await this.ui.send('digital', { valid: true, state: JSON.stringify(this.dig.state) });
}
} }
module.exports = function (arduino, cfg, ui, dig) { module.exports = function (arduino, cfg, ui, dig) {
return new Projector(arduino, cfg, ui, dig); return new Projector(arduino, cfg, ui, dig);

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1,12 @@
'use strict' 'use strict'
//import Log = require('log');
import delay = require('delay');
const SerialPort = require('serialport') const SerialPort = require('serialport')
const Readline = SerialPort.parsers.Readline const Readline = SerialPort.parsers.Readline
const exec = require('child_process').exec const exec = require('child_process').exec
import delay = require('delay');
const parser : any = new Readline('') const parser : any = new Readline('')
const newlineRe : RegExp = new RegExp('\n', 'g') const newlineRe : RegExp = new RegExp('\n', 'g')
const returnRe : RegExp = new RegExp('\r', 'g') const returnRe : RegExp = new RegExp('\r', 'g')

View File

@ -1,6 +1,8 @@
'use strict'; 'use strict';
import Intval = require('intval'); import Intval = require('intval');
import Log = require('log');
import delay = require('delay');
/** class representing camera functions **/ /** class representing camera functions **/
@ -10,15 +12,17 @@ class Camera {
private intval : any = null; private intval : any = null;
private log : any; private log : any;
private cfg : any; private cfg : any;
private dig : any;
private ui : any; private ui : any;
private ipc : any; private ipc : any;
/** /**
* *
**/ **/
constructor (arduino : Arduino, cfg : any, ui : any) { constructor (arduino : Arduino, cfg : any, ui : any, dig : any) {
this.arduino = arduino; this.arduino = arduino;
this.cfg = cfg; this.cfg = cfg;
this.ui = ui; this.ui = ui;
this.dig = dig;
this.init(); this.init();
} }
@ -26,7 +30,7 @@ class Camera {
* *
**/ **/
private async init () { private async init () {
this.log = await require('log')({ label : 'cam' }); this.log = await Log({ label : 'cam' });
this.ipc = require('electron').ipcMain; this.ipc = require('electron').ipcMain;
this.listen(); this.listen();
} }
@ -75,9 +79,9 @@ class Camera {
public async move (frame : number, id : string) { public async move (frame : number, id : string) {
const cmd : string = this.cfg.arduino.cmd.camera; const cmd : string = this.cfg.arduino.cmd.camera;
let ms : number; let ms : number;
//if (this.state.digital) { if (this.dig.state.enabled) {
//await this.dig.start() await this.dig.start()
//} }
if (this.intval) { if (this.intval) {
try { try {
ms = await this.intval.move(); ms = await this.intval.move();
@ -91,9 +95,9 @@ class Camera {
this.log.error(err); this.log.error(err);
} }
} }
//if (this.state.digital) { if (this.dig.state.enabled) {
// await this.dig.end() await this.dig.end()
//} }
this.log.info('Camera move time', { ms }); this.log.info('Camera move time', { ms });
return this.end(cmd, id, ms); return this.end(cmd, id, ms);
} }
@ -175,9 +179,9 @@ class Camera {
} }
this.log.info(message, 'CAMERA', true, true) this.log.info(message, 'CAMERA', true, true)
this.ui.send('cam', {cmd: cmd, id : id, ms: ms}) this.ui.send('cam', {cmd: cmd, id : id, ms: ms})
}; }
} }
module.exports = function (arduino : Arduino, cfg : any, ui : any) { module.exports = function (arduino : Arduino, cfg : any, ui : any, dig : any) {
return new Camera(arduino, cfg, ui); return new Camera(arduino, cfg, ui, dig);
} }

View File

@ -1,60 +1,137 @@
'use strict'; 'use strict';
import delay = require('delay'); import delay = require('delay');
import Log = require('log');
const dig : any = {}; class Digital {
dig.state = { public state : any = {
frame : 0, frame : 0,
frames : 0, frames : 0,
path : null, path : null,
fileName : null, fileName : null,
info : {}, info : {},
dir : true dir : true,
}; enabled : false
};
dig.set = function (dir : boolean) { private display : any;
dig.state.dir = dir; private ffmpeg : any;
} private ffprobe : any;
private light : any;
dig.move = async function () { private ipc : any;
let start = +new Date() private ui : any;
let last = dig.state.dir + 0; private log : any;
if (dig.state.dir) { /**
dig.state.frame++ *
**/
constructor (display : any, ffmpeg : any, ffprobe : any, ui : any, light : any) {
this.display = display;
this.ffmpeg = ffmpeg;
this.ffprobe = ffprobe;
this.ui = ui;
this.light = light;
this.init();
}
/**
*
**/
private async init () {
this.log = await Log({ label : 'digital'});
this.ipc = require('electron').ipcMain;
this.listen();
}
/**
*
**/
private listen () {
this.ipc.on('digital', this.connectDigital.bind(this));
}
/**
*
**/
public set (dir : boolean) {
this.state.dir = dir;
}
/**
*
**/
public async move () {
let start : number = +new Date();
if (this.state.dir) {
this.state.frame++;
} else { } else {
dig.state.frame-- this.state.frame--;
} }
if (dig.state.frame < 1) { if (this.state.frame < 1) {
dig.state.frame = 1 this.state.frame = 1;
} }
return (+new Date()) - start return (+new Date()) - start;
} }
/**
dig.start = async function (lightState: number[]) { *
**/
async start () {
try { try {
await dig.ffmpeg.clearAll() await this.ffmpeg.clearAll();
} catch (err) { } catch (err) {
console.error(err) console.error(err);
throw err;
} }
try { try {
await dig.ffmpeg.frame(dig.state, lightState) await this.ffmpeg.frame(this.state, this.light.state);
} catch (err) { } catch (err) {
console.error(err) console.error(err);
throw err;
} }
dig.display.start(dig.state.frame) this.display.start(this.state.frame);
await delay(20) await delay(20);
}
/**
*
**/
private async end () {
await delay(20);
this.display.end();
}
/**
* Use a file as the "digital" source on "projector"
*
**/
async connectDigital (evt : any, arg : any) {
let info;
let frames = 0;
try {
info = await this.ffprobe.info(arg.path);
} catch (err) {
//this.log.error(err, 'DIGITAL', true, true);
this.state.enabled = false;
await this.ui.send('digital', { valid : false });
return false;
}
try {
frames = await this.ffprobe.frames(arg.path);
} catch (err) {
this.log.error(err, 'DIGITAL', true, true);
this.state.enabled = false;
await this.ui.send('digital', { valid : false });
return false;
}
this.state.frame = 0;
this.state.path = arg.path;
this.state.fileName = arg.fileName;
this.state.frames = frames;
this.state.info = info;
this.log.info(`Opened ${this.state.fileName}`, 'DIGITAL', true, true);
this.log.info(`Frames : ${frames}`, 'DIGITAL', true, true);
this.state.enabled = true;
return await this.ui.send('digital', { valid : true, state : JSON.stringify(this.state) });
}
} }
dig.end = async function () { module.exports = (display : any, ffmpeg : any, ffprobe : any, ui : any, light : any) => {
await delay(20) return new Digital(display, ffmpeg, ffprobe, ui, light);
dig.display.end()
}
module.exports = (display : any, ffmpeg : any, ffprobe : any) => {
dig.display = display;
dig.ffmpeg = ffmpeg;
dig.ffprobe = ffprobe;
return dig;
} }

View File

@ -1,6 +1,7 @@
'use strict'; 'use strict';
import delay = require('delay'); import delay = require('delay');
import Log = require('log');
class Light { class Light {
public state : any = { color : [0, 0, 0] } public state : any = { color : [0, 0, 0] }
@ -25,7 +26,7 @@ class Light {
* *
**/ **/
private async init () { private async init () {
this.log = await require('log')({ label : 'light' }); this.log = await Log({ label : 'light' });
this.ipc = require('electron').ipcMain; this.ipc = require('electron').ipcMain;
this.listen(); this.listen();
} }

View File

@ -1,5 +1,7 @@
/** class representing the Projector features **/ /** class representing the Projector features **/
import Log = require('log');
class Projector { class Projector {
private state : any = { dir : true, digital : false }; private state : any = { dir : true, digital : false };
private arduino : Arduino = null; private arduino : Arduino = null;
@ -25,7 +27,7 @@ class Projector {
* *
**/ **/
async init () { async init () {
this.log = await require('log')({ label : 'proj' }) this.log = await Log({ label : 'proj' })
this.ipc = require('electron').ipcMain; this.ipc = require('electron').ipcMain;
this.listen(); this.listen();
} }
@ -35,7 +37,6 @@ class Projector {
**/ **/
private listen () { private listen () {
this.ipc.on('proj', this.listener.bind(this)); this.ipc.on('proj', this.listener.bind(this));
this.ipc.on('digital', this.connectDigital.bind(this));
} }
/** /**
@ -50,8 +51,8 @@ class Projector {
cmd = this.cfg.arduino.cmd.proj_backward cmd = this.cfg.arduino.cmd.proj_backward
} }
this.state.dir = dir this.state.dir = dir
if (this.state.digital) { if (this.dig.state.enabled) {
//this.dig.set(dir) this.dig.set(dir)
} else { } else {
try { try {
ms = await this.arduino.send('projector', cmd) ms = await this.arduino.send('projector', cmd)
@ -68,9 +69,9 @@ class Projector {
async move (frame : any, id : string) { async move (frame : any, id : string) {
const cmd : string = this.cfg.arduino.cmd.projector; const cmd : string = this.cfg.arduino.cmd.projector;
let ms : number; let ms : number;
if (this.state.digital) { if (this.dig.state.enabled) {
try { try {
//ms = await this.dig.move() ms = await this.dig.move()
} catch (err) { } catch (err) {
this.log.error(err) this.log.error(err)
} }
@ -128,43 +129,6 @@ class Projector {
this.log.info(message, 'PROJECTOR') this.log.info(message, 'PROJECTOR')
return await this.ui.send('proj', {cmd: cmd, id : id, ms: ms}) return await this.ui.send('proj', {cmd: cmd, id : id, ms: ms})
} }
/**
* Use a file as the "digital" source on "projector"
*
**/
async connectDigital (evt : any, arg : any) {
let info;
let frames = 0;
try {
info = await this.dig.ffprobe.info(arg.path);
} catch (err) {
this.log.error(err, 'DIGITAL', true, true);
this.state.digital = false;
await this.ui.send('digital', { valid : false });
return false;
}
try {
frames = await this.dig.ffprobe.frames(arg.path);
} catch (err) {
this.log.error(err, 'DIGITAL', true, true);
this.state.digital = false;
await this.ui.send('digital', { valid : false });
return false;
}
this.dig.state.frame = 0;
this.dig.state.path = arg.path;
this.dig.state.fileName = arg.fileName;
this.dig.state.frames = frames;
this.dig.state.info = info;
this.log.info(`Opened ${this.dig.state.fileName}`, 'DIGITAL', true, true);
this.log.info(`Frames : ${frames}`, 'DIGITAL', true, true);
this.state.digital = true;
return await this.ui.send('digital', { valid : true, state : JSON.stringify(this.dig.state) });
}
} }
module.exports = function (arduino : Arduino, cfg : any, ui : any, dig : any) { module.exports = function (arduino : Arduino, cfg : any, ui : any, dig : any) {