Push dev work to master #2
|
@ -257,179 +257,7 @@
|
||||||
</footer>
|
</footer>
|
||||||
<script src="static/js/intval.core.js"></script>
|
<script src="static/js/intval.core.js"></script>
|
||||||
<script>
|
<script>
|
||||||
'use strict'
|
|
||||||
const web = {};
|
|
||||||
web._header = new Headers({ 'content-type' : 'application/json' })
|
|
||||||
web.frame = function () {
|
|
||||||
const opts = {
|
|
||||||
method : 'POST',
|
|
||||||
headers : web._header
|
|
||||||
};
|
|
||||||
fetch('/frame', opts)
|
|
||||||
.then(res => {
|
|
||||||
return res.json()
|
|
||||||
})
|
|
||||||
.then(web.frameSuccess)
|
|
||||||
.catch(err => {
|
|
||||||
console.error('Error triggering frame')
|
|
||||||
console.error(err)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
web.frameSuccess = function (res) {
|
|
||||||
document.getElementById('frame').blur();
|
|
||||||
console.log(`Frame ${res.dir ? 'forward' : 'backward'} took ${res.len}ms`)
|
|
||||||
if (res.dir === true) {
|
|
||||||
incCounter(1);
|
|
||||||
} else {
|
|
||||||
incCounter(-1);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
web.setDir = function () {
|
|
||||||
const dir = !document.getElementById('dir').checked;
|
|
||||||
const opts = {
|
|
||||||
method : 'POST',
|
|
||||||
headers : web._header,
|
|
||||||
body : JSON.stringify({ dir : dir })
|
|
||||||
};
|
|
||||||
fetch('/dir', opts)
|
|
||||||
.then(res => {
|
|
||||||
return res.json()
|
|
||||||
})
|
|
||||||
.then(web.setDirSuccess)
|
|
||||||
.catch(err => {
|
|
||||||
console.error('Error setting direction')
|
|
||||||
console.error(err);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
web.setDirSuccess = function (res) {
|
|
||||||
STATE.dir = res.dir;
|
|
||||||
setDirLabel(res.dir);
|
|
||||||
console.log(`setDir to ${res.dir}`);
|
|
||||||
};
|
|
||||||
web.getState = function () {
|
|
||||||
const opts = {
|
|
||||||
method : 'GET'
|
|
||||||
}
|
|
||||||
fetch('/status', opts)
|
|
||||||
.then(res => {
|
|
||||||
return res.json();
|
|
||||||
})
|
|
||||||
.then(web.getStateSuccess)
|
|
||||||
.catch(err => {
|
|
||||||
console.error('Error getting state');
|
|
||||||
console.error(err);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
web.getStateSuccess = function (res) {
|
|
||||||
let exposure;
|
|
||||||
let scale;
|
|
||||||
if (res.frame.dir !== true) {
|
|
||||||
document.getElementById('dir').checked = true;
|
|
||||||
STATE.dir = res.frame.dir;
|
|
||||||
setDirLabel(false);
|
|
||||||
}
|
|
||||||
document.getElementById('counter').value = res.counter;
|
|
||||||
STATE.counter = res.counter;
|
|
||||||
//Exposure
|
|
||||||
if (res.frame.exposure === 0) {
|
|
||||||
res.frame.exposure = BOLEX.expected;
|
|
||||||
}
|
|
||||||
STATE.exposure = res.frame.exposure;
|
|
||||||
exposure = shutter(STATE.exposure);
|
|
||||||
scale = scaleAuto(STATE.exposure);
|
|
||||||
document.getElementById('str').value = exposure.str;
|
|
||||||
document.getElementById('scale').value = scale;
|
|
||||||
setExposureScale();
|
|
||||||
|
|
||||||
document.getElementById('delay').value = res.frame.delay;
|
|
||||||
STATE.delay = res.frame.delay;
|
|
||||||
};
|
|
||||||
web.setExposure = function () {
|
|
||||||
let exposure = document.getElementById('exposure').value;
|
|
||||||
let scaledExposure;
|
|
||||||
let opts
|
|
||||||
if (exposure === '' || exposure === null) {
|
|
||||||
exposure = 0;
|
|
||||||
}
|
|
||||||
scaledExposure = scaleTime(exposure, STATE.scale);
|
|
||||||
opts = {
|
|
||||||
method : 'POST',
|
|
||||||
headers : web._header,
|
|
||||||
body : JSON.stringify({ exposure : scaledExposure })
|
|
||||||
}
|
|
||||||
fetch('/exposure', opts)
|
|
||||||
.then(web.useJson)
|
|
||||||
.then(web.setExposureSuccess)
|
|
||||||
.catch(err => {
|
|
||||||
console.error('Error setting exposure');
|
|
||||||
console.error(err);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
web.setExposureSuccess = function (res) {
|
|
||||||
let exposure;
|
|
||||||
if (res.exposure < BOLEX.expected) {
|
|
||||||
res.exposure = BOLEX.expected;
|
|
||||||
}
|
|
||||||
STATE.exposure = res.exposure;
|
|
||||||
exposure = shutter(STATE.exposure);
|
|
||||||
document.getElementById('str').value = exposure.str;
|
|
||||||
console.log(`setExposure to ${res.exposure}`);
|
|
||||||
};
|
|
||||||
web.setDelay = function () {
|
|
||||||
const delay = document.getElementById('delay').value;
|
|
||||||
const scaledDelay = scaleTime(delay, STATE.delayScale)
|
|
||||||
let opts = {
|
|
||||||
method : 'POST',
|
|
||||||
headers : web._header,
|
|
||||||
body : JSON.stringify({ delay : scaledDelay })
|
|
||||||
}
|
|
||||||
fetch('/delay', opts)
|
|
||||||
.then(web.useJson)
|
|
||||||
.then(web.setDelaySuccess)
|
|
||||||
.catch(err => {
|
|
||||||
console.error('Error setting delay');
|
|
||||||
console.error(err);
|
|
||||||
})
|
|
||||||
};
|
|
||||||
web.setDelaySuccess = function (res) {
|
|
||||||
STATE.delay = res.delay;
|
|
||||||
console.log(`setDelay to ${res.delay}`);
|
|
||||||
};
|
|
||||||
web.setCounter = function () {
|
|
||||||
const counter = document.getElementById('counter').value;
|
|
||||||
const change = prompt(`Change counter value?`, counter);
|
|
||||||
if (change === null || !isNumeric(change)) return false;
|
|
||||||
const opts = {
|
|
||||||
method : 'POST',
|
|
||||||
headers : web._header,
|
|
||||||
body : JSON.stringify({ counter : change })
|
|
||||||
}
|
|
||||||
fetch('/counter', opts)
|
|
||||||
.then(web.useJson)
|
|
||||||
.then(web.setCounterSuccess)
|
|
||||||
.catch(err => {
|
|
||||||
console.error('Error setting counter');
|
|
||||||
console.error(err);
|
|
||||||
})
|
|
||||||
};
|
|
||||||
web.setCounterSuccess = function (res) {
|
|
||||||
STATE.counter = res.counter;
|
|
||||||
forceCounter(res.counter);
|
|
||||||
console.log(`setCounter to ${res.counter}`);
|
|
||||||
};
|
|
||||||
web.useJson = function (res) {
|
|
||||||
return res.json();
|
|
||||||
}
|
|
||||||
web.init = function () {
|
|
||||||
frame = web.frame;
|
|
||||||
getState = web.getState;
|
|
||||||
setDir = web.setDir;
|
|
||||||
setExposure = web.setExposure;
|
|
||||||
setCounter = web.setCounter;
|
|
||||||
|
|
||||||
web.getState();
|
|
||||||
};
|
|
||||||
web.init();
|
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
var mobile = {};
|
var mobile = {};
|
||||||
|
|
|
@ -0,0 +1,173 @@
|
||||||
|
'use strict'
|
||||||
|
const web = {};
|
||||||
|
web._header = new Headers({ 'content-type' : 'application/json' })
|
||||||
|
web.frame = function () {
|
||||||
|
const opts = {
|
||||||
|
method : 'POST',
|
||||||
|
headers : web._header
|
||||||
|
};
|
||||||
|
fetch('/frame', opts)
|
||||||
|
.then(res => {
|
||||||
|
return res.json()
|
||||||
|
})
|
||||||
|
.then(web.frameSuccess)
|
||||||
|
.catch(err => {
|
||||||
|
console.error('Error triggering frame')
|
||||||
|
console.error(err)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
web.frameSuccess = function (res) {
|
||||||
|
document.getElementById('frame').blur();
|
||||||
|
console.log(`Frame ${res.dir ? 'forward' : 'backward'} took ${res.len}ms`)
|
||||||
|
if (res.dir === true) {
|
||||||
|
incCounter(1);
|
||||||
|
} else {
|
||||||
|
incCounter(-1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
web.setDir = function () {
|
||||||
|
const dir = !document.getElementById('dir').checked;
|
||||||
|
const opts = {
|
||||||
|
method : 'POST',
|
||||||
|
headers : web._header,
|
||||||
|
body : JSON.stringify({ dir : dir })
|
||||||
|
};
|
||||||
|
fetch('/dir', opts)
|
||||||
|
.then(res => {
|
||||||
|
return res.json()
|
||||||
|
})
|
||||||
|
.then(web.setDirSuccess)
|
||||||
|
.catch(err => {
|
||||||
|
console.error('Error setting direction')
|
||||||
|
console.error(err);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
web.setDirSuccess = function (res) {
|
||||||
|
STATE.dir = res.dir;
|
||||||
|
setDirLabel(res.dir);
|
||||||
|
console.log(`setDir to ${res.dir}`);
|
||||||
|
};
|
||||||
|
web.getState = function () {
|
||||||
|
const opts = {
|
||||||
|
method : 'GET'
|
||||||
|
}
|
||||||
|
fetch('/status', opts)
|
||||||
|
.then(res => {
|
||||||
|
return res.json();
|
||||||
|
})
|
||||||
|
.then(web.getStateSuccess)
|
||||||
|
.catch(err => {
|
||||||
|
console.error('Error getting state');
|
||||||
|
console.error(err);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
web.getStateSuccess = function (res) {
|
||||||
|
let exposure;
|
||||||
|
let scale;
|
||||||
|
if (res.frame.dir !== true) {
|
||||||
|
document.getElementById('dir').checked = true;
|
||||||
|
STATE.dir = res.frame.dir;
|
||||||
|
setDirLabel(false);
|
||||||
|
}
|
||||||
|
document.getElementById('counter').value = res.counter;
|
||||||
|
STATE.counter = res.counter;
|
||||||
|
//Exposure
|
||||||
|
if (res.frame.exposure === 0) {
|
||||||
|
res.frame.exposure = BOLEX.expected;
|
||||||
|
}
|
||||||
|
STATE.exposure = res.frame.exposure;
|
||||||
|
exposure = shutter(STATE.exposure);
|
||||||
|
scale = scaleAuto(STATE.exposure);
|
||||||
|
document.getElementById('str').value = exposure.str;
|
||||||
|
document.getElementById('scale').value = scale;
|
||||||
|
setExposureScale();
|
||||||
|
|
||||||
|
document.getElementById('delay').value = res.frame.delay;
|
||||||
|
STATE.delay = res.frame.delay;
|
||||||
|
};
|
||||||
|
web.setExposure = function () {
|
||||||
|
let exposure = document.getElementById('exposure').value;
|
||||||
|
let scaledExposure;
|
||||||
|
let opts
|
||||||
|
if (exposure === '' || exposure === null) {
|
||||||
|
exposure = 0;
|
||||||
|
}
|
||||||
|
scaledExposure = scaleTime(exposure, STATE.scale);
|
||||||
|
opts = {
|
||||||
|
method : 'POST',
|
||||||
|
headers : web._header,
|
||||||
|
body : JSON.stringify({ exposure : scaledExposure })
|
||||||
|
}
|
||||||
|
fetch('/exposure', opts)
|
||||||
|
.then(web.useJson)
|
||||||
|
.then(web.setExposureSuccess)
|
||||||
|
.catch(err => {
|
||||||
|
console.error('Error setting exposure');
|
||||||
|
console.error(err);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
web.setExposureSuccess = function (res) {
|
||||||
|
let exposure;
|
||||||
|
if (res.exposure < BOLEX.expected) {
|
||||||
|
res.exposure = BOLEX.expected;
|
||||||
|
}
|
||||||
|
STATE.exposure = res.exposure;
|
||||||
|
exposure = shutter(STATE.exposure);
|
||||||
|
document.getElementById('str').value = exposure.str;
|
||||||
|
console.log(`setExposure to ${res.exposure}`);
|
||||||
|
};
|
||||||
|
web.setDelay = function () {
|
||||||
|
const delay = document.getElementById('delay').value;
|
||||||
|
const scaledDelay = scaleTime(delay, STATE.delayScale)
|
||||||
|
let opts = {
|
||||||
|
method : 'POST',
|
||||||
|
headers : web._header,
|
||||||
|
body : JSON.stringify({ delay : scaledDelay })
|
||||||
|
}
|
||||||
|
fetch('/delay', opts)
|
||||||
|
.then(web.useJson)
|
||||||
|
.then(web.setDelaySuccess)
|
||||||
|
.catch(err => {
|
||||||
|
console.error('Error setting delay');
|
||||||
|
console.error(err);
|
||||||
|
})
|
||||||
|
};
|
||||||
|
web.setDelaySuccess = function (res) {
|
||||||
|
STATE.delay = res.delay;
|
||||||
|
console.log(`setDelay to ${res.delay}`);
|
||||||
|
};
|
||||||
|
web.setCounter = function () {
|
||||||
|
const counter = document.getElementById('counter').value;
|
||||||
|
const change = prompt(`Change counter value?`, counter);
|
||||||
|
if (change === null || !isNumeric(change)) return false;
|
||||||
|
const opts = {
|
||||||
|
method : 'POST',
|
||||||
|
headers : web._header,
|
||||||
|
body : JSON.stringify({ counter : change })
|
||||||
|
}
|
||||||
|
fetch('/counter', opts)
|
||||||
|
.then(web.useJson)
|
||||||
|
.then(web.setCounterSuccess)
|
||||||
|
.catch(err => {
|
||||||
|
console.error('Error setting counter');
|
||||||
|
console.error(err);
|
||||||
|
})
|
||||||
|
};
|
||||||
|
web.setCounterSuccess = function (res) {
|
||||||
|
STATE.counter = res.counter;
|
||||||
|
forceCounter(res.counter);
|
||||||
|
console.log(`setCounter to ${res.counter}`);
|
||||||
|
};
|
||||||
|
web.useJson = function (res) {
|
||||||
|
return res.json();
|
||||||
|
}
|
||||||
|
web.init = function () {
|
||||||
|
frame = web.frame;
|
||||||
|
getState = web.getState;
|
||||||
|
setDir = web.setDir;
|
||||||
|
setExposure = web.setExposure;
|
||||||
|
setCounter = web.setCounter;
|
||||||
|
|
||||||
|
web.getState();
|
||||||
|
};
|
||||||
|
web.init();
|
Loading…
Reference in New Issue