From 79149dad9657af32285e360d94f505463e51d93e Mon Sep 17 00:00:00 2001 From: frigis1 <63980066+frigis1@users.noreply.github.com> Date: Sat, 9 Apr 2022 15:13:47 -0700 Subject: [PATCH] Create boot.js --- apps/gbalarms/boot.js | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 apps/gbalarms/boot.js diff --git a/apps/gbalarms/boot.js b/apps/gbalarms/boot.js new file mode 100644 index 000000000..043594a5f --- /dev/null +++ b/apps/gbalarms/boot.js @@ -0,0 +1,46 @@ +(function() { + + var settings = require("Storage").readJSON("gbalarms.json", 1) || {}; + if (!settings.rp) settings.rp = true; + if (!settings.as) settings.as = true; + if (!settings.vibrate) settings.vibrate = ".."; + require('Storage').writeJSON("gbalarms.json", settings); + +//convert GB DOW format to sched DOW format +function convDow(x) { + //if no DOW selected, set alarm to all DOW + if (x == 0) x = 127; + x = x.toString(2); + for (var i = 0; x.length < 7; i++) { + x = "0"+x; + } + x = x.slice(1, 7) + x.slice(0, 1); + return "0b"+x; +} + +global.GB = (event) => { + if (event.t==="alarm") { + //wipe existing GB alarms + var gbalarms = require("sched").getAlarms().filter(a=>a.appid=="gbalarms"); + for (i = 0; i < gbalarms.length; i++) { + require("sched").setAlarm(gbalarms[i].id, undefined); + } + for (j = 0; j < event.d.length; j++) { + var a = { + id : "gb"+j, + appid : "gbalarms", + on : true, + t : event.d[j].h * 3600000 + event.d[j].m * 60000, + dow : convDow(event.d[j].rep), + last : 0, + rp : settings.rp, + as : settings.as, + vibrate : settings.vibrate + }; + require("sched").setAlarm(a.id, a); + } + } + require("sched").reload(); +}; + +})();