Intval connect feature, for accessing an intval3 over the web
This commit is contained in:
parent
6613558221
commit
43770b539f
|
@ -236,7 +236,7 @@
|
|||
</div>
|
||||
<div class="spacer">
|
||||
<input type="text" id="intval" name="intval" placeholder="INTVAL3 URL"/>
|
||||
<input type="radio" name="camera_type" value="intval" />
|
||||
<input type="radio" name="camera_type" value="intval" onclick="devices.intval();" />
|
||||
</div>
|
||||
<div>
|
||||
<h4>Light</h4>
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
'use strict'
|
||||
|
||||
const req = require('request')
|
||||
const devices = {}
|
||||
|
||||
class Intval {
|
||||
constructor (device, url) {
|
||||
devices[device] = `http://${url}`
|
||||
constructor (url) {
|
||||
this._baseUrl = `http://${url}`
|
||||
}
|
||||
move (device, cb) {
|
||||
move (cb) {
|
||||
const timeStart = +new Date()
|
||||
const baseUrl = devices[device]
|
||||
const url = `${baseUrl}/frame`
|
||||
const url = `${this._baseUrl}/frame`
|
||||
//console.log(url)
|
||||
req(url, (err, res, body) => {
|
||||
let ms = (+new Date()) - timeStart
|
||||
|
@ -20,10 +18,9 @@ class Intval {
|
|||
cb(ms)
|
||||
})
|
||||
}
|
||||
setDir (device, dir, cb) {
|
||||
setDir (dir, cb) {
|
||||
const timeStart = +new Date()
|
||||
const baseUrl = devices[device]
|
||||
const url = `${baseUrl}/dir?dir=${dir}`
|
||||
const url = `${this._baseUrl}/dir?dir=${dir}`
|
||||
//console.log(url)
|
||||
req(url, (err, res, body) => {
|
||||
let ms = (+new Date()) - timeStart
|
||||
|
@ -34,10 +31,9 @@ class Intval {
|
|||
})
|
||||
|
||||
}
|
||||
setExposure (device, exposure, cb) {
|
||||
setExposure (exposure, cb) {
|
||||
const timeStart = +new Date()
|
||||
const baseUrl = devices[device]
|
||||
const url = `${baseUrl}/exposure?exposure=${exposure}`
|
||||
const url = `${this._baseUrl}/exposure?exposure=${exposure}`
|
||||
//console.log(url)
|
||||
req(url, (err, res, body) => {
|
||||
let ms = (+new Date()) - timeStart
|
||||
|
@ -47,6 +43,24 @@ class Intval {
|
|||
cb(ms)
|
||||
})
|
||||
}
|
||||
connect (cb) {
|
||||
const timeStart = +new Date()
|
||||
const url = `${this._baseUrl}/status`
|
||||
const opts = {
|
||||
method : 'GET',
|
||||
uri : url,
|
||||
timeout: 5000
|
||||
}
|
||||
|
||||
req(opts, (err, res, body) => {
|
||||
let ms = (+new Date()) - timeStart
|
||||
if (err) {
|
||||
//console.error(err)
|
||||
return cb(err, ms)
|
||||
}
|
||||
cb(null, ms, body)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Intval
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
var devices = {};
|
||||
|
||||
devices.init = function () {
|
||||
|
@ -10,20 +11,63 @@ devices.listen = function () {
|
|||
'use strict';
|
||||
|
||||
ipcRenderer.on('ready', devices.ready);
|
||||
ipcRenderer.on('intval', devices.intvalCb);
|
||||
};
|
||||
devices.ready = function (event, arg) {
|
||||
'use strict';
|
||||
let opt;
|
||||
let devs = [];
|
||||
gui.spinner(false);
|
||||
gui.overlay(false);
|
||||
for (let i in arg) {
|
||||
if (arg[i] !== '/dev/fake') {
|
||||
devs.push(arg[i]);
|
||||
}
|
||||
opt = $('<option>');
|
||||
opt.val(arg[i]);
|
||||
opt.text(arg[i]);
|
||||
$(`#${i}_device`).empty();
|
||||
$(`#${i}_device`).append(opt);
|
||||
}
|
||||
if (devs.length > 0) {
|
||||
$('#devices').empty();
|
||||
for (let i of devs) {
|
||||
opt = $('<option>');
|
||||
opt.val(i);
|
||||
opt.text(i);
|
||||
$('#devices').append(opt);
|
||||
}
|
||||
}
|
||||
return event.returnValue = true;
|
||||
};
|
||||
|
||||
devices.intval = function () {
|
||||
'use strict';
|
||||
const url = $('#intval').val()
|
||||
let proceed = false
|
||||
let obj = {
|
||||
connect: true,
|
||||
url : url
|
||||
}
|
||||
if ( url !== '' && typeof url !== 'undefined') {
|
||||
proceed = confirm(`Are you sure you want to connect to INTVAL3 ${url}?`)
|
||||
} else {
|
||||
alert('Cannot connect to INTVAL3 url as entered.')
|
||||
}
|
||||
|
||||
if (proceed) {
|
||||
gui.overlay(true);
|
||||
gui.spinner(true);
|
||||
ipcRenderer.send('intval', obj)
|
||||
} else {
|
||||
$('input[name=camera_type][value=arduino]').prop('checked', 'checked');
|
||||
}
|
||||
};
|
||||
|
||||
devices.intvalCb = function (a, b) {
|
||||
'use strict';
|
||||
console.dir(a);
|
||||
console.dir(b);
|
||||
};
|
||||
|
||||
module.exports = devices;
|
27
app/main.js
27
app/main.js
|
@ -157,8 +157,6 @@ var distinguishDevices = function (devices) {
|
|||
}
|
||||
})
|
||||
}
|
||||
console.dir(mcopy.settings)
|
||||
console.dir(checklist)
|
||||
|
||||
checklist = devices.map(device => {
|
||||
return next => {
|
||||
|
@ -171,6 +169,7 @@ var distinguishDevices = function (devices) {
|
|||
})
|
||||
}
|
||||
})
|
||||
|
||||
async.series(checklist, () => {
|
||||
//done checking devices
|
||||
if (!connected.projector) {
|
||||
|
@ -307,7 +306,9 @@ proj.end = function (cmd, id, ms) {
|
|||
mainWindow.webContents.send('proj', {cmd: cmd, id : id, ms: ms})
|
||||
}
|
||||
|
||||
var cam = {}
|
||||
var cam = {
|
||||
intval : null
|
||||
}
|
||||
cam.state = {
|
||||
dir : true //default dir
|
||||
}
|
||||
|
@ -358,8 +359,24 @@ cam.listen = function () {
|
|||
cam.move(arg.frame, arg.id)
|
||||
}
|
||||
event.returnValue = true
|
||||
});
|
||||
};
|
||||
})
|
||||
ipcMain.on('intval', (event, arg) => {
|
||||
console.dir(arg)
|
||||
if (arg.connect) {
|
||||
cam.intval = new Intval(arg.url)
|
||||
/*cam.intval.connect((err, ms, state) => {
|
||||
if (err) {
|
||||
log.info(`Cannot connect to ${arg.url}`, 'INTVAL', true, true)
|
||||
cam.intval = null
|
||||
} else {
|
||||
log.info()
|
||||
}
|
||||
})*/
|
||||
} else if (arg.disconnect) {
|
||||
cam.intval = null
|
||||
}
|
||||
})
|
||||
}
|
||||
cam.end = function (cmd, id, ms) {
|
||||
var message = ''
|
||||
if (cmd === mcopy.cfg.arduino.cmd.cam_forward) {
|
||||
|
|
Loading…
Reference in New Issue