Merge in 9 months of work on capper branch #71

Merged
mattmcw merged 95 commits from capper into main 2023-02-19 05:28:46 +00:00
9 changed files with 167 additions and 25 deletions
Showing only changes of commit 129647b863 - Show all commits

View File

@ -696,6 +696,9 @@ button:focus {
border-color: #DAE035;
color: #DAE035;
}
#settings input[type=text] {
width: 200px;
}
#settings button {
margin-top: -1px;
float: right;

View File

@ -6,7 +6,8 @@
> div > div{
width: 360px;
}
input[type=text], select{
input[type=text],
select{
.button();
display: inline-block;
padding: 6px 12px;
@ -17,6 +18,9 @@
color: @SELECTED;
}
}
input[type=text]{
width: 200px;
}
button{
margin-top: -1px;
float: right;

View File

@ -302,7 +302,7 @@ class Devices {
return false;
}
}
else if ('camera,projector,projector_second') {
else if (type === 'camera,projector,projector_second') {
this.connected.camera = device;
this.connected.projector = device;
this.connected.projector_second = device;
@ -316,7 +316,7 @@ class Devices {
return false;
}
}
else if ('camera,camera_second,projector') {
else if (type === 'camera,camera_second,projector') {
this.connected.camera = device;
this.connected.camera_second = device;
this.connected.projector = device;
@ -330,7 +330,7 @@ class Devices {
return false;
}
}
else if ('camera,camera_second,projector,projector_second') {
else if (type === 'camera,camera_second,projector,projector_second') {
this.connected.camera = device;
this.connected.camera_second = device;
this.connected.projector = device;
@ -346,6 +346,48 @@ class Devices {
return false;
}
}
else if (type === 'camera,capper') {
this.connected.camera = device;
this.connected.capper = device;
this.arduino.aliasSerial('capper', device);
try {
connectSuccess = await this.arduino.connect('camera', device, false);
}
catch (err) {
this.log.error('Error connecting to camera and capper', err);
return false;
}
}
else if (type === 'camera,capper,projector') {
this.connected.camera = device;
this.connected.capper = device;
this.connected.projector = device;
this.arduino.aliasSerial('capper', device);
this.arduino.aliasSerial('projector', device);
try {
connectSuccess = await this.arduino.connect('camera', device, false);
}
catch (err) {
this.log.error('Error connecting to camera, capper and projector', err);
return false;
}
}
else if (type === 'camera,capper,projector,projector_second') {
this.connected.camera = device;
this.connected.capper = device;
this.connected.projector = device;
this.connected.projector_second = device;
this.arduino.aliasSerial('capper', device);
this.arduino.aliasSerial('projector', device);
this.arduino.aliasSerial('projector_second', device);
try {
connectSuccess = await this.arduino.connect('camera', device, false);
}
catch (err) {
this.log.error('Error connecting to camera, capper, projector and projector_second', err);
return false;
}
}
return connectSuccess;
}
/**
@ -360,12 +402,14 @@ class Devices {
let d;
let cs = {};
let ps = {};
let capper;
let checklist = [];
this.connected = {
projector: false,
camera: false,
light: false,
projector_second: false
projector_second: false,
capper: false
};
for (let device of devices) {
try {
@ -402,10 +446,13 @@ class Devices {
if (this.connected.projector_second) {
ps = { arduino: this.connected.projector_second };
}
if (this.connected.capper) {
capper = { arduino: this.connected.capper };
}
if (this.settings.state.camera && this.settings.state.camera.intval) {
c.intval = this.settings.state.camera.intval;
}
return this.ready(p, c, l, cs, ps);
return this.ready(p, c, l, cs, ps, capper);
}
/**
*
@ -419,7 +466,7 @@ class Devices {
});
if (match.length === 0) {
deviceEntry = {
type: type
type
};
deviceEntry[which] = device;
this.settings.state.devices.push(deviceEntry);
@ -430,13 +477,14 @@ class Devices {
/**
*
**/
ready(projector, camera, light, camera_second, projector_second) {
ready(projector, camera, light, camera_second, projector_second, capper) {
let args = {
camera,
projector,
light,
profile: this.settings.state.profile
};
console.log("CHECK " + camera);
if (projector_second && projector_second.arduino) {
args.projector_second = projector_second;
this.settings.update('projector_second', projector_second);
@ -452,6 +500,11 @@ class Devices {
this.mainWindow.setSize(800, 800);
}
}
if (capper) {
this.mainWindow.setSize(800, 800);
this.settings.update('capper', capper);
args.capper = capper;
}
this.settings.update('camera', camera);
this.settings.update('projector', projector);
this.settings.update('light', light);

File diff suppressed because one or more lines are too long

View File

@ -18,7 +18,8 @@ class Settings {
profile: 'mcopy',
camera: {},
projector: {},
light: {}
light: {},
capper: {}
};
this.state = this.freshState();
}

View File

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

View File

@ -9,7 +9,8 @@ import { delay } from 'delay';
class Camera {
private state : any = {
pos : 0,
dir : true
dir : true,
capepr: false
};
private arduino : Arduino = null;
private intval : any = null;
@ -87,6 +88,28 @@ class Camera {
return await this.end(cmd, id, ms);
}
/**
*
**/
public async cap (state : boolean, id : string) {
let cmd : string;
let ms : number;
if (state) {
cmd = this.cfg.arduino.cmd[`${this.id}_forward`];
} else {
cmd = this.cfg.arduino.cmd[`${this.id}_backward`];
}
this.state.capper = state;
try {
ms = await this.arduino.send(this.id, cmd);
} catch (err) {
this.log.error(err);
}
return await this.end(cmd, id, ms);
}
/**
*
**/
@ -189,20 +212,26 @@ class Camera {
private async listener (event : any, arg : any) {
if (typeof arg.dir !== 'undefined') {
try {
await this.set(arg.dir, arg.id);
await this.set(arg.dir, arg.id)
} catch (err) {
this.log.error(err);
this.log.error(err)
}
} else if (typeof arg.frame !== 'undefined') {
try {
await this.move(arg.frame, arg.id);
await this.move(arg.frame, arg.id)
} catch (err) {
this.log.error(err);
this.log.error(err)
}
} else if (typeof arg.val !== 'undefined') {
this.state.pos = arg.val;
this.state.pos = arg.val
} else if (typeof arg.capper !== 'undefined') {
try {
await this.cap(arg.capper, arg.id)
} catch (err) {
this.log.error(err)
}
}
event.returnValue = true;
event.returnValue = true
}
/**

View File

@ -295,7 +295,7 @@ class Devices {
this.log.error('Error connecting to camera, camera_secondary and projector', err)
return false
}
} else if ('camera,projector,projector_second') {
} else if (type === 'camera,projector,projector_second') {
this.connected.camera = device
this.connected.projector = device
this.connected.projector_second = device
@ -307,7 +307,7 @@ class Devices {
this.log.error('Error connecting to camera, projector and projector_second', err)
return false
}
} else if ('camera,camera_second,projector') {
} else if (type === 'camera,camera_second,projector') {
this.connected.camera = device
this.connected.camera_second = device
this.connected.projector = device
@ -320,7 +320,7 @@ class Devices {
this.log.error('Error connecting to camera, camera_second and projector', err)
return false
}
} else if ('camera,camera_second,projector,projector_second') {
} else if (type === 'camera,camera_second,projector,projector_second') {
this.connected.camera = device
this.connected.camera_second = device
this.connected.projector = device
@ -335,6 +335,43 @@ class Devices {
this.log.error('Error connecting to camera, camera_second, projector and projector_second', err)
return false
}
} else if (type === 'camera,capper') {
this.connected.camera = device
this.connected.capper = device
this.arduino.aliasSerial('capper', device)
try {
connectSuccess = await this.arduino.connect('camera', device, false)
} catch (err) {
this.log.error('Error connecting to camera and capper', err)
return false
}
} else if (type === 'camera,capper,projector') {
this.connected.camera = device
this.connected.capper = device
this.connected.projector = device
this.arduino.aliasSerial('capper', device)
this.arduino.aliasSerial('projector', device)
try {
connectSuccess = await this.arduino.connect('camera', device, false)
} catch (err) {
this.log.error('Error connecting to camera, capper and projector', err)
return false
}
} else if (type === 'camera,capper,projector,projector_second') {
this.connected.camera = device
this.connected.capper = device
this.connected.projector = device
this.connected.projector_second = device
this.arduino.aliasSerial('capper', device)
this.arduino.aliasSerial('projector', device)
this.arduino.aliasSerial('projector_second', device)
try {
connectSuccess = await this.arduino.connect('camera', device, false)
} catch (err) {
this.log.error('Error connecting to camera, capper, projector and projector_second', err)
return false
}
}
return connectSuccess
}
@ -350,13 +387,15 @@ class Devices {
let d : any
let cs : any = {}
let ps : any = {}
let capper : any;
let checklist : any[] = []
this.connected = {
projector : false,
camera : false,
light : false,
projector_second : false
projector_second : false,
capper : false
}
for (let device of devices) {
@ -400,12 +439,15 @@ class Devices {
ps = { arduino : this.connected.projector_second }
}
if (this.connected.capper) {
capper = { arduino : this.connected.capper }
}
if (this.settings.state.camera && this.settings.state.camera.intval) {
c.intval = this.settings.state.camera.intval
}
return this.ready(p, c, l, cs, ps)
return this.ready(p, c, l, cs, ps, capper)
}
/**
*
@ -430,7 +472,7 @@ class Devices {
/**
*
**/
private ready (projector : any, camera : any, light : any, camera_second : any, projector_second : any) {
private ready (projector : any, camera : any, light : any, camera_second : any, projector_second : any, capper : any) {
let args : any = {
camera,
projector,
@ -438,6 +480,7 @@ class Devices {
profile: this.settings.state.profile
}
console.log("CHECK " + camera)
if (projector_second && projector_second.arduino) {
args.projector_second = projector_second
this.settings.update('projector_second', projector_second)
@ -454,9 +497,17 @@ class Devices {
}
}
if (capper) {
this.mainWindow.setSize(800, 800)
this.settings.update('capper', capper)
args.capper = capper
}
this.settings.update('camera', camera)
this.settings.update('projector', projector)
this.settings.update('light', light)
this.settings.save()
this.ui.send('ready', args)

View File

@ -15,7 +15,8 @@ class Settings {
profile : 'mcopy',
camera : {},
projector : {},
light : {}
light : {},
capper : {}
}
public state : any;
/**