CLI WIP
This commit is contained in:
parent
b3eaf3fba2
commit
0a96867e4d
|
|
@ -4,12 +4,14 @@ exports.CLI = void 0;
|
|||
require("dotenv/config");
|
||||
const promises_1 = require("fs/promises");
|
||||
const os_1 = require("os");
|
||||
const path_1 = require("path");
|
||||
const log_1 = require("../log");
|
||||
const env_1 = require("../env");
|
||||
const fd_1 = require("../fd");
|
||||
const display_1 = require("../display");
|
||||
const files_1 = require("../files");
|
||||
const delay_1 = require("../delay");
|
||||
const camera_1 = require("./camera");
|
||||
const camera_1 = require("../camera");
|
||||
var Actions;
|
||||
(function (Actions) {
|
||||
Actions[Actions["LOAD"] = 0] = "LOAD";
|
||||
|
|
@ -28,22 +30,22 @@ class CLI {
|
|||
}
|
||||
async main() {
|
||||
if (typeof this.args.input !== 'undefined') {
|
||||
this.log.info(`Loading ${basename(this.args.input)}`);
|
||||
this.log.info(`Loading ${(0, path_1.basename)(this.args.input)}`);
|
||||
await (0, delay_1.delay)(2000);
|
||||
await this.parse(this.args.input);
|
||||
await (0, delay_1.delay)(2000);
|
||||
}
|
||||
this.fd.stop();
|
||||
this.fd.exit();
|
||||
}
|
||||
settings() {
|
||||
//parse args
|
||||
this.bin = envString('FD', 'fd');
|
||||
this.width = envInt('WIDTH', 0);
|
||||
this.height = envInt('HEIGHT', 0);
|
||||
this.host = envString('FD_HOST', 'localhost');
|
||||
this.port = envInt('FD_PORT', 8082);
|
||||
this.bin = (0, env_1.envString)('FD', 'fd');
|
||||
this.width = (0, env_1.envInt)('WIDTH', 0);
|
||||
this.height = (0, env_1.envInt)('HEIGHT', 0);
|
||||
this.host = (0, env_1.envString)('FD_HOST', 'localhost');
|
||||
this.port = (0, env_1.envInt)('FD_PORT', 8082);
|
||||
}
|
||||
async parseLine(line) {
|
||||
parseLine(line) {
|
||||
let parts;
|
||||
if (line.trim() === '') {
|
||||
return null;
|
||||
|
|
@ -53,7 +55,7 @@ class CLI {
|
|||
async parse(filePath) {
|
||||
let lines = [];
|
||||
let file;
|
||||
let command = null;
|
||||
let cmd = null;
|
||||
try {
|
||||
file = await (0, promises_1.readFile)(file, 'utf8');
|
||||
}
|
||||
|
|
@ -99,8 +101,8 @@ class CLI {
|
|||
let close;
|
||||
let total;
|
||||
let result;
|
||||
const stats = (0, promises_1.lstat)(cmd.file);
|
||||
const img = files_1.Files.getImageObject(cmd.file, stats);
|
||||
const stats = await (0, promises_1.lstat)(cmd.file);
|
||||
const img = await files_1.Files.getImageObject(cmd.file, stats);
|
||||
const dimensions = this.display.getOutgoingPosition();
|
||||
this.log.info(`Frame: ${img.name}`);
|
||||
await this.fd.load(img.path, dimensions.x, dimensions.y, dimensions.w, dimensions.h);
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
||||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/image/index.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/image/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,kCAAiC;AACjC,+BAAqC;AACrC,2BAA4B;AAC5B,0CAA4C;AAC5C,oCAAiC;AAEjC,MAAa,KAAK;IAQjB;QAPQ,WAAM,GAAY,WAAW,CAAC;QAC9B,mBAAc,GAAY,IAAI,CAAC;QAC/B,kBAAa,GAAY,IAAI,CAAC;QAC9B,eAAU,GAAY,IAAI,CAAC;QAC3B,cAAS,GAAY,IAAI,CAAC;QAC1B,QAAG,GAAY,IAAI,CAAC;QAG3B,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,GAAG,IAAA,WAAM,GAAE,CAAC;QACrB,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,MAAM,CAAE,MAAe,MAAM;QAC1C,MAAM,YAAY,GAAY,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAY,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;QAEhF,IAAI,CAAC;YACJ,MAAM,IAAA,gBAAK,EAAC,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,EAAE;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAE,KAAc,EAAE,MAAe;QACrD,IAAI,GAAG,GAAS,IAAI,CAAC;QACrB,MAAM,IAAI,GAAc;YACvB,SAAS;YACT,KAAK;YACL,aAAa,EAAG,KAAK;YACrB,QAAQ,EAAE,GAAG;YACb,MAAM;SACN,CAAC;QACF,MAAM,KAAK,GAAW,IAAI,aAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC;YACJ,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,EAAE;QACH,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,SAAS,CAAE,IAAa,EAAE,KAAc,EAAE,MAAc;QACpE,MAAM,IAAI,GAAY,aAAM,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;QACtE,IAAI,OAAO,GAAY,IAAI,CAAC;QAC5B,IAAI,IAAI,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YACjC,IAAI,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;gBAC5C,IAAI,CAAC;oBACJ,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACnC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAClC,IAAI,GAAG,OAAO,CAAC;gBAChB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,EAAE;gBACH,CAAC;YACF,CAAC;YACD,MAAM,OAAO,GAAmB;gBAC/B,KAAK;gBACL,MAAM;gBACN,GAAG,EAAE,eAAK,CAAC,GAAG,CAAC,IAAI;aACnB,CAAA;YACD,IAAI,CAAC,cAAc,GAAG,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC1E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACJ,MAAM,IAAA,iBAAM,EAAC,OAAO,CAAC,CAAC;gBACvB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,EAAE;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,KAAK,CAAE,KAAc,EAAE,MAAe;QAClD,MAAM,IAAI,GAAY,aAAM,CAAC,UAAU,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;QAC9D,IAAI,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAkB;gBAC9B,MAAM,EAAE;oBACP,KAAK;oBACL,MAAM;oBACN,QAAQ,EAAE,CAAC;oBACX,UAAU,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;iBACtC;aACD,CAAC;YACF,IAAI,CAAC,UAAU,GAAG,MAAM,IAAA,eAAK,EAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;CAED;AA3FD,sBA2FC;AAED,MAAM,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC"}
|
||||
100
src/cli/index.ts
100
src/cli/index.ts
|
|
@ -1,17 +1,24 @@
|
|||
import 'dotenv/config';
|
||||
import fs from 'fs/promises';
|
||||
import { readFile, lstat} from 'fs/promises';
|
||||
import type { Stats } from 'fs';
|
||||
import { tmpdir, EOL } from 'os';
|
||||
import { join } from 'path';
|
||||
import { join, basename } from 'path';
|
||||
import type { Logger } from 'winston';
|
||||
import { createLog } from '../log';
|
||||
|
||||
import { envInt, envString} from '../env';
|
||||
import { FD } from '../fd';
|
||||
import type { fdOutgoingPosition } from '../fd';
|
||||
import type { fdOutgoingPosition, fdResult } from '../fd';
|
||||
import { Display, Dimensions } from '../display';
|
||||
import { Files } from '../files';
|
||||
import type { ImageObject } from '../files';
|
||||
import { delay } from '../delay';
|
||||
import { Camera } from '../camera';
|
||||
|
||||
enum Actions {
|
||||
LOAD,
|
||||
DISPLAY
|
||||
DISPLAY,
|
||||
DELAY
|
||||
}
|
||||
|
||||
interface Args {
|
||||
|
|
@ -24,13 +31,14 @@ interface Args {
|
|||
interface CMD {
|
||||
action : Actions;
|
||||
file : string;
|
||||
exposure?: number;
|
||||
time?: number;
|
||||
}
|
||||
|
||||
export class CLI {
|
||||
private log : Logger;
|
||||
private args : Args;
|
||||
private fd : FD;
|
||||
private camera : Camera;
|
||||
private display: Display;
|
||||
|
||||
private bin : string;
|
||||
|
|
@ -38,19 +46,28 @@ export class CLI {
|
|||
private height : number;
|
||||
private host : string;
|
||||
private port : number;
|
||||
private mock : boolean = true;
|
||||
private displayStr : string | null;
|
||||
|
||||
private lastImage : string | null;
|
||||
|
||||
constructor () {
|
||||
this.log = createLog('fm');
|
||||
this.settings();
|
||||
this.display = new Display(this.width, this.height);
|
||||
this.fd = new FD(this.bin, this.width, this.height, this.host, this.port, envString('FD_DISPLAY', null), mock);
|
||||
this.fd = new FD(this.bin, this.width, this.height, this.host, this.port, this.displayStr, this.mock);
|
||||
this.camera = new Camera(this.mock);
|
||||
this.main();
|
||||
}
|
||||
|
||||
private async main () {
|
||||
if (typeof this.args.input !== 'undefined') {
|
||||
this.parse(this.args.input);
|
||||
this.log.info(`Loading ${basename(this.args.input)}`);
|
||||
await delay(2000);
|
||||
await this.parse(this.args.input);
|
||||
await delay(2000)
|
||||
}
|
||||
this.fd.exit();
|
||||
}
|
||||
|
||||
private settings () {
|
||||
|
|
@ -63,13 +80,21 @@ export class CLI {
|
|||
this.port = envInt('FD_PORT', 8082);
|
||||
}
|
||||
|
||||
private parseLine (line : string) : CMD {
|
||||
let parts : string[];
|
||||
if (line.trim() === '') {
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private async parse (filePath : string) {
|
||||
let lines : string[] = [];
|
||||
let file : string;
|
||||
let command : CMD = null;
|
||||
let cmd : CMD = null;
|
||||
|
||||
try {
|
||||
file = await fs.readFile(file, 'utf8');
|
||||
file = await readFile(file, 'utf8');
|
||||
} catch (err) {
|
||||
this.log.error(`Error reading input file`, err);
|
||||
process.exit(1);
|
||||
|
|
@ -78,9 +103,62 @@ export class CLI {
|
|||
lines = file.split(EOL);
|
||||
|
||||
for (let line of lines) {
|
||||
|
||||
cmd = this.parseLine(line);
|
||||
try {
|
||||
await this.execute(cmd);
|
||||
} catch (err) {
|
||||
this.log.error(`Error executing cmd`, err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async execute (cmd : CMD) {
|
||||
if (cmd === null) return;
|
||||
switch (cmd.action) {
|
||||
case Actions.DELAY:
|
||||
await delay(cmd.time);
|
||||
break;
|
||||
case Actions.DISPLAY :
|
||||
await this.frame(cmd);
|
||||
break;
|
||||
default :
|
||||
break;
|
||||
}
|
||||
// await this.load(img, 100, 200, 640, 640);
|
||||
//await delay(2000);
|
||||
|
||||
//await this.display(img, [ 4000 ] );
|
||||
//await delay(8000);
|
||||
}
|
||||
|
||||
private async frame (cmd : CMD) {
|
||||
const start : number = Date.now();
|
||||
let load : number;
|
||||
let open : number;
|
||||
let exposureElapsed : number;
|
||||
let exposureReported : number;
|
||||
let close : number;
|
||||
let total : number;
|
||||
let result : fdResult;
|
||||
const stats : Stats = await lstat(cmd.file);
|
||||
const img : ImageObject = await Files.getImageObject(cmd.file, stats);
|
||||
const dimensions : fdOutgoingPosition = this.display.getOutgoingPosition();
|
||||
this.log.info(`Frame: ${img.name}`);
|
||||
|
||||
await this.fd.load(img.path, dimensions.x, dimensions.y, dimensions.w, dimensions.h);
|
||||
load = Date.now() - start;
|
||||
await this.camera.open();
|
||||
open = Date.now() - start - load;
|
||||
result = await this.fd.display(img.path, [ cmd.time ] );
|
||||
exposureReported = result.reported;
|
||||
exposureElapsed = Date.now() - start - load - open;
|
||||
await this.camera.close();
|
||||
close = Date.now() - start - load - open - exposureElapsed;
|
||||
total = Date.now() - start;
|
||||
//this.stats.add(load, open, exposureElapsed, exposureReported, close, total);
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof module.exports !== 'undefined')
|
||||
if (require.main === module) {
|
||||
new CLI();
|
||||
}
|
||||
|
|
@ -6,20 +6,21 @@ import { envString } from '../env';
|
|||
import { platform } from 'os';
|
||||
|
||||
interface SequenceObject {
|
||||
created : number,
|
||||
created? : number,
|
||||
path : string,
|
||||
hash : string,
|
||||
name : string
|
||||
}
|
||||
|
||||
interface VideoObject {
|
||||
created : number,
|
||||
created? : number,
|
||||
path : string,
|
||||
hash : string,
|
||||
name : string
|
||||
}
|
||||
|
||||
interface ImageObject {
|
||||
created ?: number;
|
||||
path : string,
|
||||
hash : string,
|
||||
name : string
|
||||
|
|
@ -105,7 +106,7 @@ export class Files {
|
|||
const dirs : SequenceObject[] = [];
|
||||
let all : string[];
|
||||
let stats : Stats;
|
||||
let dirPath : string;
|
||||
let framePath : string;
|
||||
|
||||
const paths : string[] = await this.enumerateSequenceDirs();
|
||||
|
||||
|
|
@ -120,24 +121,21 @@ export class Files {
|
|||
if (elem.substring(0, 1) === '.') {
|
||||
continue;
|
||||
}
|
||||
dirPath = join(path, elem);
|
||||
framePath = join(path, elem);
|
||||
try {
|
||||
stats = await lstat(dirPath);
|
||||
stats = await lstat(framePath);
|
||||
} catch (err) {
|
||||
continue;
|
||||
}
|
||||
if (!stats.isDirectory()) {
|
||||
continue;
|
||||
}
|
||||
if (!await this.isSequence(dirPath)) {
|
||||
//dont need to run this every time?
|
||||
//what is the purpose of this?
|
||||
if (!await this.isSequence(framePath)) {
|
||||
continue;
|
||||
}
|
||||
dirs.push({
|
||||
created : + stats.birthtime,
|
||||
path : dirPath,
|
||||
hash : Hashes.stringHash(dirPath),
|
||||
name : basename(dirPath)
|
||||
});
|
||||
dirs.push(await Files.getImageObject(framePath, stats));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -148,6 +146,15 @@ export class Files {
|
|||
return dirs;
|
||||
}
|
||||
|
||||
public static async getImageObject (imagePath : string, stats : Stats) : Promise<ImageObject> {
|
||||
return {
|
||||
created : +stats.birthtime,
|
||||
path : imagePath,
|
||||
hash : Hashes.stringHash(imagePath),
|
||||
name : basename(imagePath)
|
||||
};
|
||||
}
|
||||
|
||||
public static async isSequence (dirPath : string) : Promise<boolean> {
|
||||
let sequence : boolean = false;
|
||||
let all : string[];
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ export class Image {
|
|||
}
|
||||
return this.blankCache;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = { Image };
|
||||
Loading…
Reference in New Issue