All known classes have types exported and imported into dependent modules. This has already caught a class of bugs. Removing references to any will catch another.
This commit is contained in:
parent
7f8a9d4289
commit
cb63194fc6
|
@ -1 +1,24 @@
|
|||
export {};
|
||||
export declare class Alert {
|
||||
private ipc;
|
||||
private log;
|
||||
private id;
|
||||
private cb;
|
||||
private ui;
|
||||
constructor(ui: any);
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private init;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private listen;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private listener;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
start(cmd: string): Promise<number>;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Alert = void 0;
|
||||
const log_1 = require("log");
|
||||
/* class representing alert functionality */
|
||||
class Alert {
|
||||
|
@ -52,6 +53,7 @@ class Alert {
|
|||
}.bind(this));
|
||||
}
|
||||
}
|
||||
exports.Alert = Alert;
|
||||
module.exports = function (ui) {
|
||||
return new Alert(ui);
|
||||
};
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/alert/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,6BAA0B;AAG1B,4CAA4C;AAE5C,MAAM,KAAK;IAOV,YAAc,EAAQ;QAJd,OAAE,GAAY,OAAO,CAAA;QACrB,OAAE,GAAc,IAAI,CAAA;QAI3B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,IAAI,EAAE,CAAA;IACZ,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,IAAI;QACjB,IAAI,CAAC,GAAG,GAAG,MAAM,IAAA,SAAG,EAAC,EAAE,KAAK,EAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAA;QACtC,IAAI,CAAC,MAAM,EAAE,CAAA;IACd,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,CAAA;IAC/C,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,QAAQ,CAAE,KAAW,EAAE,GAAS;QAC7C,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE;YACrB,IAAI;gBACH,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;aAChC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;SACD;QACD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,KAAK,CAAE,GAAY;QAC/B,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAY,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACrG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;QAC9B,OAAO,IAAI,OAAO,CAAC,UAAU,OAAkB,EAAE,MAAiB;YACjE,IAAI,CAAC,EAAE,GAAG;gBACT,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;gBACjC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC,CAAA;QACF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACf,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,EAAQ;IAClC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC,CAAA"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/alert/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAGb,6BAA0B;AAG1B,4CAA4C;AAE5C,MAAa,KAAK;IAOjB,YAAc,EAAQ;QAJd,OAAE,GAAY,OAAO,CAAA;QACrB,OAAE,GAAc,IAAI,CAAA;QAI3B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,IAAI,EAAE,CAAA;IACZ,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,IAAI;QACjB,IAAI,CAAC,GAAG,GAAG,MAAM,IAAA,SAAG,EAAC,EAAE,KAAK,EAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAA;QACtC,IAAI,CAAC,MAAM,EAAE,CAAA;IACd,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,CAAA;IAC/C,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,QAAQ,CAAE,KAAW,EAAE,GAAS;QAC7C,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE;YACrB,IAAI;gBACH,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;aAChC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;SACD;QACD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,KAAK,CAAE,GAAY;QAC/B,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAY,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACrG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;QAC9B,OAAO,IAAI,OAAO,CAAC,UAAU,OAAkB,EAAE,MAAiB;YACjE,IAAI,CAAC,EAAE,GAAG;gBACT,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;gBACjC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC,CAAA;QACF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACf,CAAC;CACD;AAxDD,sBAwDC;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,EAAQ;IAClC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC,CAAA"}
|
|
@ -1 +1,173 @@
|
|||
export {};
|
||||
/**
|
||||
* Class representing the arduino communication features
|
||||
**/
|
||||
export declare class Arduino {
|
||||
private log;
|
||||
private path;
|
||||
private known;
|
||||
private serial;
|
||||
private baud;
|
||||
private queue;
|
||||
private timer;
|
||||
private locks;
|
||||
private confirmExec;
|
||||
private errorState;
|
||||
private keys;
|
||||
private values;
|
||||
alias: any;
|
||||
stateStr: any;
|
||||
hasState: any;
|
||||
constructor(errorState: Function);
|
||||
init(): Promise<void>;
|
||||
/**
|
||||
* Enumerate all connected devices that might be Arduinos
|
||||
*
|
||||
* @async
|
||||
* @returns {Promise} Resolves after enumerating
|
||||
**/
|
||||
enumerate(): Promise<string[]>;
|
||||
/**
|
||||
* Send a command to an Arduino using async/await
|
||||
*
|
||||
* @param {string} device The Arduino device identifier
|
||||
* @param {string} cmd Single character command to send
|
||||
*
|
||||
* @async
|
||||
* @returns {Promise} Resolves after sending
|
||||
**/
|
||||
private sendAsync;
|
||||
/**
|
||||
* Sends a command to the specified Arduino and waits for a response.
|
||||
* Handles the communication lock to prevent sending multiple commands simultaneously.
|
||||
* Emits an 'arduino_send' event after successfully sending the command.
|
||||
*
|
||||
* @async
|
||||
* @param {string} device - The Arduino device identifier.
|
||||
* @param {string} cmd - The command to be sent to the Arduino.
|
||||
* @returns {Promise<boolean|string>} Returns 'false' if the communication is locked, otherwise returns the response from the device.
|
||||
* @throws {Error} Throws an error if the sendAsync method encounters an error.
|
||||
**/
|
||||
send(device: string, cmd: string): Promise<any>;
|
||||
/**
|
||||
* Sends a string to the specified Arduino.
|
||||
* Handles different types of devices, including fake devices for testing purposes.
|
||||
* Waits for a specified delay before sending the string.
|
||||
*
|
||||
* @async
|
||||
* @param {string} device - The Arduino device identifier.
|
||||
* @param {string} str - The string to be sent to the Arduino.
|
||||
* @returns {Promise<boolean|string>} Returns 'true' if the string is sent successfully, otherwise returns an error message.
|
||||
* @throws {Error} Throws an error if the writeAsync method encounters an error.
|
||||
**/
|
||||
sendString(device: string, str: string): Promise<any>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private stateAsync;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
state(device: string, confirm?: boolean): Promise<string>;
|
||||
/**
|
||||
* Send a string to an Arduino using async/await
|
||||
*
|
||||
* @param {string} device Arduino identifier
|
||||
* @param {string} str String to send
|
||||
*
|
||||
* @returns {Promise} Resolves after sending
|
||||
**/
|
||||
private writeAsync;
|
||||
/**
|
||||
* Handles the end of communication with the Arduino.
|
||||
* Calculates the time taken for the communication, executes the callback,
|
||||
* and emits an 'arduino_end' event. Handles errors and stray data received.
|
||||
*
|
||||
* @param {string} serial - The serial address of the Arduino device.
|
||||
* @param {string} data - The data received from the Arduino.
|
||||
* @returns {any} The time taken for the communication in milliseconds.
|
||||
**/
|
||||
private end;
|
||||
private error;
|
||||
/**
|
||||
* Associates an alias with an Arduinos serial address.
|
||||
* Used to map multi-purpose devices onto the same serial connection.
|
||||
*
|
||||
* @param {string} device - The serial number of the target Arduino.
|
||||
* @param {string} serial - The alias to be associated with the target device.
|
||||
**/
|
||||
aliasSerial(device: string, serial: string): void;
|
||||
/**
|
||||
* Connects to an Arduino using its serial number.
|
||||
* Sets up the SerialPort instance and path for the device, and handles data communication.
|
||||
* Handles opening the connection and emitting 'arduino_end' or 'confirmEnd' events upon receiving data.
|
||||
*
|
||||
* @async
|
||||
* @param {string} device - The device identifier (common name).
|
||||
* @param {string} serial - The serial address of the target Arduino (e.g., COM port on Windows).
|
||||
* @param {function} confirm - A callback function to be executed upon receiving confirmation data.
|
||||
* @returns {Promise<string>} Resolves with the device path if the connection is successful.
|
||||
* @throws {Error} Rejects with an error message if the connection fails.
|
||||
**/
|
||||
connect(device: string, serial: string, confirm: any): Promise<any>;
|
||||
/**
|
||||
* Handles the confirmation data received from an Arduino.
|
||||
* Executes the confirmation callback function if the received data is present in the list of expected values.
|
||||
*
|
||||
* @param {string} data - The data received from the Arduino.
|
||||
**/
|
||||
private confirmEnd;
|
||||
/**
|
||||
* Verifies the connection to an Arduino by sending a connect command.
|
||||
* The confirmation callback checks if the received data matches the expected connect command.
|
||||
*
|
||||
* @async
|
||||
* @returns {Promise<boolean>} Resolves with 'true' if the connection is verified successfully.
|
||||
* @throws {Error} Rejects with an error message if the connection verification fails.
|
||||
**/
|
||||
verify(): Promise<unknown>;
|
||||
/**
|
||||
* Distinguishes the type of Arduino connected.
|
||||
* Sends a command to the device to identify its type and resolves the promise with the received type.
|
||||
*
|
||||
* @async
|
||||
* @returns {Promise<string>} Resolves with the type of the connected Arduino-based device.
|
||||
* @throws {Error} Rejects with an error message if the distinguish operation fails.
|
||||
**/
|
||||
distinguish(): Promise<string>;
|
||||
/**
|
||||
* Closes the connection to an Arduino.
|
||||
*
|
||||
* @async
|
||||
* @returns {Promise<boolean>} Resolves with 'true' if the connection is closed successfully.
|
||||
* @throws {Error} Throws an error if the closeArduino method encounters an error.
|
||||
**/
|
||||
close(): Promise<boolean>;
|
||||
/**
|
||||
* Establishes a fake connection to an Arduino for testing purposes.
|
||||
* Creates a fake SerialPort instance with custom write and string methods.
|
||||
*
|
||||
* @async
|
||||
* @param {string} serial - The device identifier of the fake Arduino.
|
||||
* @returns {Promise<boolean>} Resolves with 'true' if the fake connection is established successfully.
|
||||
**/
|
||||
fakeConnect(device: string): Promise<boolean>;
|
||||
/**
|
||||
* Connect to an Arduino using async/await
|
||||
*
|
||||
* @param {string} device Arduino identifier
|
||||
*
|
||||
* @returns {Promise} Resolves after opening
|
||||
**/
|
||||
private openArduino;
|
||||
/**
|
||||
* Close a connection to an Arduino using async/await
|
||||
*
|
||||
* @param {string} device Arduino identifier
|
||||
*
|
||||
* @returns {Promise} Resolves after closing
|
||||
**/
|
||||
private closeArduino;
|
||||
private lock;
|
||||
private unlock;
|
||||
private isLocked;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Arduino = void 0;
|
||||
/**
|
||||
* 2023-07-16 Clarification
|
||||
*
|
||||
|
@ -41,14 +42,14 @@ class Arduino {
|
|||
constructor(errorState) {
|
||||
this.path = {};
|
||||
this.known = KNOWN;
|
||||
this.alias = {};
|
||||
this.serial = {};
|
||||
this.hasState = {};
|
||||
this.baud = 57600;
|
||||
this.queue = {};
|
||||
this.timer = 0;
|
||||
this.locks = {};
|
||||
this.alias = {};
|
||||
this.stateStr = {};
|
||||
this.hasState = {};
|
||||
this.errorState = errorState;
|
||||
this.init();
|
||||
}
|
||||
|
@ -593,6 +594,7 @@ class Arduino {
|
|||
return typeof this.locks[serial] !== 'undefined' && this.locks[serial] === true;
|
||||
}
|
||||
}
|
||||
exports.Arduino = Arduino;
|
||||
if (typeof module !== 'undefined' && module.parent) {
|
||||
module.exports = function (c, ee, errorState) {
|
||||
eventEmitter = ee;
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1,66 @@
|
|||
import type { Arduino } from 'arduino';
|
||||
import type { FilmOut } from 'filmout';
|
||||
interface CameraState {
|
||||
pos: number;
|
||||
dir: boolean;
|
||||
capper: boolean;
|
||||
}
|
||||
/** class representing camera functions **/
|
||||
export declare class Camera {
|
||||
state: CameraState;
|
||||
arduino: Arduino;
|
||||
private intval;
|
||||
private processing;
|
||||
private log;
|
||||
private cfg;
|
||||
private filmout;
|
||||
private ui;
|
||||
private ipc;
|
||||
private id;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
constructor(arduino: Arduino, cfg: any, ui: any, filmout: FilmOut, second?: boolean);
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private init;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private listen;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
set(dir: boolean, id: string): Promise<number>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
cap(state: boolean, id: string): Promise<number>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
move(id: string): Promise<number>;
|
||||
both(id: string): Promise<number>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
exposure(exposure: number, id: string): Promise<number>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private connectIntval;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private connectProcessing;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private listener;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private end;
|
||||
}
|
||||
export {};
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Camera = void 0;
|
||||
const intval_1 = require("intval");
|
||||
const processing_1 = require("processing");
|
||||
const delay_1 = require("delay");
|
||||
|
@ -13,7 +14,7 @@ class Camera {
|
|||
this.state = {
|
||||
pos: 0,
|
||||
dir: true,
|
||||
capepr: false
|
||||
capper: false
|
||||
};
|
||||
this.arduino = null;
|
||||
this.intval = null;
|
||||
|
@ -106,7 +107,7 @@ class Camera {
|
|||
/**
|
||||
*
|
||||
**/
|
||||
async move(frame, id) {
|
||||
async move(id) {
|
||||
const cmd = this.cfg.arduino.cmd[this.id];
|
||||
let ms;
|
||||
if (this.filmout.state.enabled) {
|
||||
|
@ -125,7 +126,7 @@ class Camera {
|
|||
ms = await this.intval.move();
|
||||
}
|
||||
catch (err) {
|
||||
this.log.error(err);
|
||||
this.log.error(`Error moving intval ${this.id}: ${id}`, err);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -143,14 +144,14 @@ class Camera {
|
|||
//this.log.info('Camera move time', { ms });
|
||||
return this.end(cmd, id, ms);
|
||||
}
|
||||
async both(frame, id) {
|
||||
async both(id) {
|
||||
const cmd = this.cfg.arduino.cmd[id];
|
||||
let ms;
|
||||
try {
|
||||
ms = await this.arduino.send(this.id, cmd);
|
||||
}
|
||||
catch (err) {
|
||||
this.log.error(`Error moving ${this.id}`, err);
|
||||
this.log.error(`Error moving both ${this.id}: ${id}`, err);
|
||||
}
|
||||
//this.log.info('Cameras move time', { ms });
|
||||
return await this.end(cmd, id, ms);
|
||||
|
@ -167,7 +168,7 @@ class Camera {
|
|||
let parts;
|
||||
let confirmExposure;
|
||||
if (this.intval) {
|
||||
return this.intval.setExposure(this.id, exposure, (ms) => {
|
||||
return this.intval.setExposure(exposure, (ms) => {
|
||||
this.ui.send('timing', { c: 'c', ms: exposure });
|
||||
return this.end(cmd, id, ms);
|
||||
});
|
||||
|
@ -258,9 +259,9 @@ class Camera {
|
|||
this.log.error(err);
|
||||
}
|
||||
}
|
||||
else if (typeof arg.frame !== 'undefined') {
|
||||
else if (typeof arg.move !== 'undefined') {
|
||||
try {
|
||||
await this.move(arg.frame, arg.id);
|
||||
await this.move(arg.id);
|
||||
}
|
||||
catch (err) {
|
||||
this.log.error(err);
|
||||
|
@ -336,6 +337,7 @@ class Camera {
|
|||
return ms;
|
||||
}
|
||||
}
|
||||
exports.Camera = Camera;
|
||||
module.exports = function (arduino, cfg, ui, filmout, second) {
|
||||
return new Camera(arduino, cfg, ui, filmout, second);
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1,37 @@
|
|||
export {};
|
||||
import type { FilmOut } from 'filmout';
|
||||
import type { Arduino } from 'arduino';
|
||||
/** class representing capper functions **/
|
||||
export declare class Capper {
|
||||
private state;
|
||||
private arduino;
|
||||
private log;
|
||||
private cfg;
|
||||
private filmout;
|
||||
private ui;
|
||||
private ipc;
|
||||
private id;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
constructor(arduino: Arduino, cfg: any, ui: any, filmout: FilmOut);
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private init;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private listen;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
capper(state: boolean, id: string): Promise<number>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private listener;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private end;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Capper = void 0;
|
||||
const log_1 = require("log");
|
||||
/** class representing capper functions **/
|
||||
class Capper {
|
||||
|
@ -81,8 +82,10 @@ class Capper {
|
|||
message += ` ${ms}ms`;
|
||||
this.log.info(message);
|
||||
this.ui.send(this.id, { cmd: cmd, id: id, ms: ms });
|
||||
return ms;
|
||||
}
|
||||
}
|
||||
exports.Capper = Capper;
|
||||
module.exports = function (arduino, cfg, ui, filmout) {
|
||||
return new Capper(arduino, cfg, ui, filmout);
|
||||
};
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capper/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,6BAA0B;AAI1B,2CAA2C;AAE3C,MAAM,MAAM;IAWX;;QAEI;IACJ,YAAa,OAAiB,EAAE,GAAS,EAAE,EAAQ,EAAE,OAAa;QAb1D,UAAK,GAAS;YACrB,MAAM,EAAG,KAAK;SACd,CAAC;QACM,YAAO,GAAa,IAAI,CAAC;QAMzB,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,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,IAAI;QACjB,IAAI,CAAC,GAAG,GAAG,MAAM,IAAA,SAAG,EAAC,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;IAChD,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,MAAM,CAAE,KAAe,EAAE,EAAW;QACjD,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,KAAK,CAAC,CAAC;SAC5C;aAAM;YACN,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;SAC7C;QAED,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;QAED,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,QAAQ,CAAE,KAAW,EAAE,GAAS;QAC7C,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,WAAW,EAAE;YACrC,IAAI;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;aACpC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;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;QAEjB,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE;YAC3C,OAAO,GAAG,kBAAkB,CAAC;SAC7B;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;YACnD,OAAO,GAAG,mBAAmB,CAAC;SAC9B;QAED,OAAO,IAAI,IAAI,EAAE,IAAI,CAAA;QAErB,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;IACpD,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,OAAiB,EAAE,GAAS,EAAE,EAAQ,EAAE,OAAY;IAC9E,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAA"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capper/index.ts"],"names":[],"mappings":"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"}
|
|
@ -1 +1,174 @@
|
|||
export {};
|
||||
import type { Projector } from 'proj';
|
||||
import type { Camera } from 'cam';
|
||||
import type { Light } from 'light';
|
||||
import type { Capper } from 'capper';
|
||||
import type { Alert } from 'alert';
|
||||
export declare class Commands {
|
||||
proj: Projector;
|
||||
cam: Camera;
|
||||
light: Light;
|
||||
cam2: Camera;
|
||||
proj2: Projector;
|
||||
capper: Capper;
|
||||
alertObj: Alert;
|
||||
private cfg;
|
||||
private ipc;
|
||||
/**
|
||||
* @constructor
|
||||
* Assign all connected devices and mock devices as private classes.
|
||||
*
|
||||
* @param {object} cfg Configuration object
|
||||
* @param {object} proj Projector 1
|
||||
* @param {object} cam Camera 1
|
||||
* @param {object} light Light source
|
||||
* @param {object} alert Alert object
|
||||
* @param {object} cam2 (optional) Camera 2
|
||||
* @param {object} proj2 (optional) Projector 2
|
||||
* @param {object} capper Capper object
|
||||
*
|
||||
**/
|
||||
constructor(cfg: any, proj: Projector, cam: any, light: Light, alert: Alert, cam2?: any, proj2?: Projector, capper?: any);
|
||||
/**
|
||||
* Move the projector one frame forward
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
projector_forward(): Promise<number>;
|
||||
/**
|
||||
* Move the projector one frame backward
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
projector_backward(): Promise<number>;
|
||||
/**
|
||||
* Move the camera one frame forward
|
||||
*
|
||||
* @param {object} cmd Full cmd object
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
camera_forward(): Promise<number>;
|
||||
/**
|
||||
* Move the camera one frame forward with light off
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
black_forward(): Promise<number>;
|
||||
/**
|
||||
* Move the camera one frame backward
|
||||
*
|
||||
* @param {object} cmd Full cmd object
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
camera_backward(): Promise<number>;
|
||||
/**
|
||||
* Move the camera one frame forward, light set to black or off
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
black_backward(): Promise<number>;
|
||||
/**
|
||||
* Move the second camera one frame forward
|
||||
*
|
||||
* @param {object} cmd Full cmd object
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
camera_second_forward(): Promise<number>;
|
||||
/**
|
||||
* Move the second camera one frame backward
|
||||
*
|
||||
* @param {object} cmd Full cmd object
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
camera_second_backward(): Promise<number>;
|
||||
/**
|
||||
* Move the both cameras one frame forward
|
||||
*
|
||||
* @param {object} cmd Full cmd object
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
cameras_forward(): Promise<number>;
|
||||
/**
|
||||
* Move the both cameras one frame backward
|
||||
*
|
||||
* @param {object} cmd Full cmd object
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
cameras_backward(): Promise<number>;
|
||||
/**
|
||||
* Move first camera one frame forward and rewind secondary camera one frame backward
|
||||
*
|
||||
* @param {object} cmd Full cmd object
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
camera_forward_camera_second_backward(): Promise<number>;
|
||||
/**
|
||||
* Rewind first camera one frame backward and move secondary camera one frame forward
|
||||
*
|
||||
* @param {object} cmd Full cmd object
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
camera_backward_camera_second_forward(): Promise<number>;
|
||||
/**
|
||||
* Move the secondary projector forward one frame
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
projector_second_forward(): Promise<number>;
|
||||
/**
|
||||
* Rewind the secondary projector backward one frame
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
projector_second_backward(): Promise<number>;
|
||||
/**
|
||||
* Move the both projectors forward one frame
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
projectors_forward(): Promise<number>;
|
||||
/**
|
||||
* Rewind both projectors backwards one frame
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
projectors_backward(): Promise<number>;
|
||||
/**
|
||||
* Move the primary projector forward one frame and rewind the secondary projector
|
||||
* one frame backwards.
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
projector_forward_projector_second_backward(): Promise<number>;
|
||||
/**
|
||||
* Rewind the primary projector backwards one frame and move the secondary
|
||||
* projector forward one frame.
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
projector_backward_projector_second_forward(): Promise<number>;
|
||||
/**
|
||||
* Throws an alert to pause a sequence
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
alert(cmd: any): Promise<number>;
|
||||
/**
|
||||
* Pauses a sequence for a length of time
|
||||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
pause(cmd: any): Promise<number>;
|
||||
/**
|
||||
* Sets the camera exposure (if supported).
|
||||
*
|
||||
**/
|
||||
camera_exposure(cmd: any): Promise<number>;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Commands = void 0;
|
||||
const uuid_1 = require("uuid");
|
||||
const delay_1 = require("delay");
|
||||
class Commands {
|
||||
|
@ -37,14 +38,15 @@ class Commands {
|
|||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
async projector_forward() {
|
||||
const id = (0, uuid_1.v4)();
|
||||
let ms;
|
||||
try {
|
||||
if (!this.proj.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.proj.set(true);
|
||||
await this.proj.set(true, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
ms = await this.proj.move();
|
||||
ms = await this.proj.move(id);
|
||||
}
|
||||
catch (err) {
|
||||
throw err;
|
||||
|
@ -57,14 +59,15 @@ class Commands {
|
|||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
async projector_backward() {
|
||||
const id = (0, uuid_1.v4)();
|
||||
let ms;
|
||||
try {
|
||||
if (this.proj.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.proj.set(false);
|
||||
await this.proj.set(false, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
ms = await this.proj.move();
|
||||
ms = await this.proj.move(id);
|
||||
}
|
||||
catch (err) {
|
||||
throw err;
|
||||
|
@ -86,12 +89,12 @@ class Commands {
|
|||
try {
|
||||
if (!this.cam.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(true);
|
||||
await this.cam.set(true, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
ms = await this.cam.move();
|
||||
ms = await this.cam.move(id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
}
|
||||
|
@ -112,7 +115,7 @@ class Commands {
|
|||
try {
|
||||
if (!this.cam.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(true);
|
||||
await this.cam.set(true, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
if (this.capper) {
|
||||
|
@ -121,7 +124,7 @@ class Commands {
|
|||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id); //make sure set to off
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
ms += await this.cam.move();
|
||||
ms += await this.cam.move(id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
if (this.capper) {
|
||||
|
@ -148,12 +151,12 @@ class Commands {
|
|||
try {
|
||||
if (this.cam.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(false);
|
||||
await this.cam.set(false, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
ms = await this.cam.move();
|
||||
ms = await this.cam.move(id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
}
|
||||
|
@ -174,7 +177,7 @@ class Commands {
|
|||
try {
|
||||
if (this.cam.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(false);
|
||||
await this.cam.set(false, id);
|
||||
}
|
||||
if (this.capper) {
|
||||
ms += await this.capper.capper(true, id);
|
||||
|
@ -182,7 +185,7 @@ class Commands {
|
|||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id); //make sure set to off
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
ms += await this.cam.move();
|
||||
ms += await this.cam.move(id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
if (this.capper) {
|
||||
|
@ -209,12 +212,12 @@ class Commands {
|
|||
try {
|
||||
if (!this.cam2.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam2.set(true);
|
||||
await this.cam2.set(true, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
ms = await this.cam2.move();
|
||||
ms = await this.cam2.move(id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
}
|
||||
|
@ -238,12 +241,12 @@ class Commands {
|
|||
try {
|
||||
if (this.cam2.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam2.set(false);
|
||||
await this.cam2.set(false, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
ms = await this.cam2.move();
|
||||
ms = await this.cam2.move(id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
}
|
||||
|
@ -268,20 +271,20 @@ class Commands {
|
|||
try {
|
||||
if (!this.cam.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(true);
|
||||
await this.cam.set(true, id);
|
||||
}
|
||||
if (!this.cam2.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam2.set(true);
|
||||
await this.cam2.set(true, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) {
|
||||
ms = await this.cam.both();
|
||||
ms = await this.cam.both(id);
|
||||
}
|
||||
else {
|
||||
both = await Promise.all([this.cam.move(), this.cam2.move()]);
|
||||
both = await Promise.all([this.cam.move(id), this.cam2.move(id)]);
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
|
@ -308,20 +311,20 @@ class Commands {
|
|||
try {
|
||||
if (this.cam.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(false);
|
||||
await this.cam.set(false, id);
|
||||
}
|
||||
if (this.cam2.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam2.set(false);
|
||||
await this.cam2.set(false, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) {
|
||||
ms = await this.cam.both();
|
||||
ms = await this.cam.both(id);
|
||||
}
|
||||
else {
|
||||
both = await Promise.all([this.cam.move(), this.cam2.move()]);
|
||||
both = await Promise.all([this.cam.move(id), this.cam2.move(id)]);
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
|
@ -348,20 +351,20 @@ class Commands {
|
|||
try {
|
||||
if (!this.cam.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(true);
|
||||
await this.cam.set(true, id);
|
||||
}
|
||||
if (this.cam2.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam2.set(false);
|
||||
await this.cam2.set(false, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) {
|
||||
ms = await this.cam.both();
|
||||
ms = await this.cam.both(id);
|
||||
}
|
||||
else {
|
||||
both = await Promise.all([this.cam.move(), this.cam2.move()]);
|
||||
both = await Promise.all([this.cam.move(id), this.cam2.move(id)]);
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
|
@ -388,20 +391,20 @@ class Commands {
|
|||
try {
|
||||
if (this.cam.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(false);
|
||||
await this.cam.set(false, id);
|
||||
}
|
||||
if (!this.cam2.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.cam2.set(true);
|
||||
await this.cam2.set(true, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) {
|
||||
ms = await this.cam.both();
|
||||
ms = await this.cam.both(id);
|
||||
}
|
||||
else {
|
||||
both = await Promise.all([this.cam.move(), this.cam2.move()]);
|
||||
both = await Promise.all([this.cam.move(id), this.cam2.move(id)]);
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
|
@ -418,14 +421,15 @@ class Commands {
|
|||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
async projector_second_forward() {
|
||||
const id = (0, uuid_1.v4)();
|
||||
let ms;
|
||||
try {
|
||||
if (!this.proj2.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.proj2.set(true);
|
||||
await this.proj2.set(true, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
ms = await this.proj2.move();
|
||||
ms = await this.proj2.move(id);
|
||||
}
|
||||
catch (err) {
|
||||
throw err;
|
||||
|
@ -438,14 +442,15 @@ class Commands {
|
|||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
async projector_second_backward() {
|
||||
const id = (0, uuid_1.v4)();
|
||||
let ms;
|
||||
try {
|
||||
if (this.proj2.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.proj2.set(false);
|
||||
await this.proj2.set(false, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
ms = await this.proj2.move();
|
||||
ms = await this.proj2.move(id);
|
||||
}
|
||||
catch (err) {
|
||||
throw err;
|
||||
|
@ -458,23 +463,24 @@ class Commands {
|
|||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
async projectors_forward() {
|
||||
const id = (0, uuid_1.v4)();
|
||||
let both;
|
||||
let ms;
|
||||
try {
|
||||
if (!this.proj.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.proj.set(true);
|
||||
await this.proj.set(true, id);
|
||||
}
|
||||
if (!this.proj2.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.proj2.set(true);
|
||||
await this.proj2.set(true, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) {
|
||||
ms = await this.proj.both();
|
||||
ms = await this.proj.both(id);
|
||||
}
|
||||
else {
|
||||
both = await Promise.all([this.proj.move(), this.proj2.move()]);
|
||||
both = await Promise.all([this.proj.move(id), this.proj2.move(id)]);
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
}
|
||||
|
@ -489,23 +495,24 @@ class Commands {
|
|||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
async projectors_backward() {
|
||||
const id = (0, uuid_1.v4)();
|
||||
let both;
|
||||
let ms;
|
||||
try {
|
||||
if (this.proj.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.proj.set(false);
|
||||
await this.proj.set(false, id);
|
||||
}
|
||||
if (this.proj2.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.proj2.set(false);
|
||||
await this.proj2.set(false, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) {
|
||||
ms = await this.proj.both();
|
||||
ms = await this.proj.both(id);
|
||||
}
|
||||
else {
|
||||
both = await Promise.all([this.proj.move(), this.proj2.move()]);
|
||||
both = await Promise.all([this.proj.move(id), this.proj2.move(id)]);
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
}
|
||||
|
@ -521,23 +528,24 @@ class Commands {
|
|||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
async projector_forward_projector_second_backward() {
|
||||
const id = (0, uuid_1.v4)();
|
||||
let both;
|
||||
let ms;
|
||||
try {
|
||||
if (!this.proj.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.proj.set(true);
|
||||
await this.proj.set(true, id);
|
||||
}
|
||||
if (this.proj2.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.proj2.set(false);
|
||||
await this.proj2.set(false, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) {
|
||||
ms = await this.proj.both();
|
||||
ms = await this.proj.both(id);
|
||||
}
|
||||
else {
|
||||
both = await Promise.all([this.proj.move(), this.proj2.move()]);
|
||||
both = await Promise.all([this.proj.move(id), this.proj2.move(id)]);
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
}
|
||||
|
@ -553,23 +561,24 @@ class Commands {
|
|||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
async projector_backward_projector_second_forward() {
|
||||
const id = (0, uuid_1.v4)();
|
||||
let both;
|
||||
let ms;
|
||||
try {
|
||||
if (this.proj.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.proj.set(false);
|
||||
await this.proj.set(false, id);
|
||||
}
|
||||
if (!this.proj2.state.dir) {
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
await this.proj2.set(true);
|
||||
await this.proj2.set(true, id);
|
||||
}
|
||||
await (0, delay_1.delay)(this.cfg.arduino.serialDelay);
|
||||
if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) {
|
||||
ms = await this.proj.both();
|
||||
ms = await this.proj.both(id);
|
||||
}
|
||||
else {
|
||||
both = await Promise.all([this.proj.move(), this.proj2.move()]);
|
||||
both = await Promise.all([this.proj.move(id), this.proj2.move(id)]);
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
}
|
||||
|
@ -584,6 +593,7 @@ class Commands {
|
|||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
async alert(cmd) {
|
||||
const id = (0, uuid_1.v4)();
|
||||
let ms;
|
||||
try {
|
||||
ms = await this.alertObj.start(cmd.light); //change this meta
|
||||
|
@ -599,6 +609,7 @@ class Commands {
|
|||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
async pause(cmd) {
|
||||
const id = (0, uuid_1.v4)();
|
||||
let ms;
|
||||
try {
|
||||
ms = await (0, delay_1.delay)(cmd.light * 1000); //delay is in seconds
|
||||
|
@ -608,10 +619,15 @@ class Commands {
|
|||
}
|
||||
return ms;
|
||||
}
|
||||
/**
|
||||
* Sets the camera exposure (if supported).
|
||||
*
|
||||
**/
|
||||
async camera_exposure(cmd) {
|
||||
const id = (0, uuid_1.v4)();
|
||||
let ms;
|
||||
try {
|
||||
ms = await this.cam.exposure(cmd.light);
|
||||
ms = await this.cam.exposure(cmd.light, id);
|
||||
}
|
||||
catch (err) {
|
||||
throw err;
|
||||
|
@ -619,6 +635,7 @@ class Commands {
|
|||
return ms;
|
||||
}
|
||||
}
|
||||
exports.Commands = Commands;
|
||||
module.exports = function (cfg, proj, cam, light, alert, cam2, proj2, capper) {
|
||||
return new Commands(cfg, proj, cam, light, alert, cam2, proj2, capper);
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -5,4 +5,4 @@
|
|||
*
|
||||
* @returns {Promise} Promise to resolve after timeout
|
||||
**/
|
||||
export declare function delay(ms: number): Promise<unknown>;
|
||||
export declare function delay(ms: number): Promise<number>;
|
||||
|
|
|
@ -10,7 +10,7 @@ exports.delay = void 0;
|
|||
**/
|
||||
function delay(ms) {
|
||||
return new Promise((resolve) => {
|
||||
return setTimeout(resolve, ms);
|
||||
return setTimeout(() => { resolve(ms); }, ms);
|
||||
});
|
||||
}
|
||||
exports.delay = delay;
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delay/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb;;;;;;IAMI;AAEJ,SAAgB,KAAK,CAAE,EAAW;IACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAa,EAAE,EAAE;QACpC,OAAO,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACJ,CAAC;AAJD,sBAIC;AAED,MAAM,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delay/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb;;;;;;IAMI;AAEJ,SAAgB,KAAK,CAAE,EAAW;IACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAa,EAAE,EAAE;QACpC,OAAO,UAAU,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACJ,CAAC;AAJD,sBAIC;AAED,MAAM,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC"}
|
|
@ -1 +1,80 @@
|
|||
export {};
|
||||
import type { Settings } from 'settings';
|
||||
import type { Arduino } from 'arduino';
|
||||
/**
|
||||
* class representing the device discovery features
|
||||
*
|
||||
*
|
||||
**/
|
||||
export declare class Devices {
|
||||
settings: Settings;
|
||||
connected: any;
|
||||
private arduino;
|
||||
private log;
|
||||
private ui;
|
||||
private ipc;
|
||||
private mainWindow;
|
||||
private cam;
|
||||
/**
|
||||
* Constructor assigns arduino, settings, UI browser window and cam objects
|
||||
* locally to this class for reference.
|
||||
**/
|
||||
constructor(arduino: Arduino, settings: Settings, mainWindow: any, cam: any);
|
||||
/**
|
||||
* Initialize the log for "devices". Establish an ipc connection to the UI.
|
||||
* Start listening on that ipc connection.
|
||||
**/
|
||||
private init;
|
||||
/**
|
||||
* Listen to the "profile" channel for messages from the UI.
|
||||
**/
|
||||
private listen;
|
||||
/**
|
||||
* The "profile" channel callback. If a profile is changed, set it in the
|
||||
* local settings object.
|
||||
**/
|
||||
private listener;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
enumerate(): Promise<boolean>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private favor;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private distinguish;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private fakeProjector;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private fakeCamera;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private fakeLight;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private fakeCapper;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private connectDevice;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private all;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private remember;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private ready;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Devices = void 0;
|
||||
const delay_1 = require("delay");
|
||||
const log_1 = require("log");
|
||||
/**
|
||||
|
@ -579,6 +580,7 @@ class Devices {
|
|||
return true;
|
||||
}
|
||||
}
|
||||
exports.Devices = Devices;
|
||||
module.exports = function (arduino, settings, mainWindow, cam) {
|
||||
return new Devices(arduino, settings, mainWindow, cam);
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1,17 @@
|
|||
export {};
|
||||
export declare class Display {
|
||||
private platform;
|
||||
private displays;
|
||||
private display;
|
||||
private tmpdir;
|
||||
private wv;
|
||||
constructor(sys: any);
|
||||
open(): Promise<void>;
|
||||
show(src: string): Promise<void>;
|
||||
showPath(pathStr: string): Promise<unknown>;
|
||||
hide(): void;
|
||||
close(): Promise<boolean>;
|
||||
focus(): Promise<boolean>;
|
||||
field(ratio: number): Promise<boolean>;
|
||||
meter(): Promise<boolean>;
|
||||
change(id: any): void;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Display = void 0;
|
||||
/**
|
||||
* @module display
|
||||
* Provides features for displaying a full screen display of images for the digital module.
|
||||
|
@ -8,7 +9,7 @@ const path_1 = require("path");
|
|||
const url_1 = require("url");
|
||||
const delay_1 = require("delay");
|
||||
const log_1 = require("log");
|
||||
const { BrowserWindow } = require('electron');
|
||||
const electron_1 = require("electron");
|
||||
class WebView {
|
||||
constructor(platform, display) {
|
||||
this.opened = false;
|
||||
|
@ -37,7 +38,7 @@ class WebView {
|
|||
prefs.x = display.x + 50;
|
||||
prefs.y = display.y + 50;
|
||||
}
|
||||
this.digitalWindow = new BrowserWindow(prefs);
|
||||
this.digitalWindow = new electron_1.BrowserWindow(prefs);
|
||||
require('@electron/remote/main').enable(this.digitalWindow.webContents);
|
||||
this.digitalWindow.loadURL(pageUrl);
|
||||
if (process.argv.indexOf('-d') !== -1 || process.argv.indexOf('--dev') !== -1) {
|
||||
|
@ -192,6 +193,7 @@ class Display {
|
|||
});
|
||||
}
|
||||
}
|
||||
exports.Display = Display;
|
||||
module.exports = function (sys) {
|
||||
return new Display(sys);
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exec/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;AAEC,QAAA,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAA;AAEpD;;;;;;;;;;GAUG;AACH,KAAK,UAAU,IAAI,CAAC,GAAG,IAAe;IACrC,IAAI,GAAG,GAAY,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAI,IAAI,GAAY,IAAI,CAAA;IACxB,IAAI,IAAI,GAAS,IAAI,CAAA;IAErB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1D,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QACjD,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;SAAM,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QACvC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;IACD,IAAI,IAAI,KAAK,IAAI,EAAE;QAClB,IAAI,GAAG,EAAE,SAAS,EAAG,IAAI,GAAG,IAAI,EAAE,CAAA;KAClC;IACE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,IAAI,EACjC,CAAC,GAAW,EAAE,MAAe,EAAE,MAAc,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7E,MAAM;YACN,MAAM;SACN,CAAC,CAAC,CAAC;QACC,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exec/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;AAEC,QAAA,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAA;AAEpD;;;;;;;;;;GAUG;AACH,KAAK,UAAU,IAAI,CAAC,GAAG,IAAe;IACrC,IAAI,GAAG,GAAY,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAI,IAAI,GAAY,IAAI,CAAA;IACxB,IAAI,IAAI,GAAS,IAAI,CAAA;IAErB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1D,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QACjD,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;SAAM,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QACvC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;IACD,IAAI,IAAI,KAAK,IAAI,EAAE;QAClB,IAAI,GAAG,EAAE,SAAS,EAAG,IAAI,GAAG,IAAI,EAAE,CAAA;KAClC;IACE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAkB,EAAE,MAAiB,EAAE,EAAE;QAC5D,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,IAAI,EACjC,CAAC,GAAW,EAAE,MAAe,EAAE,MAAc,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7E,MAAM;YACN,MAAM;SACN,CAAC,CAAC,CAAC;QACC,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA"}
|
|
@ -16,5 +16,5 @@ function exit(msg, code = 0) {
|
|||
process.exit(code);
|
||||
}
|
||||
}
|
||||
module.exports.exit = exit;
|
||||
module.exports = { exit };
|
||||
//# sourceMappingURL=index.js.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exit/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;IAMI;AAEJ,SAAS,IAAI,CAAE,GAAY,EAAE,OAAgB,CAAC;IAC7C,IAAI,IAAI,KAAK,CAAC,EAAE;QACf,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,EAAE,CAAC;KACf;SAAM;QACN,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnB;AACF,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exit/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;IAMI;AAEJ,SAAS,IAAI,CAAE,GAAY,EAAE,OAAgB,CAAC;IAC7C,IAAI,IAAI,KAAK,CAAC,EAAE;QACf,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,EAAE,CAAC;KACf;SAAM;QACN,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnB;AACF,CAAC;AAED,MAAM,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC"}
|
|
@ -1 +1,84 @@
|
|||
export {};
|
||||
import type { FilmOutState } from 'filmout';
|
||||
interface StdErr {
|
||||
frame: number;
|
||||
fps: number;
|
||||
time: string;
|
||||
speed: number;
|
||||
size: string;
|
||||
remaining?: number;
|
||||
progress?: number;
|
||||
estimated?: number;
|
||||
}
|
||||
/** @class FFMPEG **/
|
||||
export declare class FFMPEG {
|
||||
private bin;
|
||||
private log;
|
||||
private id;
|
||||
private TMPDIR;
|
||||
private child;
|
||||
onProgress: Function;
|
||||
/**
|
||||
* @constructor
|
||||
* Creates an ffmpeg class
|
||||
*
|
||||
* @param {object} sys System object to be used to get temp directory
|
||||
**/
|
||||
constructor(sys: any);
|
||||
/**
|
||||
* Async method to call async functions from constructor
|
||||
**/
|
||||
init(): Promise<void>;
|
||||
/**
|
||||
* Add padding to a number to 5 places. Return a string.
|
||||
*
|
||||
* @param {integer} i Integer to pad
|
||||
*
|
||||
* @returns {string} Padded string
|
||||
**/
|
||||
private padded_frame;
|
||||
/**
|
||||
* Parse the stderr output of ffmpeg
|
||||
*
|
||||
* @param {string} line Stderr line
|
||||
**/
|
||||
private parseStderr;
|
||||
/**
|
||||
* Render a single frame from a video or image to a png.
|
||||
*
|
||||
* @param {object} state State object containing file data
|
||||
* @param {object} light Object containing color information for frame
|
||||
*
|
||||
* @returns {string} Path of frame
|
||||
**/
|
||||
frame(state: FilmOutState, light: any): Promise<string>;
|
||||
/**
|
||||
* Render all frames in a video to the temp directory.
|
||||
* Not in use.
|
||||
*
|
||||
* @param {string} video Path to video
|
||||
* @param {object} obj Not sure
|
||||
*
|
||||
* @returns {?}
|
||||
**/
|
||||
frames(state: FilmOutState): Promise<unknown>;
|
||||
cancel(): void;
|
||||
/**
|
||||
* Clears a specific frame from the tmp directory
|
||||
*
|
||||
* @param {integer} frame Integer of frame to clear
|
||||
*
|
||||
* @returns {boolean} True if successful, false if not
|
||||
**/
|
||||
clear(state: any): Promise<boolean>;
|
||||
/**
|
||||
* Deletes all frames in temp directory.
|
||||
*
|
||||
**/
|
||||
clearAll(): Promise<void>;
|
||||
/**
|
||||
* Checks if mcopy temp directory exists. If it doesn't,
|
||||
* creates it.
|
||||
**/
|
||||
private checkDir;
|
||||
}
|
||||
export type { StdErr };
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.FFMPEG = void 0;
|
||||
/** @module ffmpeg **/
|
||||
const path_1 = require("path");
|
||||
const fs_extra_1 = require("fs-extra");
|
||||
|
@ -350,6 +351,7 @@ class FFMPEG {
|
|||
}
|
||||
}
|
||||
}
|
||||
exports.FFMPEG = FFMPEG;
|
||||
module.exports = (sys) => {
|
||||
return new FFMPEG(sys);
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1,28 @@
|
|||
export {};
|
||||
export declare class FFPROBE {
|
||||
private bin;
|
||||
private log;
|
||||
constructor(sys: any);
|
||||
private init;
|
||||
/**
|
||||
* Parse the fps entry into a float representing the fps of a video
|
||||
**/
|
||||
private parseFps;
|
||||
/**
|
||||
* Get info on a video in json format. Use for filmout.
|
||||
*
|
||||
* @param {string} video Path to video
|
||||
*
|
||||
* @returns {object} Video info in an object
|
||||
**/
|
||||
info(video: string): Promise<any>;
|
||||
/**
|
||||
* Count the number of frames in the video using one of two methods.
|
||||
* The first uses -select_streams and is very fast. The second uses
|
||||
* -count_frames and is VERY slow.
|
||||
*
|
||||
* @param {string} video Path to video
|
||||
*
|
||||
* @returns {integer} Number of frames in video
|
||||
**/
|
||||
frames(video: string): Promise<any>;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.FFPROBE = void 0;
|
||||
/** @module FFPROBE **/
|
||||
const fs_extra_1 = require("fs-extra");
|
||||
const path_1 = require("path");
|
||||
const exec_1 = require("exec");
|
||||
const log_1 = require("log");
|
||||
//const spawn = require('spawn');
|
||||
//const exit = require('exit');
|
||||
class FFPROBE {
|
||||
constructor(sys) {
|
||||
this.bin = sys.deps.ffprobe;
|
||||
|
@ -140,6 +139,7 @@ class FFPROBE {
|
|||
return frames;
|
||||
}
|
||||
}
|
||||
exports.FFPROBE = FFPROBE;
|
||||
/*
|
||||
function map (obj : any) {
|
||||
console.dir(obj);
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ffprobe/index.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ffprobe/index.ts"],"names":[],"mappings":"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"}
|
|
@ -1 +1,171 @@
|
|||
export {};
|
||||
import type { Server } from 'server';
|
||||
import type { Display } from 'display';
|
||||
import type { Light } from 'light';
|
||||
import type { FFMPEG } from 'ffmpeg';
|
||||
import type { FFPROBE } from 'ffprobe';
|
||||
interface FilmOutState {
|
||||
hash: string;
|
||||
frame: number;
|
||||
frames: number;
|
||||
fps: number;
|
||||
seconds: number;
|
||||
still: boolean;
|
||||
path: string;
|
||||
fileName: string;
|
||||
directory: boolean;
|
||||
info: any;
|
||||
dir: boolean;
|
||||
enabled: boolean;
|
||||
files: string[];
|
||||
}
|
||||
/**
|
||||
* @module FilmOut
|
||||
**/
|
||||
export declare class FilmOut {
|
||||
private id;
|
||||
private videoExtensions;
|
||||
private stillExtensions;
|
||||
private sequenceExtensions;
|
||||
private gifExtension;
|
||||
state: FilmOutState;
|
||||
private ffmpeg;
|
||||
private ffprobe;
|
||||
private light;
|
||||
private ipc;
|
||||
private ui;
|
||||
private log;
|
||||
display: Display;
|
||||
server: Server;
|
||||
/**
|
||||
* @constructor
|
||||
* Builds FilmOut class with display, ffmpeg, ffprobe, ui and light as internal properties.
|
||||
*
|
||||
* @param {object} display Display object for showing frames
|
||||
* @param {object} ffmpeg FFMPEG wrapper
|
||||
* @param {object} ffprobe FFPROBE wrapper for file info
|
||||
* @param {object} ui Electron ui object
|
||||
* @param {object} light Light device object
|
||||
**/
|
||||
constructor(display: Display, server: Server, ffmpeg: FFMPEG, ffprobe: FFPROBE, ui: any, light: Light);
|
||||
/**
|
||||
* Async function for requiring log, ipcMain and bind events.
|
||||
**/
|
||||
private init;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private listen;
|
||||
/**
|
||||
* Create a hash of a string.
|
||||
*
|
||||
* @param {string} data Data to produce hash of
|
||||
*/
|
||||
private hash;
|
||||
/**
|
||||
* Sets filmout direction.
|
||||
*
|
||||
* @param {boolean} dir Direction of filmout
|
||||
**/
|
||||
set(dir: boolean): void;
|
||||
/**
|
||||
* Moves filmout a frame at a time.
|
||||
*
|
||||
* @returns {number} Time since start
|
||||
**/
|
||||
move(): Promise<number>;
|
||||
/**
|
||||
* Begin the process of exporting single frames from the video for display.
|
||||
**/
|
||||
start(): Promise<void>;
|
||||
/**
|
||||
* Ends the filmout process and closes the display.
|
||||
**/
|
||||
end(): Promise<void>;
|
||||
/**
|
||||
* Use a video file as a film out source on "projector"
|
||||
*
|
||||
* @param {object} evt Original connect event
|
||||
* @param {object} arg Arguments from ipc message
|
||||
*
|
||||
* @returns {boolean} Success state
|
||||
**/
|
||||
onConnect(evt: any, arg: any): Promise<boolean>;
|
||||
/**
|
||||
* Pre-export all frames from video for display.
|
||||
*
|
||||
* @param {object} evt IPC event
|
||||
* @param {object} arg IPC args
|
||||
*
|
||||
* @returns {any} UI send call
|
||||
*/
|
||||
onPreExport(evt: Event, arg: any): Promise<any>;
|
||||
/**
|
||||
* Return true if gif is animated, false if it is a still
|
||||
*
|
||||
* @param {string} pathStr Path to gif to check
|
||||
*
|
||||
* @returns {boolean} Whether or not gif is animated
|
||||
**/
|
||||
isGifAnimated(pathStr: string): Promise<boolean>;
|
||||
/**
|
||||
* Return information on a still image using the Jimp module
|
||||
*
|
||||
* @param {string} pathStr Path to gif to check
|
||||
*
|
||||
* @returns {object} Info about still from sharp
|
||||
**/
|
||||
stillInfo(pathStr: string): Promise<any>;
|
||||
/**
|
||||
* Return information on the first still image found in a
|
||||
* directory using the Jimp module.
|
||||
*
|
||||
* @param {array} images List of image paths
|
||||
*
|
||||
* @returns {object} Info about first image
|
||||
**/
|
||||
dirInfo(images: string[]): Promise<any>;
|
||||
/**
|
||||
* Returns a list of images within a directory, filtered
|
||||
* for supported types and sorted.
|
||||
*
|
||||
* @param {string} pathStr Path to directory
|
||||
*
|
||||
* @returns {array} Array of image paths
|
||||
**/
|
||||
dirList(pathStr: string): Promise<string[]>;
|
||||
/**
|
||||
* Preview a frame from the selected video.
|
||||
*
|
||||
* @param {object} evt Original event
|
||||
* @param {object} arg Arguments from message
|
||||
**/
|
||||
previewFrame(evt: any, arg: any): Promise<void>;
|
||||
/**
|
||||
* Open a single frame in a display window to preview filmout.
|
||||
*
|
||||
* @param {object} evt Original event
|
||||
* @param {object} arg Arguments from message
|
||||
**/
|
||||
preview(evt: any, arg: any): Promise<void>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
focus(evt: any, arg: any): Promise<void>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
field(evt: any, arg: any): Promise<void>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
meter(evt: any, arg: any): Promise<void>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
close(evt: any, arg: any): Promise<void>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
onDisplay(evt: any, arg: any): void;
|
||||
}
|
||||
export type { FilmOutState };
|
||||
|
|
|
@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.FilmOut = void 0;
|
||||
const animated_gif_detector_1 = __importDefault(require("animated-gif-detector"));
|
||||
const path_1 = require("path");
|
||||
const fs_extra_1 = require("fs-extra");
|
||||
|
@ -31,8 +32,11 @@ class FilmOut {
|
|||
this.sequenceExtensions = ['.png', '.jpg', '.jpeg'];
|
||||
this.gifExtension = '.gif';
|
||||
this.state = {
|
||||
hash: null,
|
||||
frame: 0,
|
||||
frames: 0,
|
||||
fps: 24,
|
||||
seconds: 0,
|
||||
still: false,
|
||||
path: null,
|
||||
fileName: null,
|
||||
|
@ -498,6 +502,7 @@ class FilmOut {
|
|||
this.log.info(`Changing the display to ${arg.display}`);
|
||||
}
|
||||
}
|
||||
exports.FilmOut = FilmOut;
|
||||
module.exports = (display, server, ffmpeg, ffprobe, ui, light) => {
|
||||
return new FilmOut(display, server, ffmpeg, ffprobe, ui, light);
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -12,4 +12,4 @@ export default class Frame {
|
|||
static solidColor(width: number, height: number, color: RGBA): Promise<unknown>;
|
||||
static blend(inPath: any, color: RGBA, imagePath: string): Promise<string>;
|
||||
}
|
||||
export {};
|
||||
export type { RGBA };
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
export declare class Intval {
|
||||
private _baseUrl;
|
||||
private req;
|
||||
constructor(url: string);
|
||||
move(): Promise<unknown>;
|
||||
setDir(dir: boolean): Promise<unknown>;
|
||||
setExposure(exposure: number, cb: Function): Promise<unknown>;
|
||||
move(): Promise<number>;
|
||||
setDir(dir: boolean): Promise<number>;
|
||||
setExposure(exposure: number, cb: Function): Promise<number>;
|
||||
connect(cb: Function): void;
|
||||
}
|
||||
|
|
|
@ -1,17 +1,40 @@
|
|||
'use strict';
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Intval = void 0;
|
||||
const request = __importStar(require("request"));
|
||||
class Intval {
|
||||
constructor(url) {
|
||||
this._baseUrl = `http://${url}`;
|
||||
this.req = require('request');
|
||||
}
|
||||
async move() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const timeStart = +new Date();
|
||||
const url = `${this._baseUrl}/frame`;
|
||||
//console.log(url)
|
||||
return this.req(url, (err, res, body) => {
|
||||
return request(url, (err, res, body) => {
|
||||
let ms = (+new Date()) - timeStart;
|
||||
if (err) {
|
||||
return reject(err);
|
||||
|
@ -25,7 +48,7 @@ class Intval {
|
|||
const timeStart = +new Date();
|
||||
const url = `${this._baseUrl}/dir?dir=${dir}`;
|
||||
//console.log(url)
|
||||
return this.req(url, (err, res, body) => {
|
||||
return request(url, (err, res, body) => {
|
||||
let ms = (+new Date()) - timeStart;
|
||||
if (err) {
|
||||
return reject(err);
|
||||
|
@ -38,7 +61,7 @@ class Intval {
|
|||
return new Promise((resolve, reject) => {
|
||||
const timeStart = +new Date();
|
||||
const url = `${this._baseUrl}/exposure?exposure=${exposure}`;
|
||||
return this.req(url, (err, res, body) => {
|
||||
return request(url, (err, res, body) => {
|
||||
let ms = (+new Date()) - timeStart;
|
||||
if (err) {
|
||||
return reject(err);
|
||||
|
@ -55,7 +78,7 @@ class Intval {
|
|||
uri: url,
|
||||
timeout: 5000
|
||||
};
|
||||
this.req(opts, (err, res, body) => {
|
||||
request(opts, (err, res, body) => {
|
||||
let ms = (+new Date()) - timeStart;
|
||||
if (err) {
|
||||
return cb(err, ms);
|
||||
|
@ -65,5 +88,5 @@ class Intval {
|
|||
}
|
||||
}
|
||||
exports.Intval = Intval;
|
||||
module.exports.Intval = Intval;
|
||||
module.exports = { Intval };
|
||||
//# sourceMappingURL=index.js.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intval/index.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intval/index.ts"],"names":[],"mappings":"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"}
|
|
@ -1 +1,35 @@
|
|||
export {};
|
||||
import type { Arduino } from 'arduino';
|
||||
export declare class Light {
|
||||
state: any;
|
||||
private arduino;
|
||||
private cfg;
|
||||
private ui;
|
||||
private log;
|
||||
private ipc;
|
||||
private enabled;
|
||||
private id;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
constructor(arduino: Arduino, cfg: any, ui: any);
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private init;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private listen;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private listener;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
set(rgb: number[], id: string, on?: boolean): Promise<any>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private end;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Light = void 0;
|
||||
const delay_1 = require("delay");
|
||||
const log_1 = require("log");
|
||||
class Light {
|
||||
|
@ -91,6 +92,7 @@ class Light {
|
|||
return res;
|
||||
}
|
||||
}
|
||||
exports.Light = Light;
|
||||
module.exports = function (arduino, cfg, ui) {
|
||||
return new Light(arduino, cfg, ui);
|
||||
};
|
||||
|
|
|
@ -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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"}
|
|
@ -246,4 +246,4 @@ export default class Mscript {
|
|||
**/
|
||||
contains(arr: string[], arr2: string[]): boolean;
|
||||
}
|
||||
export {};
|
||||
export type { RGB };
|
||||
|
|
|
@ -1 +1,6 @@
|
|||
export {};
|
||||
export declare class Processing {
|
||||
private _baseUrl;
|
||||
constructor(url: string);
|
||||
move(): Promise<number>;
|
||||
setDir(dir: boolean): Promise<number>;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Processing = void 0;
|
||||
const exec_1 = require("exec");
|
||||
class Processing {
|
||||
constructor(url) {
|
||||
|
@ -29,5 +30,6 @@ class Processing {
|
|||
});
|
||||
}
|
||||
}
|
||||
module.exports.Processing = Processing;
|
||||
exports.Processing = Processing;
|
||||
module.exports = { Processing };
|
||||
//# sourceMappingURL=index.js.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/processing/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,+BAA4B;AAE5B,MAAM,UAAU;IAEf,YAAa,GAAY;QACxB,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IAClG,CAAC;IAEM,KAAK,CAAC,IAAI;QAChB,OAAO,IAAI,OAAO,CAAE,KAAK,EAAE,OAAa,EAAE,MAAY,EAAE,EAAE;YACzD,MAAM,SAAS,GAAY,CAAC,IAAI,IAAI,EAAE,CAAA;YACtC,MAAM,GAAG,GAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;YACvC,MAAM,GAAG,GAAY,kBAAkB,GAAG,EAAE,CAAA;YAC5C,IAAI,GAAY,CAAA;YAChB,IAAI,EAAW,CAAA;YACf,kBAAkB;YAClB,IAAI;gBACH,GAAG,GAAG,MAAM,IAAA,WAAI,EAAC,GAAG,CAAC,CAAA;aACrB;YAAC,OAAO,GAAG,EAAE;gBACb,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;aAClB;YACD,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,SAAS,CAAA;YAC9B,OAAO,OAAO,CAAC,EAAE,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;IACH,CAAC;IACM,KAAK,CAAC,MAAM,CAAE,GAAa;QACjC,OAAO,IAAI,OAAO,CAAE,CAAC,OAAa,EAAE,MAAY,EAAE,EAAE;YACnD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AAED,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/processing/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;AAEZ,+BAA4B;AAE5B,MAAa,UAAU;IAEtB,YAAa,GAAY;QACxB,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IAClG,CAAC;IAEM,KAAK,CAAC,IAAI;QAChB,OAAO,IAAI,OAAO,CAAE,KAAK,EAAE,OAAkB,EAAE,MAAiB,EAAE,EAAE;YACnE,MAAM,SAAS,GAAY,CAAC,IAAI,IAAI,EAAE,CAAA;YACtC,MAAM,GAAG,GAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;YACvC,MAAM,GAAG,GAAY,kBAAkB,GAAG,EAAE,CAAA;YAC5C,IAAI,GAAY,CAAA;YAChB,IAAI,EAAW,CAAA;YACf,kBAAkB;YAClB,IAAI;gBACH,GAAG,GAAG,MAAM,IAAA,WAAI,EAAC,GAAG,CAAC,CAAA;aACrB;YAAC,OAAO,GAAG,EAAE;gBACb,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;aAClB;YACD,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,SAAS,CAAA;YAC9B,OAAO,OAAO,CAAC,EAAE,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;IACH,CAAC;IACM,KAAK,CAAC,MAAM,CAAE,GAAa;QACjC,OAAO,IAAI,OAAO,CAAE,CAAC,OAAkB,EAAE,MAAiB,EAAE,EAAE;YAC7D,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AA5BD,gCA4BC;AAED,MAAM,CAAC,OAAO,GAAG,EAAE,UAAU,EAAE,CAAA"}
|
|
@ -1,2 +1,47 @@
|
|||
/** class representing the Projector features **/
|
||||
export {};
|
||||
import type { Arduino } from 'arduino';
|
||||
import type { FilmOut } from 'filmout';
|
||||
interface ProjectorState {
|
||||
pos: number;
|
||||
dir: boolean;
|
||||
}
|
||||
export declare class Projector {
|
||||
state: ProjectorState;
|
||||
arduino: Arduino;
|
||||
private log;
|
||||
private cfg;
|
||||
private ui;
|
||||
private ipc;
|
||||
filmout: FilmOut;
|
||||
private id;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
constructor(arduino: Arduino, cfg: any, ui: any, filmout: any, second?: boolean);
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private init;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private listen;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
set(dir: boolean, id: string): Promise<any>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
move(id: string): Promise<any>;
|
||||
both(id: string): Promise<any>;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private listener;
|
||||
/**
|
||||
*
|
||||
**/
|
||||
end(cmd: string, id: string, ms: number): Promise<any>;
|
||||
}
|
||||
export type { ProjectorState };
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
"use strict";
|
||||
/** class representing the Projector features **/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Projector = void 0;
|
||||
const log_1 = require("log");
|
||||
class Projector {
|
||||
/**
|
||||
|
@ -56,16 +57,15 @@ class Projector {
|
|||
ms = await this.arduino.send(this.id, cmd);
|
||||
}
|
||||
catch (err) {
|
||||
this.log.error(`Error setting ${this.id} direction`, err);
|
||||
this.log.error(`Error setting ${this.id} direction: ${id}`, err);
|
||||
}
|
||||
}
|
||||
console.dir(ms);
|
||||
return await this.end(cmd, id, ms);
|
||||
}
|
||||
/**
|
||||
*
|
||||
**/
|
||||
async move(frame, id) {
|
||||
async move(id) {
|
||||
const cmd = this.cfg.arduino.cmd[this.id];
|
||||
let ms;
|
||||
if (this.filmout.state.enabled) {
|
||||
|
@ -81,20 +81,20 @@ class Projector {
|
|||
ms = await this.arduino.send(this.id, cmd);
|
||||
}
|
||||
catch (err) {
|
||||
this.log.error(`Error moving ${this.id}`, err);
|
||||
this.log.error(`Error moving ${this.id}: ${id}`, err);
|
||||
}
|
||||
}
|
||||
//this.log.info('Projector move time', { ms });
|
||||
return await this.end(cmd, id, ms);
|
||||
}
|
||||
async both(frame, id) {
|
||||
async both(id) {
|
||||
const cmd = this.cfg.arduino.cmd[this.id + 's'];
|
||||
let ms;
|
||||
try {
|
||||
ms = await this.arduino.send(this.id, cmd);
|
||||
}
|
||||
catch (err) {
|
||||
this.log.error(`Error moving ${this.id}`, err);
|
||||
this.log.error(`Error moving ${this.id}: ${id}`, err);
|
||||
}
|
||||
//this.log.info('Projectors move time', { ms });
|
||||
return await this.end(cmd, id, ms);
|
||||
|
@ -111,12 +111,12 @@ class Projector {
|
|||
this.log.error(err);
|
||||
}
|
||||
}
|
||||
else if (typeof arg.frame !== 'undefined') {
|
||||
else if (typeof arg.move !== 'undefined') {
|
||||
try {
|
||||
await this.move(arg.frame, arg.id);
|
||||
await this.move(arg.id);
|
||||
}
|
||||
catch (err) {
|
||||
this.log.error(err);
|
||||
this.log.error(`Error moving ${this.id}: ${arg.id}`, err);
|
||||
}
|
||||
}
|
||||
else if (typeof arg.val !== 'undefined') {
|
||||
|
@ -170,6 +170,7 @@ class Projector {
|
|||
return await this.ui.send(this.id, { cmd, id, ms });
|
||||
}
|
||||
}
|
||||
exports.Projector = Projector;
|
||||
module.exports = function (arduino, cfg, ui, filmout, second) {
|
||||
return new Projector(arduino, cfg, ui, filmout, second);
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1,100 @@
|
|||
export {};
|
||||
import { Commands } from 'cmd';
|
||||
export declare class Sequencer {
|
||||
private running;
|
||||
private paused;
|
||||
private grid;
|
||||
private gridLoops;
|
||||
private arr;
|
||||
private loops;
|
||||
private cfg;
|
||||
private cmd;
|
||||
private CMDS;
|
||||
private ipc;
|
||||
private ui;
|
||||
private log;
|
||||
private id;
|
||||
private alerted;
|
||||
private psbId;
|
||||
/**
|
||||
* @constructor
|
||||
* Create a new sequencer and assign command and UI as private sub-classes
|
||||
*
|
||||
* @param {object} cfg Configuration object
|
||||
* @param {object} cmd Shared command class
|
||||
* @param {object} ui Electron UI, browser window
|
||||
**/
|
||||
constructor(cfg: any, cmd: Commands, ui: any);
|
||||
/**
|
||||
* Take configuration object and assign all commands as keys
|
||||
* in the internal CMDS object.
|
||||
*
|
||||
* @param {object} obj Configuration object
|
||||
**/
|
||||
private cmds;
|
||||
/**
|
||||
* Initialize the class by requiring ipcMain from electron
|
||||
* and creating logger.
|
||||
*
|
||||
**/
|
||||
private init;
|
||||
/**
|
||||
* Bind ipc listener to channel 'sequencer' or current id of
|
||||
* class.
|
||||
**/
|
||||
private listen;
|
||||
/**
|
||||
* Listener callback function. Called whenever ipc
|
||||
* message is sent to channel 'sequencer'.
|
||||
*
|
||||
* @param {object} event IPC message event
|
||||
* @param {object} arg Arguments provided in message
|
||||
**/
|
||||
private listener;
|
||||
/**
|
||||
* Sets the value of the loops in the grid sequence
|
||||
* to value sent by UI in ipc message.
|
||||
*
|
||||
* @param {integer} count Number of loops to set grid sequence to
|
||||
**/
|
||||
setLoops(count: number): void;
|
||||
/**
|
||||
* Sets multiple steps at once
|
||||
*
|
||||
* @param {array} steps Array of steps to set or update
|
||||
**/
|
||||
setSteps(steps: any[]): void;
|
||||
/**
|
||||
* Resets multiple steps to default 'undefined' state
|
||||
*
|
||||
* @param {array} steps Array containing the x location of steps to unset
|
||||
**/
|
||||
unsetSteps(steps: number[]): void;
|
||||
/**
|
||||
* Starts a sequence with the existing grid sequence,
|
||||
* or if one is provided in the arg object, starts
|
||||
* that sequence.
|
||||
*
|
||||
* @param {object} arg Arguments from ipc message
|
||||
**/
|
||||
start(arg: any): Promise<void>;
|
||||
/**
|
||||
* Pauses sequence from UI.
|
||||
**/
|
||||
pause(): void;
|
||||
/**
|
||||
* Stops the sequence
|
||||
**/
|
||||
stop(): void;
|
||||
/**
|
||||
* Execute command @ step x. Wrapper with try catch.
|
||||
*
|
||||
* @param {integer} x Step to execute command at
|
||||
**/
|
||||
private step;
|
||||
/**
|
||||
* Locate step @ position x and execute the command.
|
||||
*
|
||||
* @param {integer} x Step to execute command at
|
||||
**/
|
||||
private cmdExec;
|
||||
}
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
'use strict';
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Sequencer = void 0;
|
||||
const log_1 = require("log");
|
||||
const electron_1 = require("electron");
|
||||
const delay_1 = __importDefault(require("delay"));
|
||||
const delay_1 = require("delay");
|
||||
/** @module lib/sequencer **/
|
||||
let seq;
|
||||
class Sequencer {
|
||||
|
@ -164,7 +162,7 @@ class Sequencer {
|
|||
}
|
||||
//UI initiates pause, not planned
|
||||
while (this.paused) {
|
||||
await (0, delay_1.default)(42);
|
||||
await (0, delay_1.delay)(42);
|
||||
}
|
||||
if (typeof this.arr[y] === 'undefined') {
|
||||
continue;
|
||||
|
@ -234,9 +232,11 @@ class Sequencer {
|
|||
const cmdOriginal = this.arr[x].cmd;
|
||||
const cmd = this.CMDS[cmdOriginal];
|
||||
this.log.info(`CMD: '${cmdOriginal}' -> ${cmd}`);
|
||||
//@ts-ignore
|
||||
return await this.cmd[cmd](this.arr[x]);
|
||||
}
|
||||
}
|
||||
exports.Sequencer = Sequencer;
|
||||
module.exports = function (cfg, cmd, ui) {
|
||||
return new Sequencer(cfg, cmd, ui);
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1,58 @@
|
|||
export {};
|
||||
import WebSocket from 'ws';
|
||||
import express, { Request, Response } from 'express';
|
||||
interface ServerData {
|
||||
[key: string]: string;
|
||||
PORT?: string;
|
||||
SCRIPT?: string;
|
||||
}
|
||||
interface ServerTemplate {
|
||||
name: string;
|
||||
path: string;
|
||||
data?: string;
|
||||
}
|
||||
interface ServerProxy {
|
||||
path: string;
|
||||
}
|
||||
interface ServerProxyList {
|
||||
[key: string]: ServerProxy;
|
||||
}
|
||||
interface ServerQueue {
|
||||
[key: string]: Function;
|
||||
}
|
||||
export declare class Server {
|
||||
private id;
|
||||
isActive: boolean;
|
||||
private log;
|
||||
private templates;
|
||||
private http;
|
||||
private httpd;
|
||||
private wss;
|
||||
private port;
|
||||
private wsPort;
|
||||
private proxy;
|
||||
private queue;
|
||||
private interval;
|
||||
private intervalPeriod;
|
||||
private ui;
|
||||
constructor(uiInput: any);
|
||||
private init;
|
||||
private load;
|
||||
template(name: string, data: ServerData): string;
|
||||
startWss(): Promise<void>;
|
||||
startHttp(): Promise<unknown>;
|
||||
start(): Promise<void>;
|
||||
stopHttp(): Promise<unknown>;
|
||||
stop(): Promise<void>;
|
||||
index(req: Request, res: Response, next: Function): express.Response<any, Record<string, any>>;
|
||||
image(req: Request, res: Response, next: Function): Promise<unknown>;
|
||||
addProxy(key: string, filePath: string): void;
|
||||
cmdAll(action: string, options?: any): Promise<boolean>;
|
||||
displayImage(src: string): Promise<boolean>;
|
||||
useServer(): boolean;
|
||||
/**
|
||||
* WSS
|
||||
**/
|
||||
cmd(ws: WebSocket, action: string, options?: any): Promise<unknown>;
|
||||
private notify;
|
||||
}
|
||||
export type { ServerData, ServerTemplate, ServerProxy, ServerProxyList, ServerQueue };
|
||||
|
|
|
@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Server = void 0;
|
||||
const ws_1 = require("ws");
|
||||
const express_1 = __importDefault(require("express"));
|
||||
const promises_1 = require("fs/promises");
|
||||
|
@ -198,6 +199,7 @@ class Server {
|
|||
this.ui.send('gui', { notify: { title, message } });
|
||||
}
|
||||
}
|
||||
exports.Server = Server;
|
||||
module.exports = function (ui) {
|
||||
return new Server(ui);
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -44,7 +44,7 @@ cam.move = function (callback) {
|
|||
return false;
|
||||
}
|
||||
obj = {
|
||||
frame : true,
|
||||
move : true,
|
||||
id : uuid()
|
||||
};
|
||||
ipcRenderer.sendSync(cam.id, obj);
|
||||
|
|
|
@ -35,7 +35,7 @@ proj.move = function (callback) {
|
|||
return false;
|
||||
}
|
||||
obj = {
|
||||
frame : true,
|
||||
move : true,
|
||||
id : uuid()
|
||||
};
|
||||
ipcRenderer.sendSync(proj.id, obj);
|
||||
|
@ -149,7 +149,7 @@ proj.second.move = function (callback) {
|
|||
return false;
|
||||
}
|
||||
obj = {
|
||||
frame : true,
|
||||
move : true,
|
||||
id : uuid()
|
||||
};
|
||||
ipcRenderer.sendSync(proj.second.id, obj);
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
'use strict';
|
||||
|
||||
import { delay } from 'delay'
|
||||
import { delay } from 'delay';
|
||||
import { Log } from 'log';
|
||||
import type { Logger } from 'winston';
|
||||
|
||||
/* class representing alert functionality */
|
||||
|
||||
class Alert {
|
||||
export class Alert {
|
||||
private ipc : any
|
||||
private log : Logger
|
||||
private id : string = 'alert'
|
||||
|
@ -51,7 +51,7 @@ class Alert {
|
|||
/**
|
||||
*
|
||||
**/
|
||||
public async start (cmd : string) {
|
||||
public async start (cmd : string) : Promise<number> {
|
||||
const start = +new Date();
|
||||
const msg : string = (cmd + '').replace('ALERT', '').replace('Alert', '').replace('alert', '').trim()
|
||||
this.ui.send(this.id, { msg })
|
||||
|
|
|
@ -45,14 +45,12 @@ const KNOWN : string[] = [
|
|||
* Class representing the arduino communication features
|
||||
**/
|
||||
|
||||
class Arduino {
|
||||
export class Arduino {
|
||||
|
||||
private log : Logger;
|
||||
private path : any = {};
|
||||
private known : string[] = KNOWN;
|
||||
private alias : any = {};
|
||||
private serial : any = {};
|
||||
private hasState : any = {};
|
||||
private baud : number = 57600;
|
||||
private queue : any = {};
|
||||
private timer : number = 0;
|
||||
|
@ -62,7 +60,9 @@ class Arduino {
|
|||
private keys : string[];
|
||||
private values : string[];
|
||||
|
||||
public alias : any = {};
|
||||
public stateStr : any = {};
|
||||
public hasState : any = {};
|
||||
|
||||
constructor (errorState : Function) {
|
||||
this.errorState = errorState;
|
||||
|
|
|
@ -5,28 +5,35 @@ import { Processing } from 'processing';
|
|||
import { delay } from 'delay';
|
||||
import { Log } from 'log';
|
||||
import type { Logger } from 'winston';
|
||||
import type { Arduino } from 'arduino';
|
||||
import type { FilmOut } from 'filmout';
|
||||
|
||||
interface CameraState{
|
||||
pos : number,
|
||||
dir : boolean,
|
||||
capper : boolean
|
||||
}
|
||||
|
||||
/** class representing camera functions **/
|
||||
|
||||
class Camera {
|
||||
private state : any = {
|
||||
export class Camera {
|
||||
public state : CameraState = {
|
||||
pos : 0,
|
||||
dir : true,
|
||||
capepr: false
|
||||
capper: false
|
||||
};
|
||||
private arduino : Arduino = null;
|
||||
private intval : any = null;
|
||||
private processing : any = null;
|
||||
public arduino : Arduino = null;
|
||||
private intval : Intval = null;
|
||||
private processing : Processing = null;
|
||||
private log : Logger;
|
||||
private cfg : any;
|
||||
private filmout : any;
|
||||
private filmout : FilmOut;
|
||||
private ui : any;
|
||||
private ipc : any;
|
||||
private id : string = 'camera';
|
||||
/**
|
||||
*
|
||||
**/
|
||||
constructor (arduino : Arduino, cfg : any, ui : any, filmout : any, second : boolean = false) {
|
||||
constructor (arduino : Arduino, cfg : any, ui : any, filmout : FilmOut, second : boolean = false) {
|
||||
this.arduino = arduino;
|
||||
this.cfg = cfg;
|
||||
this.ui = ui;
|
||||
|
@ -114,7 +121,7 @@ class Camera {
|
|||
/**
|
||||
*
|
||||
**/
|
||||
public async move (frame : number, id : string) {
|
||||
public async move (id : string) {
|
||||
const cmd : string = this.cfg.arduino.cmd[this.id];
|
||||
let ms : number;
|
||||
if (this.filmout.state.enabled) {
|
||||
|
@ -130,7 +137,7 @@ class Camera {
|
|||
try {
|
||||
ms = await this.intval.move();
|
||||
} catch (err) {
|
||||
this.log.error(err);
|
||||
this.log.error(`Error moving intval ${this.id}: ${id}`, err);
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
|
@ -147,13 +154,13 @@ class Camera {
|
|||
return this.end(cmd, id, ms);
|
||||
}
|
||||
|
||||
public async both (frame : any, id : string) {
|
||||
public async both (id : string) {
|
||||
const cmd : string = this.cfg.arduino.cmd[id];
|
||||
let ms : number;
|
||||
try {
|
||||
ms = await this.arduino.send(this.id, cmd)
|
||||
} catch (err) {
|
||||
this.log.error(`Error moving ${this.id}`, err)
|
||||
this.log.error(`Error moving both ${this.id}: ${id}`, err)
|
||||
}
|
||||
//this.log.info('Cameras move time', { ms });
|
||||
return await this.end(cmd, id, ms)
|
||||
|
@ -172,7 +179,7 @@ class Camera {
|
|||
let confirmExposure : number;
|
||||
|
||||
if (this.intval) {
|
||||
return this.intval.setExposure(this.id, exposure, (ms : number) => {
|
||||
return this.intval.setExposure(exposure, (ms : number) => {
|
||||
this.ui.send('timing', { c : 'c', ms : exposure });
|
||||
return this.end(cmd, id, ms);
|
||||
});
|
||||
|
@ -263,9 +270,9 @@ class Camera {
|
|||
} catch (err) {
|
||||
this.log.error(err)
|
||||
}
|
||||
} else if (typeof arg.frame !== 'undefined') {
|
||||
} else if (typeof arg.move !== 'undefined') {
|
||||
try {
|
||||
await this.move(arg.frame, arg.id)
|
||||
await this.move(arg.id)
|
||||
} catch (err) {
|
||||
this.log.error(err)
|
||||
}
|
||||
|
|
|
@ -5,25 +5,26 @@ import { Processing } from 'processing';
|
|||
import { delay } from 'delay';
|
||||
import { Log } from 'log';
|
||||
import type { Logger } from 'winston';
|
||||
|
||||
import type { FilmOut } from 'filmout';
|
||||
import type { Arduino } from 'arduino';
|
||||
|
||||
/** class representing capper functions **/
|
||||
|
||||
class Capper {
|
||||
export class Capper {
|
||||
private state : any = {
|
||||
capper : false
|
||||
};
|
||||
private arduino : Arduino = null;
|
||||
private log : Logger;
|
||||
private cfg : any;
|
||||
private filmout : any;
|
||||
private filmout : FilmOut;
|
||||
private ui : any;
|
||||
private ipc : any;
|
||||
private id : string = 'capper';
|
||||
/**
|
||||
*
|
||||
**/
|
||||
constructor (arduino : Arduino, cfg : any, ui : any, filmout : any) {
|
||||
constructor (arduino : Arduino, cfg : any, ui : any, filmout : FilmOut) {
|
||||
this.arduino = arduino;
|
||||
this.cfg = cfg;
|
||||
this.ui = ui;
|
||||
|
@ -50,7 +51,7 @@ class Capper {
|
|||
/**
|
||||
*
|
||||
**/
|
||||
public async capper (state : boolean, id : string) {
|
||||
public async capper (state : boolean, id : string) : Promise<number> {
|
||||
let cmd : string;
|
||||
let ms : number;
|
||||
|
||||
|
@ -77,9 +78,9 @@ class Capper {
|
|||
private async listener (event : any, arg : any) {
|
||||
if (typeof arg.state !== 'undefined') {
|
||||
try {
|
||||
await this.capper(arg.state, arg.id)
|
||||
await this.capper(arg.state, arg.id);
|
||||
} catch (err) {
|
||||
this.log.error(err)
|
||||
this.log.error(err);
|
||||
}
|
||||
}
|
||||
event.returnValue = true
|
||||
|
@ -88,8 +89,8 @@ class Capper {
|
|||
/**
|
||||
*
|
||||
**/
|
||||
private async end (cmd : string, id : string, ms : number) {
|
||||
let message = '';
|
||||
private async end (cmd : string, id : string, ms : number) : Promise<number> {
|
||||
let message : string = '';
|
||||
|
||||
if (cmd === this.cfg.arduino.cmd.capper_on) {
|
||||
message = 'Capper set to ON';
|
||||
|
@ -97,10 +98,11 @@ class Capper {
|
|||
message = 'Capper set to OFF';
|
||||
}
|
||||
|
||||
message += ` ${ms}ms`
|
||||
message += ` ${ms}ms`;
|
||||
|
||||
this.log.info(message);
|
||||
this.ui.send(this.id, {cmd: cmd, id : id, ms: ms});
|
||||
return ms;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
186
src/cmd/index.ts
186
src/cmd/index.ts
|
@ -2,18 +2,23 @@
|
|||
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import { delay } from 'delay';
|
||||
import type { Projector } from 'proj';
|
||||
import type { Camera } from 'cam';
|
||||
import type { Light } from 'light';
|
||||
import type { Capper } from 'capper';
|
||||
import type { Alert } from 'alert';
|
||||
|
||||
class Commands {
|
||||
private proj : any;
|
||||
private cam : any;
|
||||
private light : any;
|
||||
export class Commands {
|
||||
public proj : Projector;
|
||||
public cam : Camera;
|
||||
public light : Light;
|
||||
|
||||
private cam2 : any;
|
||||
private proj2 : any;
|
||||
public cam2 : Camera;
|
||||
public proj2 : Projector;
|
||||
|
||||
private capper : any;
|
||||
public capper : Capper;
|
||||
|
||||
private alertObj : any;
|
||||
public alertObj : Alert;
|
||||
|
||||
private cfg : any;
|
||||
private ipc : any;
|
||||
|
@ -33,7 +38,7 @@ class Commands {
|
|||
*
|
||||
**/
|
||||
|
||||
constructor (cfg : any, proj : any, cam : any, light : any, alert : any, cam2 : any = null, proj2 : any = null, capper : any = null) {
|
||||
constructor (cfg : any, proj : Projector, cam : any, light : Light, alert : Alert, cam2 : any = null, proj2 : Projector = null, capper : any = null) {
|
||||
this.cfg = cfg;
|
||||
this.proj = proj;
|
||||
this.cam = cam;
|
||||
|
@ -52,15 +57,16 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async projector_forward () {
|
||||
public async projector_forward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
let ms : number;
|
||||
try {
|
||||
if (!this.proj.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.proj.set(true);
|
||||
await this.proj.set(true, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
ms = await this.proj.move();
|
||||
ms = await this.proj.move(id);
|
||||
} catch (err) {
|
||||
throw err;
|
||||
}
|
||||
|
@ -71,15 +77,16 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async projector_backward () {
|
||||
public async projector_backward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
let ms : number;
|
||||
try {
|
||||
if (this.proj.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.proj.set(false);
|
||||
await this.proj.set(false, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
ms = await this.proj.move();
|
||||
ms = await this.proj.move(id);
|
||||
} catch (err) {
|
||||
throw err;
|
||||
}
|
||||
|
@ -92,7 +99,7 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async camera_forward () {
|
||||
public async camera_forward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
const off : number[] = [0, 0, 0];
|
||||
let rgb : number[] = [255, 255, 255];
|
||||
|
@ -100,12 +107,12 @@ class Commands {
|
|||
try {
|
||||
if (!this.cam.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(true);
|
||||
await this.cam.set(true, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
ms = await this.cam.move();
|
||||
ms = await this.cam.move(id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
} catch (err) {
|
||||
|
@ -118,14 +125,14 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async black_forward () {
|
||||
public async black_forward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
const off : number[] = [0, 0, 0];
|
||||
let ms : number = 0;
|
||||
try {
|
||||
if (!this.cam.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(true);
|
||||
await this.cam.set(true, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
if (this.capper) {
|
||||
|
@ -134,7 +141,7 @@ class Commands {
|
|||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id); //make sure set to off
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
ms += await this.cam.move();
|
||||
ms += await this.cam.move(id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
if (this.capper) {
|
||||
|
@ -152,7 +159,7 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async camera_backward () {
|
||||
public async camera_backward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
const off : number[] = [0, 0, 0];
|
||||
let rgb : number[] = [255, 255, 255];
|
||||
|
@ -160,12 +167,12 @@ class Commands {
|
|||
try {
|
||||
if (this.cam.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(false);
|
||||
await this.cam.set(false, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
ms = await this.cam.move();
|
||||
ms = await this.cam.move(id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
} catch (err) {
|
||||
|
@ -178,14 +185,14 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async black_backward () {
|
||||
public async black_backward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
const off : number[] = [0, 0, 0];
|
||||
let ms : number = 0;
|
||||
try {
|
||||
if (this.cam.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(false);
|
||||
await this.cam.set(false, id);
|
||||
}
|
||||
if (this.capper) {
|
||||
ms += await this.capper.capper(true, id);
|
||||
|
@ -193,7 +200,7 @@ class Commands {
|
|||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id); //make sure set to off
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
ms += await this.cam.move();
|
||||
ms += await this.cam.move(id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
if (this.capper) {
|
||||
|
@ -212,7 +219,7 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async camera_second_forward () {
|
||||
public async camera_second_forward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
const off : number[] = [0, 0, 0];
|
||||
let rgb : number[] = [255, 255, 255];
|
||||
|
@ -220,12 +227,12 @@ class Commands {
|
|||
try {
|
||||
if (!this.cam2.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam2.set(true);
|
||||
await this.cam2.set(true, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
ms = await this.cam2.move();
|
||||
ms = await this.cam2.move(id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
} catch (err) {
|
||||
|
@ -241,7 +248,7 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async camera_second_backward () {
|
||||
public async camera_second_backward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
const off : number[] = [0, 0, 0];
|
||||
let rgb : number[] = [255, 255, 255];
|
||||
|
@ -249,12 +256,12 @@ class Commands {
|
|||
try {
|
||||
if (this.cam2.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam2.set(false);
|
||||
await this.cam2.set(false, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
ms = await this.cam2.move();
|
||||
ms = await this.cam2.move(id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(off, id);
|
||||
} catch (err) {
|
||||
|
@ -271,7 +278,7 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async cameras_forward () {
|
||||
public async cameras_forward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
const off : number[] = [0, 0, 0];
|
||||
let rgb : number[] = [255, 255, 255];
|
||||
|
@ -280,20 +287,20 @@ class Commands {
|
|||
try {
|
||||
if (!this.cam.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(true);
|
||||
await this.cam.set(true, id);
|
||||
}
|
||||
if (!this.cam2.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam2.set(true);
|
||||
await this.cam2.set(true, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
|
||||
if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) {
|
||||
ms = await this.cam.both();
|
||||
ms = await this.cam.both(id);
|
||||
} else {
|
||||
both = await Promise.all( [this.cam.move(), this.cam2.move()] );
|
||||
both = await Promise.all( [this.cam.move(id), this.cam2.move(id)] );
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
|
||||
|
@ -311,7 +318,7 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async cameras_backward () {
|
||||
public async cameras_backward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
const off : number[] = [0, 0, 0];
|
||||
let rgb : number[] = [255, 255, 255];
|
||||
|
@ -320,20 +327,20 @@ class Commands {
|
|||
try {
|
||||
if (this.cam.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(false);
|
||||
await this.cam.set(false, id);
|
||||
}
|
||||
if (this.cam2.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam2.set(false);
|
||||
await this.cam2.set(false, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
|
||||
if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) {
|
||||
ms = await this.cam.both();
|
||||
ms = await this.cam.both(id);
|
||||
} else {
|
||||
both = await Promise.all( [this.cam.move(), this.cam2.move()] );
|
||||
both = await Promise.all( [this.cam.move(id), this.cam2.move(id)] );
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
|
||||
|
@ -352,7 +359,7 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async camera_forward_camera_second_backward () {
|
||||
public async camera_forward_camera_second_backward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
const off : number[] = [0, 0, 0];
|
||||
let rgb : number[] = [255, 255, 255];
|
||||
|
@ -361,20 +368,20 @@ class Commands {
|
|||
try {
|
||||
if (!this.cam.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(true);
|
||||
await this.cam.set(true, id);
|
||||
}
|
||||
if (this.cam2.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam2.set(false);
|
||||
await this.cam2.set(false, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
|
||||
if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) {
|
||||
ms = await this.cam.both();
|
||||
ms = await this.cam.both(id);
|
||||
} else {
|
||||
both = await Promise.all( [this.cam.move(), this.cam2.move()] );
|
||||
both = await Promise.all( [this.cam.move(id), this.cam2.move(id)] );
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
|
||||
|
@ -392,7 +399,7 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async camera_backward_camera_second_forward () {
|
||||
public async camera_backward_camera_second_forward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
const off : number[] = [0, 0, 0];
|
||||
let rgb : number[] = [255, 255, 255];
|
||||
|
@ -401,20 +408,20 @@ class Commands {
|
|||
try {
|
||||
if (this.cam.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam.set(false);
|
||||
await this.cam.set(false, id);
|
||||
}
|
||||
if (!this.cam2.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.cam2.set(true);
|
||||
await this.cam2.set(true, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.light.set(rgb, id);
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
|
||||
if (this.cam && this.cam2 && this.cam.arduino.alias.camera === this.cam.arduino.alias.camera_second) {
|
||||
ms = await this.cam.both();
|
||||
ms = await this.cam.both(id);
|
||||
} else {
|
||||
both = await Promise.all( [this.cam.move(), this.cam2.move()] );
|
||||
both = await Promise.all( [this.cam.move(id), this.cam2.move(id)] );
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
|
||||
|
@ -431,15 +438,16 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async projector_second_forward () {
|
||||
public async projector_second_forward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
let ms : number;
|
||||
try {
|
||||
if (!this.proj2.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.proj2.set(true);
|
||||
await this.proj2.set(true, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
ms = await this.proj2.move();
|
||||
ms = await this.proj2.move(id);
|
||||
} catch (err) {
|
||||
throw err;
|
||||
}
|
||||
|
@ -450,15 +458,16 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async projector_second_backward () {
|
||||
public async projector_second_backward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
let ms : number;
|
||||
try {
|
||||
if (this.proj2.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.proj2.set(false);
|
||||
await this.proj2.set(false, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
ms = await this.proj2.move();
|
||||
ms = await this.proj2.move(id);
|
||||
} catch (err) {
|
||||
throw err;
|
||||
}
|
||||
|
@ -470,23 +479,24 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async projectors_forward () {
|
||||
public async projectors_forward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
let both : number[];
|
||||
let ms : number;
|
||||
try {
|
||||
if (!this.proj.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.proj.set(true);
|
||||
await this.proj.set(true, id);
|
||||
}
|
||||
if (!this.proj2.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.proj2.set(true);
|
||||
await this.proj2.set(true, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) {
|
||||
ms = await this.proj.both();
|
||||
ms = await this.proj.both(id);
|
||||
} else {
|
||||
both = await Promise.all([ this.proj.move(), this.proj2.move() ]);
|
||||
both = await Promise.all([ this.proj.move(id), this.proj2.move(id) ]);
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
} catch (err) {
|
||||
|
@ -499,23 +509,24 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async projectors_backward () {
|
||||
public async projectors_backward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
let both : number[];
|
||||
let ms : number;
|
||||
try {
|
||||
if (this.proj.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.proj.set(false);
|
||||
await this.proj.set(false, id);
|
||||
}
|
||||
if (this.proj2.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.proj2.set(false);
|
||||
await this.proj2.set(false, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) {
|
||||
ms = await this.proj.both();
|
||||
ms = await this.proj.both(id);
|
||||
} else {
|
||||
both = await Promise.all([ this.proj.move(), this.proj2.move() ]);
|
||||
both = await Promise.all([ this.proj.move(id), this.proj2.move(id) ]);
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
} catch (err) {
|
||||
|
@ -530,23 +541,24 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async projector_forward_projector_second_backward () {
|
||||
public async projector_forward_projector_second_backward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
let both : number[];
|
||||
let ms : number;
|
||||
try {
|
||||
if (!this.proj.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.proj.set(true);
|
||||
await this.proj.set(true, id);
|
||||
}
|
||||
if (this.proj2.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.proj2.set(false);
|
||||
await this.proj2.set(false, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) {
|
||||
ms = await this.proj.both();
|
||||
ms = await this.proj.both(id);
|
||||
} else {
|
||||
both = await Promise.all([ this.proj.move(), this.proj2.move() ]);
|
||||
both = await Promise.all([ this.proj.move(id), this.proj2.move(id) ]);
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
} catch (err) {
|
||||
|
@ -560,23 +572,24 @@ class Commands {
|
|||
*
|
||||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
public async projector_backward_projector_second_forward () {
|
||||
public async projector_backward_projector_second_forward () : Promise<number> {
|
||||
const id : string = uuid();
|
||||
let both : number[];
|
||||
let ms : number;
|
||||
try {
|
||||
if (this.proj.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.proj.set(false);
|
||||
await this.proj.set(false, id);
|
||||
}
|
||||
if (!this.proj2.state.dir) {
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
await this.proj2.set(true);
|
||||
await this.proj2.set(true, id);
|
||||
}
|
||||
await delay(this.cfg.arduino.serialDelay);
|
||||
if (this.proj && this.proj2 && this.proj.arduino.alias.projector === this.proj.arduino.alias.projector_second) {
|
||||
ms = await this.proj.both();
|
||||
ms = await this.proj.both(id);
|
||||
} else {
|
||||
both = await Promise.all([ this.proj.move(), this.proj2.move() ]);
|
||||
both = await Promise.all([ this.proj.move(id), this.proj2.move(id) ]);
|
||||
ms = Math.max(...both);
|
||||
}
|
||||
} catch (err) {
|
||||
|
@ -591,7 +604,8 @@ class Commands {
|
|||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
|
||||
public async alert (cmd : any) {
|
||||
public async alert (cmd : any) : Promise<number> {
|
||||
const id : string = uuid();
|
||||
let ms : number;
|
||||
try {
|
||||
ms = await this.alertObj.start(cmd.light); //change this meta
|
||||
|
@ -608,7 +622,8 @@ class Commands {
|
|||
* @returns {integer} Length of action in ms
|
||||
**/
|
||||
|
||||
public async pause (cmd : any) {
|
||||
public async pause (cmd : any) : Promise<number>{
|
||||
const id : string = uuid();
|
||||
let ms : number;
|
||||
try {
|
||||
ms = await delay(cmd.light * 1000); //delay is in seconds
|
||||
|
@ -618,10 +633,15 @@ class Commands {
|
|||
return ms;
|
||||
}
|
||||
|
||||
public async camera_exposure (cmd : any) {
|
||||
/**
|
||||
* Sets the camera exposure (if supported).
|
||||
*
|
||||
**/
|
||||
public async camera_exposure (cmd : any) : Promise<number>{
|
||||
const id : string = uuid();
|
||||
let ms : number;
|
||||
try {
|
||||
ms = await this.cam.exposure(cmd.light);
|
||||
ms = await this.cam.exposure(cmd.light, id);
|
||||
} catch (err) {
|
||||
throw err;
|
||||
}
|
||||
|
|
|
@ -8,9 +8,9 @@
|
|||
* @returns {Promise} Promise to resolve after timeout
|
||||
**/
|
||||
|
||||
export function delay (ms : number) {
|
||||
export function delay (ms : number) : Promise<number> {
|
||||
return new Promise((resolve : any) => {
|
||||
return setTimeout(resolve, ms);
|
||||
return setTimeout(() => { resolve(ms) }, ms);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
import { delay } from 'delay';
|
||||
import { Log } from 'log';
|
||||
import type { Logger } from 'winston';
|
||||
import type { Settings } from '../settings';
|
||||
import type { Settings } from 'settings';
|
||||
import type { Arduino } from 'arduino';
|
||||
|
||||
/**
|
||||
* class representing the device discovery features
|
||||
|
@ -11,7 +12,7 @@ import type { Settings } from '../settings';
|
|||
*
|
||||
**/
|
||||
|
||||
class Devices {
|
||||
export class Devices {
|
||||
|
||||
public settings : Settings;
|
||||
public connected : any = {}
|
||||
|
|
|
@ -10,15 +10,14 @@ import { format as urlFormat } from 'url';
|
|||
import { delay } from 'delay';
|
||||
import { Log } from 'log';
|
||||
import type { Logger } from 'winston';
|
||||
|
||||
const { BrowserWindow } = require('electron');
|
||||
import { BrowserWindow } from 'electron';
|
||||
|
||||
class WebView {
|
||||
private digitalWindow : any;
|
||||
public opened : boolean = false;
|
||||
public showing : boolean = false;
|
||||
private platform : string;
|
||||
public display : any;
|
||||
public display : any; //needs type
|
||||
private loadWait : any = {};
|
||||
private ipc : any;
|
||||
private log : Logger;
|
||||
|
@ -158,7 +157,7 @@ class WebView {
|
|||
}
|
||||
}
|
||||
|
||||
class Display {
|
||||
export class Display {
|
||||
private platform : string;
|
||||
private displays : any[];
|
||||
private display : any;
|
||||
|
|
|
@ -29,7 +29,7 @@ async function exec(...args : string[]) {
|
|||
if (opts === null) {
|
||||
opts = { maxBuffer : 1024 * 1024 }
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
return new Promise((resolve : Function, reject : Function) => {
|
||||
const child = execRaw(cmd, opts,
|
||||
(err : Error, stdout : string, stderr: string) => err ? reject(err) : resolve({
|
||||
stdout,
|
||||
|
|
|
@ -18,4 +18,4 @@ function exit (msg : string, code : number = 0) {
|
|||
}
|
||||
}
|
||||
|
||||
module.exports.exit = exit;
|
||||
module.exports = { exit };
|
|
@ -10,16 +10,7 @@ import { Log } from 'log';
|
|||
import type { Logger } from 'winston';
|
||||
|
||||
import Frame from 'frame';
|
||||
|
||||
interface FilmoutState {
|
||||
frame : number;
|
||||
path : string;
|
||||
hash : string;
|
||||
info : any;
|
||||
frames?: number;
|
||||
directory?: boolean;
|
||||
files?: string[];
|
||||
}
|
||||
import type { FilmOutState } from 'filmout';
|
||||
|
||||
interface StdErr {
|
||||
frame : number;
|
||||
|
@ -58,7 +49,7 @@ async function spawnAsync (bin : string, args : string[]) {
|
|||
|
||||
/** @class FFMPEG **/
|
||||
|
||||
class FFMPEG {
|
||||
export class FFMPEG {
|
||||
private bin : string;
|
||||
private log : Logger;
|
||||
private id : string = 'ffmpeg';
|
||||
|
@ -140,7 +131,7 @@ class FFMPEG {
|
|||
*
|
||||
* @returns {string} Path of frame
|
||||
**/
|
||||
public async frame (state : FilmoutState, light : any) {
|
||||
public async frame (state : FilmOutState, light : any) {
|
||||
const frameNum : number = state.frame;
|
||||
const video : string = state.directory ? state.files[frameNum] : state.path;
|
||||
const w : number = state.info.width;
|
||||
|
@ -220,7 +211,7 @@ class FFMPEG {
|
|||
* @returns {?}
|
||||
**/
|
||||
|
||||
public async frames (state : FilmoutState) {
|
||||
public async frames (state : FilmOutState) {
|
||||
const video : string = state.path;
|
||||
const w : number = state.info.width;
|
||||
const h : number = state.info.height;
|
||||
|
@ -416,3 +407,5 @@ class FFMPEG {
|
|||
module.exports = (sys : any) => {
|
||||
return new FFMPEG(sys);
|
||||
}
|
||||
|
||||
export type { StdErr };
|
|
@ -7,10 +7,8 @@ import { extname } from 'path';
|
|||
import { exec } from 'exec';
|
||||
import { Log } from 'log';
|
||||
import type { Logger } from 'winston';
|
||||
//const spawn = require('spawn');
|
||||
//const exit = require('exit');
|
||||
|
||||
class FFPROBE {
|
||||
export class FFPROBE {
|
||||
private bin : string;
|
||||
private log : Logger;
|
||||
constructor (sys : any) {
|
||||
|
|
|
@ -9,20 +9,43 @@ import Jimp from 'jimp';
|
|||
import Frame from 'frame';
|
||||
import { Log } from 'log';
|
||||
import type { Logger } from 'winston';
|
||||
import type { Server } from 'server';
|
||||
import type { Display } from 'display';
|
||||
import type { Light } from 'light';
|
||||
import type { FFMPEG } from 'ffmpeg';
|
||||
import type { FFPROBE } from 'ffprobe';
|
||||
|
||||
interface FilmOutState {
|
||||
hash : string,
|
||||
frame : number,
|
||||
frames : number,
|
||||
fps : number,
|
||||
seconds : number,
|
||||
still : boolean,
|
||||
path : string,
|
||||
fileName : string,
|
||||
directory : boolean,
|
||||
info : any,
|
||||
dir : boolean,
|
||||
enabled : boolean,
|
||||
files : string[]
|
||||
}
|
||||
|
||||
/**
|
||||
* @module FilmOut
|
||||
**/
|
||||
|
||||
class FilmOut {
|
||||
export class FilmOut {
|
||||
private id : string = 'filmout';
|
||||
private videoExtensions : string[] = ['.mpg', '.mpeg', '.mov', '.mkv', '.avi', '.mp4'];
|
||||
private stillExtensions : string[] = ['.tif', '.tiff', '.png', '.jpg', '.jpeg', '.bmp'];
|
||||
private sequenceExtensions : string[] = ['.png', '.jpg', '.jpeg'];
|
||||
private gifExtension : string = '.gif';
|
||||
public state : any = {
|
||||
public state : FilmOutState = {
|
||||
hash : null,
|
||||
frame : 0,
|
||||
frames : 0,
|
||||
fps : 24,
|
||||
seconds : 0,
|
||||
still : false,
|
||||
path : null,
|
||||
fileName : null,
|
||||
|
@ -32,14 +55,15 @@ class FilmOut {
|
|||
enabled : false,
|
||||
files : []
|
||||
};
|
||||
private display : any;
|
||||
private ffmpeg : any;
|
||||
private ffprobe : any;
|
||||
private light : any;
|
||||
private ffmpeg : FFMPEG;
|
||||
private ffprobe : FFPROBE;
|
||||
private light : Light;
|
||||
private ipc : any;
|
||||
private ui : any;
|
||||
private log : Logger;
|
||||
private server : any;
|
||||
|
||||
public display : Display;
|
||||
public server : Server;
|
||||
/**
|
||||
* @constructor
|
||||
* Builds FilmOut class with display, ffmpeg, ffprobe, ui and light as internal properties.
|
||||
|
@ -50,7 +74,7 @@ class FilmOut {
|
|||
* @param {object} ui Electron ui object
|
||||
* @param {object} light Light device object
|
||||
**/
|
||||
constructor (display : any, server : any, ffmpeg : any, ffprobe : any, ui : any, light : any) {
|
||||
constructor (display : Display, server : Server, ffmpeg : FFMPEG, ffprobe : FFPROBE, ui : any, light : Light) {
|
||||
this.display = display;
|
||||
this.server = server;
|
||||
this.ffmpeg = ffmpeg;
|
||||
|
@ -92,7 +116,7 @@ class FilmOut {
|
|||
*
|
||||
* @param {string} data Data to produce hash of
|
||||
*/
|
||||
private hash (data : string) {
|
||||
private hash (data : string) : string {
|
||||
return createHash('sha1').update(data).digest('hex');
|
||||
}
|
||||
/**
|
||||
|
@ -126,7 +150,7 @@ class FilmOut {
|
|||
/**
|
||||
* Begin the process of exporting single frames from the video for display.
|
||||
**/
|
||||
async start () {
|
||||
public async start () {
|
||||
let path;
|
||||
|
||||
try {
|
||||
|
@ -147,7 +171,7 @@ class FilmOut {
|
|||
/**
|
||||
* Ends the filmout process and closes the display.
|
||||
**/
|
||||
private async end () {
|
||||
public async end () {
|
||||
await delay(20);
|
||||
this.display.hide();
|
||||
}
|
||||
|
@ -521,3 +545,5 @@ class FilmOut {
|
|||
module.exports = (display : any, server : any, ffmpeg : any, ffprobe : any, ui : any, light : any) => {
|
||||
return new FilmOut(display, server, ffmpeg, ffprobe, ui, light);
|
||||
}
|
||||
|
||||
export type { FilmOutState };
|
|
@ -75,3 +75,5 @@ export default class Frame {
|
|||
}
|
||||
|
||||
module.exports = Frame
|
||||
|
||||
export type { RGBA }
|
|
@ -1,36 +1,13 @@
|
|||
declare module 'delay';
|
||||
declare module 'intval';
|
||||
declare module 'processing';
|
||||
declare module 'electron';
|
||||
declare module 'fs-extra';
|
||||
declare module 'uuid';
|
||||
declare module 'exec';
|
||||
declare module 'spawn';
|
||||
declare module 'systeminformation';
|
||||
declare module 'exit';
|
||||
declare module 'request';
|
||||
declare module 'animated-gif-detector';
|
||||
declare module 'frame';
|
||||
|
||||
interface Device {
|
||||
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 (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 ( device : string, serial : string) : any;
|
||||
}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
'use strict'
|
||||
|
||||
import * as request from 'request'
|
||||
|
||||
export class Intval {
|
||||
private _baseUrl : string
|
||||
private req : any
|
||||
|
||||
constructor (url : string) {
|
||||
this._baseUrl = `http://${url}`
|
||||
this.req = require('request')
|
||||
}
|
||||
public async move () {
|
||||
return new Promise ((resolve : any, reject : any) => {
|
||||
public async move () : Promise<number> {
|
||||
return new Promise ((resolve : Function, reject : Function) => {
|
||||
const timeStart : number = +new Date()
|
||||
const url : string = `${this._baseUrl}/frame`
|
||||
//console.log(url)
|
||||
return this.req(url, (err : Error, res : any, body : string) => {
|
||||
return request(url, (err : Error, res : any, body : string) => {
|
||||
let ms : number = (+new Date()) - timeStart
|
||||
if (err) {
|
||||
return reject(err)
|
||||
|
@ -21,12 +22,12 @@ export class Intval {
|
|||
})
|
||||
})
|
||||
}
|
||||
public async setDir (dir : boolean) {
|
||||
return new Promise ((resolve : any, reject : any) => {
|
||||
public async setDir (dir : boolean) : Promise<number> {
|
||||
return new Promise ((resolve : Function, reject : Function) => {
|
||||
const timeStart : number = +new Date()
|
||||
const url : string = `${this._baseUrl}/dir?dir=${dir}`
|
||||
//console.log(url)
|
||||
return this.req(url, (err : Error, res : any, body : string) => {
|
||||
return request(url, (err : Error, res : any, body : string) => {
|
||||
let ms : number = (+new Date()) - timeStart
|
||||
if (err) {
|
||||
return reject(err)
|
||||
|
@ -35,11 +36,11 @@ export class Intval {
|
|||
})
|
||||
})
|
||||
}
|
||||
public async setExposure (exposure : number, cb : Function) {
|
||||
return new Promise ((resolve : any, reject : any) => {
|
||||
public async setExposure (exposure : number, cb : Function) : Promise<number> {
|
||||
return new Promise ((resolve : Function, reject : Function) => {
|
||||
const timeStart : number = +new Date()
|
||||
const url : string = `${this._baseUrl}/exposure?exposure=${exposure}`
|
||||
return this.req(url, (err : Error, res : any, body : string) => {
|
||||
return request(url, (err : Error, res : any, body : string) => {
|
||||
let ms : number = (+new Date()) - timeStart
|
||||
if (err) {
|
||||
return reject(err)
|
||||
|
@ -57,7 +58,7 @@ export class Intval {
|
|||
timeout: 5000
|
||||
}
|
||||
|
||||
this.req(opts, (err : Error, res : any, body : string) => {
|
||||
request(opts, (err : Error, res : any, body : string) => {
|
||||
let ms : number = (+new Date()) - timeStart
|
||||
if (err) {
|
||||
return cb(err, ms)
|
||||
|
@ -67,4 +68,4 @@ export class Intval {
|
|||
}
|
||||
}
|
||||
|
||||
module.exports.Intval = Intval
|
||||
module.exports = { Intval }
|
|
@ -3,8 +3,9 @@
|
|||
import { delay } from 'delay';
|
||||
import { Log } from 'log';
|
||||
import type { Logger } from 'winston';
|
||||
import type { Arduino } from 'arduino';
|
||||
|
||||
class Light {
|
||||
export class Light {
|
||||
public state : any = { color : [0, 0, 0] }
|
||||
|
||||
private arduino : Arduino;
|
||||
|
|
|
@ -985,7 +985,7 @@ export default class Mscript {
|
|||
}
|
||||
|
||||
module.exports = Mscript;
|
||||
|
||||
export type { RGB };
|
||||
|
||||
/*
|
||||
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
import { exec } from 'exec';
|
||||
|
||||
class Processing {
|
||||
export class Processing {
|
||||
private _baseUrl : string
|
||||
constructor (url : string) {
|
||||
this._baseUrl = (url.indexOf('http') === -1 && url.indexOf('://') === -1) ? `http://${url}` : url
|
||||
}
|
||||
|
||||
public async move () {
|
||||
return new Promise (async (resolve : any, reject : any) => {
|
||||
public async move () : Promise<number> {
|
||||
return new Promise (async (resolve : Function, reject : Function) => {
|
||||
const timeStart : number = +new Date()
|
||||
const url : string = `${this._baseUrl}`
|
||||
const cmd : string = `curl --http0.9 ${url}`
|
||||
|
@ -25,11 +25,11 @@ class Processing {
|
|||
return resolve(ms)
|
||||
})
|
||||
}
|
||||
public async setDir (dir : boolean) {
|
||||
return new Promise ((resolve : any, reject : any) => {
|
||||
public async setDir (dir : boolean) : Promise<number> {
|
||||
return new Promise ((resolve : Function, reject : Function) => {
|
||||
return resolve(0)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.Processing = Processing
|
||||
module.exports = { Processing }
|
|
@ -2,18 +2,25 @@
|
|||
|
||||
import { Log } from 'log';
|
||||
import type { Logger } from 'winston';
|
||||
import type { Arduino } from 'arduino';
|
||||
import type { FilmOut } from 'filmout';
|
||||
|
||||
class Projector {
|
||||
private state : any = {
|
||||
interface ProjectorState {
|
||||
pos : number,
|
||||
dir : boolean
|
||||
}
|
||||
|
||||
export class Projector {
|
||||
public state : ProjectorState = {
|
||||
pos : 0,
|
||||
dir : true
|
||||
};
|
||||
private arduino : Arduino = null;
|
||||
public arduino : Arduino = null;
|
||||
private log : Logger;
|
||||
private cfg : any;
|
||||
private ui : any;
|
||||
private ipc : any;
|
||||
private filmout : any;
|
||||
public filmout : FilmOut;
|
||||
private id : string = 'projector';
|
||||
|
||||
/**
|
||||
|
@ -62,17 +69,16 @@ class Projector {
|
|||
try {
|
||||
ms = await this.arduino.send(this.id, cmd)
|
||||
} catch (err) {
|
||||
this.log.error(`Error setting ${this.id} direction`, err)
|
||||
this.log.error(`Error setting ${this.id} direction: ${id}`, err)
|
||||
}
|
||||
}
|
||||
console.dir(ms)
|
||||
return await this.end(cmd, id, ms)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
**/
|
||||
public async move (frame : any, id : string) {
|
||||
public async move (id : string) {
|
||||
const cmd : string = this.cfg.arduino.cmd[this.id];
|
||||
let ms : number;
|
||||
if (this.filmout.state.enabled) {
|
||||
|
@ -85,20 +91,20 @@ class Projector {
|
|||
try {
|
||||
ms = await this.arduino.send(this.id, cmd)
|
||||
} catch (err) {
|
||||
this.log.error(`Error moving ${this.id}`, err)
|
||||
this.log.error(`Error moving ${this.id}: ${id}`, err)
|
||||
}
|
||||
}
|
||||
//this.log.info('Projector move time', { ms });
|
||||
return await this.end(cmd, id, ms)
|
||||
}
|
||||
|
||||
public async both (frame : any, id : string) {
|
||||
public async both (id : string) {
|
||||
const cmd : string = this.cfg.arduino.cmd[this.id + 's'];
|
||||
let ms : number;
|
||||
try {
|
||||
ms = await this.arduino.send(this.id, cmd)
|
||||
} catch (err) {
|
||||
this.log.error(`Error moving ${this.id}`, err)
|
||||
this.log.error(`Error moving ${this.id}: ${id}`, err)
|
||||
}
|
||||
//this.log.info('Projectors move time', { ms });
|
||||
return await this.end(cmd, id, ms)
|
||||
|
@ -114,11 +120,11 @@ class Projector {
|
|||
} catch (err) {
|
||||
this.log.error(err)
|
||||
}
|
||||
} else if (typeof arg.frame !== 'undefined') {
|
||||
} else if (typeof arg.move !== 'undefined') {
|
||||
try {
|
||||
await this.move(arg.frame, arg.id)
|
||||
await this.move(arg.id)
|
||||
} catch (err) {
|
||||
this.log.error(err)
|
||||
this.log.error(`Error moving ${this.id}: ${arg.id}`, err)
|
||||
}
|
||||
} else if (typeof arg.val !== 'undefined') {
|
||||
this.state.pos = arg.val;
|
||||
|
@ -168,3 +174,5 @@ class Projector {
|
|||
module.exports = function (arduino : Arduino, cfg : any, ui : any, filmout : any, second : boolean) {
|
||||
return new Projector(arduino, cfg, ui, filmout, second)
|
||||
}
|
||||
|
||||
export type { ProjectorState }
|
|
@ -4,14 +4,15 @@ import { v4 as uuid } from 'uuid';
|
|||
import { Log } from 'log';
|
||||
import type { Logger } from 'winston';
|
||||
import { powerSaveBlocker } from 'electron'
|
||||
import delay from 'delay';
|
||||
import { delay } from 'delay';
|
||||
import { Commands } from 'cmd';
|
||||
|
||||
|
||||
/** @module lib/sequencer **/
|
||||
|
||||
let seq : Sequencer;
|
||||
|
||||
class Sequencer {
|
||||
export class Sequencer {
|
||||
private running : boolean = false;
|
||||
private paused : boolean = false;
|
||||
|
||||
|
@ -22,7 +23,7 @@ class Sequencer {
|
|||
private loops : number = 1;
|
||||
|
||||
private cfg : any;
|
||||
private cmd : any;
|
||||
private cmd : Commands;
|
||||
private CMDS : any = {};
|
||||
private ipc : any;
|
||||
private ui : any;
|
||||
|
@ -40,7 +41,7 @@ class Sequencer {
|
|||
* @param {object} ui Electron UI, browser window
|
||||
**/
|
||||
|
||||
constructor (cfg : any, cmd : any, ui : any) {
|
||||
constructor (cfg : any, cmd : Commands, ui : any) {
|
||||
this.cfg = cfg;
|
||||
this.cmd = cmd;
|
||||
this.ui = ui;
|
||||
|
@ -268,6 +269,7 @@ class Sequencer {
|
|||
const cmdOriginal : string = this.arr[x].cmd;
|
||||
const cmd : string = this.CMDS[cmdOriginal];
|
||||
this.log.info(`CMD: '${cmdOriginal}' -> ${cmd}`);
|
||||
//@ts-ignore
|
||||
return await this.cmd[cmd](this.arr[x]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ interface ServerQueue {
|
|||
[key: string]: Function;
|
||||
}
|
||||
|
||||
class Server {
|
||||
export class Server {
|
||||
private id : string = 'server'
|
||||
public isActive : boolean = false
|
||||
private log : Logger
|
||||
|
@ -63,13 +63,13 @@ class Server {
|
|||
this.ui = uiInput;
|
||||
}
|
||||
|
||||
async init () {
|
||||
private async init () {
|
||||
this.log = await Log({ label : this.id });
|
||||
await this.load()
|
||||
await this.start()
|
||||
}
|
||||
|
||||
async load () {
|
||||
private async load () {
|
||||
this.http = express()
|
||||
for (let tmpl of this.templates) {
|
||||
tmpl.data = await readFile(tmpl.path, 'utf8')
|
||||
|
@ -254,3 +254,5 @@ class Server {
|
|||
module.exports = function (ui : any) {
|
||||
return new Server(ui)
|
||||
}
|
||||
|
||||
export type { ServerData, ServerTemplate, ServerProxy, ServerProxyList, ServerQueue };
|
Loading…
Reference in New Issue