diff --git a/app/www/static/js/intval.mobile.js b/app/www/static/js/intval.mobile.js
index 79b1abf..ef002e1 100644
--- a/app/www/static/js/intval.mobile.js
+++ b/app/www/static/js/intval.mobile.js
@@ -465,63 +465,55 @@ mobile.cameraExposure = function (exif) {
const cIso = exif.ISOSpeedRatings[0];
//convert fstop to "fnumber", an absolute scale where stops are scaled to 1.0
- const f = mobile.fnumber(cFstop);
- const target = mobile.fnumber(fstop); //bolex
+ const f = fnumber(cFstop);
+ const target = fnumber(fstop); //bolex
let exposure = cExposure;
let isoStops = 0;
let fStops = 0;
+ let expDiff;
+
let scale_elem;
let exposure_elem;
+
let proceed;
let e1;
let e2;
mobile.exif = exif;
- console.dir(exif);
-
- console.log(`fstop : ${fstop}`);
- console.log(`iso : ${iso}`);
- bol_f.value = fstop;
- bol_iso.value = iso;
-
- console.log(`cExposure : ${cExposure}`);
- console.log(`cFstop : ${cFstop}`);
- console.log(`cIso : ${cIso}`);
- cam_exp.value = cExposure;
- cam_f.value = cFstop;
- cam_iso.value = cIso;
-
- console.log(`f : ${f}`);
- console.log(`target : ${target}`);
//Determine if fstop of phone camera "f"
if (target !== f) {
fStops = f - target;
exposure = exposure / Math.pow(2, fStops);
}
- bol_f_diff.innerHTML = Math.round(parseFloat(-fStops) * 10) / 10;
- console.log(`fstops : ${fStops}`);
- console.log(`exposure => ${exposure}`);
if (cIso != iso) {
isoStops = (Math.log(cIso) / Math.log(2)) - (Math.log(iso) / Math.log(2));
}
- bol_iso_diff.innerHTML = Math.round(parseFloat(isoStops) * 10) / 10;
- console.log(`isoStops : ${isoStops}`)
//Double or halve exposure based on the differences in ISO stops
exposure = exposure * Math.pow(2, isoStops);
- console.log(`exposure => ${exposure}`);
- console.log(`prism : ${prism}`);
//Compensate for Bolex prism
exposure = exposure * Math.pow(2, prism);
- console.log(`exposure => ${prism}`);
exposure = Math.round(exposure) //round to nearest millisecond
+
+ bol_f.value = fstop;
+ bol_iso.value = iso;
bol_exp.value = exposure;
- bol_exp_diff.value = 0;
+
+ //Total difference in exposure from phone camera to Bolex
+ expDiff = (Math.log(exposure) / Math.log(2)) - (Math.log(cExposure) / Math.log(2));
+
+ bol_exp_diff.innerHTML = floatDisplay(expDiff);
+ bol_iso_diff.innerHTML = floatDisplay(isoStops);
+ bol_f_diff.innerHTML = floatDisplay(-fStops);
+
+ cam_exp.value = cExposure;
+ cam_f.value = cFstop;
+ cam_iso.value = cIso;
if (exposure > 500) {
proceed = confirm(`Set camera exposure to ${exposure}ms to match photo.`);
@@ -594,10 +586,6 @@ mobile.refreshExposure = function () {
}
};
-mobile.fnumber = function (fstop) {
- return Math.log(fstop) / Math.log(Math.sqrt(2));
-};
-
mobile.EV = function (fstop, shutter) {
const sec = shutter / 1000; //shutter in ms => seconds
const square = Math.pow(fstop, 2);
@@ -618,4 +606,29 @@ function stringToBytes(string) {
array[i] = string.charCodeAt(i);
}
return array.buffer;
-}
\ No newline at end of file
+}
+
+function fnumber (fstop) {
+ return Math.log(fstop) / Math.log(Math.sqrt(2));
+}
+
+function floatDisplay (value) {
+ let str = value + '';
+ const period = str.indexOf('.');
+ if (period === -1) {
+ str = str + '.0';
+ } else {
+ str = roundTenth(value) + '';
+ }
+ if (value < 0) {
+ str = `${(str + '')}`;
+ } else if (value > 0) {
+ str = `+${(str + '')}`;
+ }
+ return str;
+}
+
+function roundTenth (value) {
+ return Math.round((value * 10) / 10)
+}
+