imageclock - Use shorter variable names

pull/2305/head
Martin Boonk 2022-11-17 18:22:04 +01:00
parent 7eda9dee49
commit e787560fb3
2 changed files with 65 additions and 62 deletions

View File

@ -1,7 +1,14 @@
let unlockedDrawInterval = []; let s = {};
let lockedDrawInterval = []; // unlocked draw intervals
let showWidgets = false; s.udi = [];
let firstDraw = true; // locked draw intervals
s.ldi = [];
// show widget state
s.sw = false;
// full draw
s.fd = true;
// performance log
s.pl = {};
{ {
let x = g.getWidth()/2; let x = g.getWidth()/2;
@ -21,12 +28,10 @@ let firstDraw = true;
let precompiledJs = eval(require("Storage").read("imageclock.draw.js")); let precompiledJs = eval(require("Storage").read("imageclock.draw.js"));
let settings = require('Storage').readJSON("imageclock.json", true) || {}; let settings = require('Storage').readJSON("imageclock.json", true) || {};
let performanceLog = {};
let startPerfLog = () => {}; let startPerfLog = () => {};
let endPerfLog = () => {}; let endPerfLog = () => {};
Bangle.printPerfLog = () => {print("Deactivated");}; Bangle.printPerfLog = () => {print("Deactivated");};
Bangle.resetPerfLog = () => {performanceLog = {};}; Bangle.resetPerfLog = () => {s.pl = {};};
let colormap={ let colormap={
"#000":0, "#000":0,
@ -64,35 +69,37 @@ let firstDraw = true;
if (settings.perflog){ if (settings.perflog){
startPerfLog = function(name){ startPerfLog = function(name){
let time = getTime(); let time = getTime();
if (!performanceLog.start) performanceLog.start={}; if (!s.pl.start) s.pl.start={};
performanceLog.start[name] = time; s.pl.start[name] = time;
}; };
endPerfLog = function (name){ endPerfLog = function (name, once){
let time = getTime(); let time = getTime();
if (!performanceLog.last) performanceLog.last={}; if (!s.pl.start[name]) return;
let duration = time - performanceLog.start[name]; if (!s.pl.last) s.pl.last={};
performanceLog.last[name] = duration; let duration = time - s.pl.start[name];
if (!performanceLog.cum) performanceLog.cum={}; s.pl.last[name] = duration;
if (!performanceLog.cum[name]) performanceLog.cum[name] = 0; if (!s.pl.cum) s.pl.cum={};
performanceLog.cum[name] += duration; if (!s.pl.cum[name]) s.pl.cum[name] = 0;
if (!performanceLog.count) performanceLog.count={}; s.pl.cum[name] += duration;
if (!performanceLog.count[name]) performanceLog.count[name] = 0; if (!s.pl.count) s.pl.count={};
performanceLog.count[name]++; if (!s.pl.count[name]) s.pl.count[name] = 0;
s.pl.count[name]++;
if (once){s.pl.start[name] = undefined}
}; };
Bangle.printPerfLog = function(){ Bangle.printPerfLog = function(){
let result = ""; let result = "";
let keys = []; let keys = [];
for (let c in performanceLog.cum){ for (let c in s.pl.cum){
keys.push(c); keys.push(c);
} }
keys.sort(); keys.sort();
for (let k of keys){ for (let k of keys){
print(k, "last:", (performanceLog.last[k] * 1000).toFixed(0), "average:", (performanceLog.cum[k]/performanceLog.count[k]*1000).toFixed(0), "count:", performanceLog.count[k], "total:", (performanceLog.cum[k] * 1000).toFixed(0)); print(k, "last:", (s.pl.last[k] * 1000).toFixed(0), "average:", (s.pl.cum[k]/s.pl.count[k]*1000).toFixed(0), "count:", s.pl.count[k], "total:", (s.pl.cum[k] * 1000).toFixed(0));
} }
}; };
} }
startPerfLog("fullDraw");
startPerfLog("loadFunctions"); startPerfLog("loadFunctions");
let delayTimeouts = {}; let delayTimeouts = {};
@ -609,14 +616,15 @@ let firstDraw = true;
promise.then(()=>{ promise.then(()=>{
let currentDrawingTime = Date.now(); let currentDrawingTime = Date.now();
if (showWidgets){ if (s.sw){
restoreWidgetDraw(); restoreWidgetDraw();
} }
lastDrawTime = Date.now() - start; lastDrawTime = Date.now() - start;
isDrawing=false; isDrawing=false;
firstDraw=false; s.fd=false;
requestRefresh = false; requestRefresh = false;
endPerfLog("initialDraw"); endPerfLog("initialDraw");
endPerfLog("fullDraw", true);
if (!Bangle.uiRemove) setUi(); if (!Bangle.uiRemove) setUi();
}).catch((e)=>{ }).catch((e)=>{
print("Error during drawing", e); print("Error during drawing", e);
@ -701,16 +709,16 @@ let firstDraw = true;
let handleLock = function(isLocked, forceRedraw){ let handleLock = function(isLocked, forceRedraw){
//print("isLocked", Bangle.isLocked()); //print("isLocked", Bangle.isLocked());
for (let i of unlockedDrawInterval){ for (let i of s.udi){
//print("Clearing unlocked", i); //print("Clearing unlocked", i);
clearInterval(i); clearInterval(i);
} }
for (let i of lockedDrawInterval){ for (let i of s.ldi){
//print("Clearing locked", i); //print("Clearing locked", i);
clearInterval(i); clearInterval(i);
} }
unlockedDrawInterval = []; s.udi = [];
lockedDrawInterval = []; s.ldi = [];
if (!isLocked){ if (!isLocked){
if (forceRedraw || !redrawEvents || (redrawEvents.includes("unlock"))){ if (forceRedraw || !redrawEvents || (redrawEvents.includes("unlock"))){
@ -726,7 +734,7 @@ let firstDraw = true;
initialDraw(watchfaceResources, watchface); initialDraw(watchfaceResources, watchface);
},unlockedRedraw, (v)=>{ },unlockedRedraw, (v)=>{
//print("New matched unlocked interval", v); //print("New matched unlocked interval", v);
unlockedDrawInterval.push(v); s.udi.push(v);
}, lastDrawTime); }, lastDrawTime);
if (!events || events.includes("HRM")) Bangle.setHRMPower(1, "imageclock"); if (!events || events.includes("HRM")) Bangle.setHRMPower(1, "imageclock");
if (!events || events.includes("pressure")) Bangle.setBarometerPower(1, 'imageclock'); if (!events || events.includes("pressure")) Bangle.setBarometerPower(1, 'imageclock');
@ -744,7 +752,7 @@ let firstDraw = true;
initialDraw(watchfaceResources, watchface); initialDraw(watchfaceResources, watchface);
},lockedRedraw, (v)=>{ },lockedRedraw, (v)=>{
//print("New matched locked interval", v); //print("New matched locked interval", v);
lockedDrawInterval.push(v); s.ldi.push(v);
}, lastDrawTime); }, lastDrawTime);
Bangle.setHRMPower(0, "imageclock"); Bangle.setHRMPower(0, "imageclock");
Bangle.setBarometerPower(0, 'imageclock'); Bangle.setBarometerPower(0, 'imageclock');
@ -760,21 +768,21 @@ let firstDraw = true;
}; };
let handleSwipe = function(lr, ud){ let handleSwipe = function(lr, ud){
if (!showWidgets && ud == 1){ if (!s.sw && ud == 1){
//print("Enable widgets"); //print("Enable widgets");
restoreWidgetDraw(); restoreWidgetDraw();
showWidgetsChanged = true; showWidgetsChanged = true;
} }
if (showWidgets && ud == -1){ if (s.sw && ud == -1){
//print("Disable widgets"); //print("Disable widgets");
clearWidgetsDraw(); clearWidgetsDraw();
firstDraw = true; s.fd = true;
showWidgetsChanged = true; showWidgetsChanged = true;
} }
if (showWidgetsChanged){ if (showWidgetsChanged){
showWidgetsChanged = false; showWidgetsChanged = false;
//print("Draw after widget change"); //print("Draw after widget change");
showWidgets = ud == 1; s.sw = ud == 1;
initialDraw(); initialDraw();
} }
}; };
@ -829,23 +837,18 @@ let firstDraw = true;
if (initialDrawTimeoutUnlocked) clearTimeout(initialDrawTimeoutUnlocked); if (initialDrawTimeoutUnlocked) clearTimeout(initialDrawTimeoutUnlocked);
if (initialDrawTimeoutLocked) clearTimeout(initialDrawTimeoutLocked); if (initialDrawTimeoutLocked) clearTimeout(initialDrawTimeoutLocked);
for (let i of global.unlockedDrawInterval){ for (let i of global.s.udi){
//print("Clearing unlocked", i); //print("Clearing unlocked", i);
clearInterval(i); clearInterval(i);
} }
delete global.unlockedDrawInterval; for (let i of global.s.ldi){
for (let i of global.lockedDrawInterval){
//print("Clearing locked", i); //print("Clearing locked", i);
clearInterval(i); clearInterval(i);
} }
delete global.lockedDrawInterval;
delete global.showWidgets;
delete global.firstDraw;
delete Bangle.printPerfLog; delete Bangle.printPerfLog;
if (settings.perflog){ if (settings.perflog){
delete Bangle.resetPerfLog; delete Bangle.resetPerfLog;
delete performanceLog;
} }
cleanupDelays(); cleanupDelays();

View File

@ -656,7 +656,7 @@
var checkcode = ""; var checkcode = "";
if (!(properties.Redraw && properties.Redraw.Clear)){ if (!(properties.Redraw && properties.Redraw.Clear)){
checkcode = 'firstDraw'; checkcode = 's.fd';
for (var i = 0; i< layerElements.length; i++){ for (var i = 0; i< layerElements.length; i++){
var layerElement = layerElements[i]; var layerElement = layerElements[i];
var referencedElement = elements[layerElements[i].index]; var referencedElement = elements[layerElements[i].index];
@ -664,9 +664,9 @@
console.log("Check for change:", layerElement, referencedElement); console.log("Check for change:", layerElement, referencedElement);
if (layerElement.element.Value){ if (layerElement.element.Value){
if (elementType == "MultiState" && layerElement.element.Value) { if (elementType == "MultiState" && layerElement.element.Value) {
checkcode += '| isChangedMultistate(wf.Collapsed[' + layerElement.index + '].value)'; checkcode += '| isChangedMultistate(wf.c[' + layerElement.index + '].value)';
} else { } else {
checkcode += '| isChangedNumber(wf.Collapsed[' + layerElement.index + '].value)'; checkcode += '| isChangedNumber(wf.c[' + layerElement.index + '].value)';
} }
checkForLayerChange = true; checkForLayerChange = true;
} }
@ -693,7 +693,7 @@
if (c.value.Type == "Once"){ if (c.value.Type == "Once"){
if (condition.length > 0) condition += " && "; if (condition.length > 0) condition += " && ";
condition += "firstDraw"; condition += "s.fd";
} }
var planeName = "p" + plane; var planeName = "p" + plane;
@ -722,7 +722,7 @@
} }
code += "" + colorsetting; code += "" + colorsetting;
if (addDebug()) code += 'print("Drawing element ' + elementIndex + ' with type ' + c.type + ' on plane ' + planeName + '");' + "\n"; if (addDebug()) code += 'print("Drawing element ' + elementIndex + ' with type ' + c.type + ' on plane ' + planeName + '");' + "\n";
code += "draw" + c.type + "(" + planeName + ", wr, wf.Collapsed[" + elementIndex + "].value);\n"; code += "draw" + c.type + "(" + planeName + ", wr, wf.c[" + elementIndex + "].value);\n";
code += "});\n"; code += "});\n";
code += (condition.length > 0 ? "}\n" : ""); code += (condition.length > 0 ? "}\n" : "");
@ -744,9 +744,9 @@
console.log("Created data file", resourceDataString, resourceDataOffset, resultJson); console.log("Created data file", resourceDataString, resourceDataOffset, resultJson);
var properties = faceJson.Properties; var properties = faceJson.Properties;
faceJson = { Properties: properties, Collapsed: collapseTree(faceJson,{X:0,Y:0})}; faceJson = { Properties: properties, c: collapseTree(faceJson,{X:0,Y:0})};
console.log("After collapsing", faceJson); console.log("After collapsing", faceJson);
precompiledJs = convertToCode(faceJson.Collapsed, properties, document.getElementById('timeoutwrap').checked, document.getElementById('forceOrigPlane').checked); precompiledJs = convertToCode(faceJson.c, properties, document.getElementById('timeoutwrap').checked, document.getElementById('forceOrigPlane').checked);
console.log("After precompiling", precompiledJs); console.log("After precompiling", precompiledJs);
} }