trying to free more memory

master
Gordon Williams 2019-11-10 12:16:04 +00:00
parent 6d2627a2f4
commit 947e39fc8d
1 changed files with 12 additions and 6 deletions

View File

@ -1,4 +1,3 @@
E.setTimeZone(1);
E.setFlags({pretokenise:1}); E.setFlags({pretokenise:1});
var startapp; var startapp;
try { try {
@ -7,16 +6,16 @@ try {
if (startapp) { if (startapp) {
eval(require("Storage").read(startapp.src)); eval(require("Storage").read(startapp.src));
} else { } else {
delete startapp;
setWatch(function displayMenu() { setWatch(function displayMenu() {
Bangle.setLCDMode("direct"); Bangle.setLCDMode("direct");
g.clear(); g.clear();
clearInterval(); clearInterval();
clearWatch(); clearWatch();
Bangle.removeAllListeners(); Bangle.removeAllListeners();
var s = require("Storage"); var s = require("Storage");
apps = s.list().filter(a=>a[0]=='+').map(app=>{ var apps = s.list().filter(a=>a[0]=='+').map(app=>{
try { return s.readJSON(app); } try { return s.readJSON(app); }
catch (e) { return {name:"DEAD: "+app.substr(1)} } catch (e) { return {name:"DEAD: "+app.substr(1)} }
}).filter(app=>app.type=="app" || app.type=="clock" || !app.type); }).filter(app=>app.type=="app" || app.type=="clock" || !app.type);
@ -80,17 +79,24 @@ if (startapp) {
g.drawString("Loading...",120,120); g.drawString("Loading...",120,120);
// load like this so we ensure we've cleared out our RAM // load like this so we ensure we've cleared out our RAM
var cmd = 'eval(require("Storage").read("'+apps[selected].src+'"));'; var cmd = 'eval(require("Storage").read("'+apps[selected].src+'"));';
setTimeout(process.memory,10); // force GC
setTimeout(cmd,20); setTimeout(cmd,20);
// re-add the menu button if we're going to the clock // re-add the menu button if we're going to the clock
if (apps[selected].type=="clock") setWatch(displayMenu, BTN2, {repeat:false}); if (apps[selected].type=="clock") {
setWatch(displayMenu, BTN2, {repeat:false,edge:"falling"});
} else {
delete WIDGETS;
delete WIDGETPOS;
delete drawWidgets;
}
}, BTN2, {repeat:true,edge:"falling"}); }, BTN2, {repeat:true,edge:"falling"});
}, BTN2, {repeat:false}); // menu on middle button }, BTN2, {repeat:false,edge:"falling"}); // menu on middle button
var WIDGETPOS={tl:32,tr:g.getWidth()-32,bl:32,br:g.getWidth()-32}; var WIDGETPOS={tl:32,tr:g.getWidth()-32,bl:32,br:g.getWidth()-32};
var WIDGETS={}; var WIDGETS={};
function drawWidgets() { function drawWidgets() {
Object.keys(WIDGETS).forEach(k=>WIDGETS[k].draw()); Object.keys(WIDGETS).forEach(k=>WIDGETS[k].draw());
} }
var clockApp = require("Storage").list().filter(a=>a[0]=='+').map(app=>{ var clockApp = require("Storage").list().filter(a=>a[0]=='+').map(app=>{
try { return require("Storage").readJSON(app); } try { return require("Storage").readJSON(app); }
catch (e) {} catch (e) {}