mirror of https://github.com/espruino/BangleApps
46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
(() => {
|
|
const pin = process.env.HWVERSION === 2 ? D3 : D30;
|
|
|
|
var id;
|
|
function gent(charging) {
|
|
if (charging) {
|
|
if (!id) {
|
|
var max = 0;
|
|
var cnt = 0;
|
|
var sum = 0;
|
|
var lim = (require('Storage').readJSON('chargent.json', true) || {}).limit || 0;
|
|
id = setInterval(() => {
|
|
var val = analogRead(pin);
|
|
if (max < val) {
|
|
max = val;
|
|
cnt = 1;
|
|
sum = val;
|
|
} else {
|
|
cnt++;
|
|
sum += val;
|
|
}
|
|
if (10 < cnt || (lim && lim <= max)) { // 10 * 30s == 5 min // TODO ? customizable
|
|
if (!lim) {
|
|
lim = sum / cnt;
|
|
require('Storage').writeJSON('chargent.json', {limit: lim});
|
|
}
|
|
const onHide = () => { id = clearInterval(id) };
|
|
require('notify').show({id: 'chargent', title: 'Fully charged', onHide });
|
|
// TODO ? customizable
|
|
Bangle.buzz(500);
|
|
setTimeout(() => Bangle.buzz(500), 1000);
|
|
}
|
|
}, 3e4);
|
|
}
|
|
} else {
|
|
if (id) {
|
|
id = clearInterval(id);
|
|
require('notify').hide({id: 'chargent'});
|
|
}
|
|
}
|
|
}
|
|
|
|
Bangle.on('charging', gent);
|
|
if (Bangle.isCharging()) gent(true);
|
|
})();
|