Merge branch 'espruino:master' into master

master
Peer David 2022-09-19 17:26:04 +02:00 committed by GitHub
commit 28bcc3f632
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 69 additions and 125 deletions

View File

@ -1 +1,2 @@
0.01: New face!
0.02: Improved clock

View File

@ -8,85 +8,43 @@ const offset = 25;
const width = g.getWidth();
const height = g.getHeight();
const locale = require("locale");
var drawTimeout;
var fgTime = 0xf800;
var bgTime = 0x3333ff;
var dayDate = 0x000;
function time() { //numbers
function queueDraw() {
if (drawTimeout) clearTimeout(drawTimeout);
drawTimeout = setTimeout(function() {
drawTimeout = undefined;
draw();
}, 60000 - (Date.now() % 60000));
}
function time() {
require("Font4x5").add(Graphics);
var d = new Date();
var day = d.getDate();
var time = require("locale").time(d,1);
var date = require("locale").date(d);
var mo = require("date_utils").month(d.getMonth()+1,0);
const d = new Date();
const h = d.getHours(),
m = d.getMinutes();
const day = Date.now();
const mo = d.getMonth()+1;
var middle= ":";
const date = january(d.getMonth())+" "+d.getDate();
const time = h + " " + ("0" + m).substr(-2);
// time
//g.setColor(0, 0, 0);
g.setFontAlign(0,0);
g.setFontSixCaps(2).setColor(fgTime).drawString(time, width/2, height/2+10);
g.setFont("4x5",2);
g.setFontAlign(0,0);
g.setColor(dayDate).drawString(date,width-50, height-16);
}
function january(month){ //switch case for month names
switch (month){
case 0:
middle="January";
return middle;
case 1:
middle="February";
return middle;
case 2:
middle="March";
return middle;
case 3:
middle="April";
return middle;
case 4:
middle="May";
return middle;
case 5:
middle="June";
return middle;
case 6:
middle="July";
return middle;
case 7:
middle="August";
return middle;
case 8:
middle="September";
return middle;
case 9:
middle="October";
return middle;
case 10:
middle="November";
return middle;
case 11:
middle="December";
return middle;
}
g.setColor(dayDate).drawString(mo,width-55, height-16);
g.drawString(day,width-10, height-16);
}
function draw() {
g.setColor(bgTime).fillRect(0,40,width,height-offset);
time();
queueDraw();
}
//program start
g.clear(); // Clear the screen once, at startup
if (g.theme.dark==true){
@ -97,16 +55,8 @@ else {
}
draw(); // draw immediately at first
var secondInterval = setInterval(draw, 1000); // Stop updates when LCD is off, restart when on
Bangle.on('lcdPower',on=>{
if (secondInterval) clearInterval(secondInterval);
secondInterval = undefined;
if (on) {
secondInterval = setInterval(draw, 1000);
draw(); // draw immediately
}
});
// Show launcher when middle button pressed
Bangle.setUI("clock");

View File

@ -2,7 +2,7 @@
"id": "distortclk",
"name": "Distort Clock",
"shortName":"Distort Clock",
"version": "0.01",
"version": "0.02",
"description": "A clockface",
"icon": "app.png",
"type": "clock",

View File

@ -1,2 +1,3 @@
0.01: New face :)
0.02: Color image compressed
0.03: Improved clock

View File

@ -5,7 +5,7 @@ const width = g.getWidth();
const height = g.getHeight();
const font = "Vector:12";
const locale = require("locale");
var drawTimeout;
var img = {
width : 176, height : 149, bpp : 4,
@ -20,34 +20,12 @@ var night= {
buffer : (atob("ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERABEREREREREAEREREREREREREREREREREREREREREREREREREREREREREREQABERERERHwABEREREREREREREREREREREREREREREREREREREREREREREREQ/xERERER/wERERERERERERERERERERERERERERERERERERERERERERERERH//xERERH//xERERERERERERERERERERERERERERERERERERERERERERERERH//xEREf/xERERERERERERERERERERERERERERERERERERERERERERERERERH///////ERERERERERERERERERERERERERERERERERERERERERERERERERER////////8RERERERERERERERERERERERERERERERERERERERERERERERERH/////////ERERERERERERERERERERERERERERERERERERERERERERERERER////D///DxERERERERERERERERERERERERERERERERERERERERERERERERH////w///w8RERERERERERERERERERERERERERERERERERERERER//ERERER//AA///w/w8REREREREREREREREREREREREREREREREREREREREf////EREf/wAP/wAA8PERERERERERERERERERERERERERERERERERERERERH////xERH/8AD/////DxERERERERERERERERERERERERERERERERERERERER////8REf//////////ERERERERERERERERERERERERERERERERERERERERERERH/8R/////////xERERERERERERERERERERERERERERERERERERERER////////Ef////////////////////////////////////////////////////////////////////////////////////////////////////////////8RERERH////////////xERERERERERERERERERERERERERERERERERERERERERERERH///////////EREREREREREREREREREREREREREREREREREREREREf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////w=="))
};
var time= "10:20";
function time() { //numbers
// work out how to display the current time
const d = new Date();
const h = d.getHours(),
m = d.getMinutes();
const time = h + ":" + ("0" + m).substr(-2);
const day = Date.now();
const mo = d.getMonth()+1;
const damo = d.getDate();
var dayMonth = mo+"-"+damo;
// time
require("Font4x5").add(Graphics);
isDark();
g.setFontAlign(0,0);
//g.setFont("6x8:4x5");
g.setFont("4x5",7);
g.drawString(time, width/2, height/2);
// date
require("Font4x5").add(Graphics);
g.setFontAlign(1,1);
//g.setFont("4x6",2);
g.setFont("4x5",3);
g.drawString(dayMonth, width/2+60, height/2+40);
function queueDraw() {
if (drawTimeout) clearTimeout(drawTimeout);
drawTimeout = setTimeout(function() {
drawTimeout = undefined;
draw();
}, 60000 - (Date.now() % 60000));
}
function isDark(){
@ -59,6 +37,22 @@ function isDark(){
}
}
function time() {
var d = new Date();
var day = d.getDate();
var time = require("locale").time(d,1);
var date = require("locale").date(d);
var mo = require("date_utils").month(d.getMonth()+1,1);
require("Font4x5").add(Graphics); // time
isDark();
g.setFontAlign(0,0);
g.setFont("4x5",7.5).drawString(time, width/2, height/2);
g.setFontAlign(1,1);
g.setFont("4x5",3).drawString(mo+" "+day, width-15, height-35);
}
function draw() { //poketch background
if (g.theme.dark==true){
g.drawImage(night, 0, 25, {scale:2}); //poketch is life
@ -67,20 +61,13 @@ function draw() { //poketch background
g.drawImage(img, 0, 25); //poketch is life
}
time();
queueDraw();
}
//program start
g.clear();
draw();
var secondInterval = setInterval(draw, 1000); // Stop updates when LCD is off, restart when on
Bangle.on('lcdPower',on=>{
if (secondInterval) clearInterval(secondInterval);
secondInterval = undefined;
if (on) {
secondInterval = setInterval(draw, 1000);
draw(); // draw immediately
}
});
// Show launcher when middle button pressed
Bangle.setUI("clock");
// Load widgets

View File

@ -2,7 +2,7 @@
"id": "pokeclk",
"name": "Poketch Clock",
"shortName":"Poketch Clock",
"version": "0.02",
"version": "0.03",
"description": "A clock based on the Poketch electronic device found in Sinnoh",
"icon": "app.png",
"type": "clock",

View File

@ -1,2 +1,3 @@
0.01: New Widget!
0.02: Now also visible on Bangle.js 2
0.03: Remove global declaration of BANGLEJS2 var (fix #2123)

View File

@ -2,7 +2,7 @@
"id": "widram",
"name": "RAM Widget",
"shortName": "RAM Widget",
"version": "0.02",
"version": "0.03",
"description": "Display your Bangle's RAM usage percentage in a widget",
"icon": "widget.png",
"type": "widget",

View File

@ -1,6 +1,6 @@
(() => {
function draw() {
BANGLEJS2 = process.env.HWVERSION==2;
const BANGLEJS2 = process.env.HWVERSION==2;
g.reset();
var m = process.memory();
var percent = Math.round(m.usage*100/m.total);

View File

@ -16,12 +16,15 @@ var SETTINGS = {
};
var APPSDIR = __dirname+"/../apps/";
var noble;
try {
noble = require('@abandonware/noble');
} catch (e) {}
["@abandonware/noble", "noble"].forEach(module => {
if (!noble) try {
noble = require('noble');
} catch (e) { }
noble = require(module);
} catch(e) {
if (e.code !== 'MODULE_NOT_FOUND') {
throw e;
}
}
});
if (!noble) {
console.log("You need to:")
console.log(" npm install @abandonware/noble")
@ -60,6 +63,10 @@ dirs.forEach(dir => {
var args = process.argv;
var bangleParam = args.findIndex(arg => /-b\d/.test(arg));
if (bangleParam!==-1) {
deviceId = "BANGLEJS"+args.splice(bangleParam, 1)[0][2];
}
if (args.length==3 && args[2]=="list") cmdListApps();
else if (args.length==3 && args[2]=="devices") cmdListDevices();
else if (args.length==4 && args[2]=="install") cmdInstallApp(args[3]);
@ -74,11 +81,10 @@ apploader.js list
- list available apps
apploader.js devices
- list available device addresses
apploader.js install appname [de:vi:ce:ad:dr:es]
apploader.js install [-b1] appname [de:vi:ce:ad:dr:es]
NOTE: Currently this App Loader expects the device it uploads to
(deviceId) to be BANGLEJS2, so it won't work for Bangle.js 1 without
modification.
NOTE: By default this App Loader expects the device it uploads to
(deviceId) to be BANGLEJS2, pass '-b1' for it to work with Bangle.js 1
`);
process.exit(0);
}

View File

@ -11,9 +11,7 @@ exports.isWorn = function() {
return new Promise(resolve => {
if (Bangle.isCharging())
return resolve(false);
if (E.getTemperature() > 24.625)
return resolve(true);
if (Bangle.getAccel().mag > 1.045)
if (Bangle.getHealthStatus().movement > 124)
return resolve(true);
return resolve(false);
});