mirror of https://github.com/espruino/BangleApps
Move persistent settings to flash memory
parent
3dac14d07d
commit
d8db499671
|
@ -20,6 +20,7 @@
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"storage": [
|
"storage": [
|
||||||
{ "name": "sensible.app.js", "url": "sensible.js" },
|
{ "name": "sensible.app.js", "url": "sensible.js" },
|
||||||
{ "name": "sensible.img", "url": "sensible-icon.js", "evaluate": true }
|
{ "name": "sensible.img", "url": "sensible-icon.js", "evaluate": true },
|
||||||
|
{ "name": "sensible.json", "url": "settings.json", "noOverwrite": true }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* Copyright reelyActive 2021
|
* Copyright reelyActive 2021-2022
|
||||||
* We believe in an open Internet of Things
|
* We believe in an open Internet of Things
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@
|
||||||
// Non-user-configurable constants
|
// Non-user-configurable constants
|
||||||
const APP_ID = 'sensible';
|
const APP_ID = 'sensible';
|
||||||
const ESPRUINO_COMPANY_CODE = 0x0590;
|
const ESPRUINO_COMPANY_CODE = 0x0590;
|
||||||
|
const SETTINGS_FILENAME = 'sensible.json';
|
||||||
const APP_ADVERTISING_DATA = [ 0x12, 0xff, 0x90, 0x05, 0x7b, 0x6e, 0x61, 0x6d,
|
const APP_ADVERTISING_DATA = [ 0x12, 0xff, 0x90, 0x05, 0x7b, 0x6e, 0x61, 0x6d,
|
||||||
0x65, 0x3a, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x62,
|
0x65, 0x3a, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x62,
|
||||||
0x6c, 0x65, 0x7d ];
|
0x6c, 0x65, 0x7d ];
|
||||||
|
@ -19,16 +20,12 @@ let isBarMenu = false;
|
||||||
let isGpsMenu = false;
|
let isGpsMenu = false;
|
||||||
let isHrmMenu = false;
|
let isHrmMenu = false;
|
||||||
let isMagMenu = false;
|
let isMagMenu = false;
|
||||||
let isBarEnabled = true;
|
|
||||||
let isGpsEnabled = true;
|
|
||||||
let isHrmEnabled = true;
|
|
||||||
let isMagEnabled = true;
|
|
||||||
let isNewAccData = false;
|
let isNewAccData = false;
|
||||||
let isNewBarData = false;
|
let isNewBarData = false;
|
||||||
let isNewGpsData = false;
|
let isNewGpsData = false;
|
||||||
let isNewHrmData = false;
|
let isNewHrmData = false;
|
||||||
let isNewMagData = false;
|
let isNewMagData = false;
|
||||||
|
let settings = require('Storage').readJSON(SETTINGS_FILENAME);
|
||||||
|
|
||||||
|
|
||||||
// Menus
|
// Menus
|
||||||
|
@ -51,9 +48,10 @@ let accMenu = {
|
||||||
let barMenu = {
|
let barMenu = {
|
||||||
"": { "title" : "- Barometer -" },
|
"": { "title" : "- Barometer -" },
|
||||||
"State": {
|
"State": {
|
||||||
value: isBarEnabled,
|
value: settings.isBarEnabled,
|
||||||
format: v => v ? "On" : "Off",
|
format: v => v ? "On" : "Off",
|
||||||
onchange: v => { isBarEnabled = v; Bangle.setBarometerPower(v, APP_ID); }
|
onchange: v => { settings.isBarEnabled = v;
|
||||||
|
Bangle.setBarometerPower(v, APP_ID); }
|
||||||
},
|
},
|
||||||
"Altitude": { value: null },
|
"Altitude": { value: null },
|
||||||
"Press": { value: null },
|
"Press": { value: null },
|
||||||
|
@ -63,9 +61,9 @@ let barMenu = {
|
||||||
let gpsMenu = {
|
let gpsMenu = {
|
||||||
"": { "title" : "- GPS -" },
|
"": { "title" : "- GPS -" },
|
||||||
"State": {
|
"State": {
|
||||||
value: isGpsEnabled,
|
value: settings.isGpsEnabled,
|
||||||
format: v => v ? "On" : "Off",
|
format: v => v ? "On" : "Off",
|
||||||
onchange: v => { isGpsEnabled = v; Bangle.setGPSPower(v, APP_ID); }
|
onchange: v => { settings.isGpsEnabled = v; Bangle.setGPSPower(v, APP_ID); }
|
||||||
},
|
},
|
||||||
"Lat": { value: null },
|
"Lat": { value: null },
|
||||||
"Lon": { value: null },
|
"Lon": { value: null },
|
||||||
|
@ -77,9 +75,9 @@ let gpsMenu = {
|
||||||
let hrmMenu = {
|
let hrmMenu = {
|
||||||
"": { "title" : "- Heart Rate -" },
|
"": { "title" : "- Heart Rate -" },
|
||||||
"State": {
|
"State": {
|
||||||
value: isHrmEnabled,
|
value: settings.isHrmEnabled,
|
||||||
format: v => v ? "On" : "Off",
|
format: v => v ? "On" : "Off",
|
||||||
onchange: v => { isHrmEnabled = v; Bangle.setHRMPower(v, APP_ID); }
|
onchange: v => { settings.isHrmEnabled = v; Bangle.setHRMPower(v, APP_ID); }
|
||||||
},
|
},
|
||||||
"BPM": { value: null },
|
"BPM": { value: null },
|
||||||
"Confidence": { value: null },
|
"Confidence": { value: null },
|
||||||
|
@ -88,9 +86,10 @@ let hrmMenu = {
|
||||||
let magMenu = {
|
let magMenu = {
|
||||||
"": { "title" : "- Magnetometer -" },
|
"": { "title" : "- Magnetometer -" },
|
||||||
"State": {
|
"State": {
|
||||||
value: isMagEnabled,
|
value: settings.isMagEnabled,
|
||||||
format: v => v ? "On" : "Off",
|
format: v => v ? "On" : "Off",
|
||||||
onchange: v => { isMagEnabled = v; Bangle.setCompassPower(v, APP_ID); }
|
onchange: v => { settings.isMagEnabled = v;
|
||||||
|
Bangle.setCompassPower(v, APP_ID); }
|
||||||
},
|
},
|
||||||
"x": { value: null },
|
"x": { value: null },
|
||||||
"y": { value: null },
|
"y": { value: null },
|
||||||
|
@ -260,9 +259,9 @@ Bangle.on('mag', function(newMag) {
|
||||||
|
|
||||||
// On start: enable sensors and display main menu
|
// On start: enable sensors and display main menu
|
||||||
g.clear();
|
g.clear();
|
||||||
Bangle.setBarometerPower(isBarEnabled, APP_ID);
|
Bangle.setBarometerPower(settings.isBarEnabled, APP_ID);
|
||||||
Bangle.setGPSPower(isGpsEnabled, APP_ID);
|
Bangle.setGPSPower(settings.isGpsEnabled, APP_ID);
|
||||||
Bangle.setHRMPower(isHrmEnabled, APP_ID);
|
Bangle.setHRMPower(settings.isHrmEnabled, APP_ID);
|
||||||
Bangle.setCompassPower(isMagEnabled, APP_ID);
|
Bangle.setCompassPower(settings.isMagEnabled, APP_ID);
|
||||||
E.showMenu(mainMenu);
|
E.showMenu(mainMenu);
|
||||||
setInterval(transmitUpdatedSensorData, 1000);
|
setInterval(transmitUpdatedSensorData, 1000);
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"isBarEnabled": false,
|
||||||
|
"isGpsEnabled": false,
|
||||||
|
"isHrmEnabled": false,
|
||||||
|
"isMagEnabled": false
|
||||||
|
}
|
Loading…
Reference in New Issue