mirror of https://github.com/espruino/BangleApps
The speed of the wind can now be configured (mph / kph).
parent
1e837248ac
commit
52faa8c871
|
@ -5,7 +5,8 @@ let settings = {
|
||||||
alarm: -1,
|
alarm: -1,
|
||||||
dataRow1: "Steps",
|
dataRow1: "Steps",
|
||||||
dataRow2: "Temp",
|
dataRow2: "Temp",
|
||||||
dataRow3: "Battery"
|
dataRow3: "Battery",
|
||||||
|
speed: "kph",
|
||||||
};
|
};
|
||||||
let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings;
|
let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings;
|
||||||
for (const key in saved_settings) {
|
for (const key in saved_settings) {
|
||||||
|
@ -121,18 +122,22 @@ function queueDraw() {
|
||||||
function printRow(text, value, y, c){
|
function printRow(text, value, y, c){
|
||||||
g.setFontAntonioMedium();
|
g.setFontAntonioMedium();
|
||||||
g.setFontAlign(-1,-1,0);
|
g.setFontAlign(-1,-1,0);
|
||||||
g.setColor(c);
|
|
||||||
g.fillRect(77, y-2, 83 ,y+18);
|
|
||||||
|
|
||||||
g.setFontAlign(0,-1,0);
|
|
||||||
g.drawString(value, 110, y);
|
|
||||||
|
|
||||||
|
// Print background
|
||||||
g.setColor(c);
|
g.setColor(c);
|
||||||
g.setFontAlign(-1,-1,0);
|
g.setFontAlign(-1,-1,0);
|
||||||
g.fillRect(135, y-2, 165 ,y+18);
|
g.fillRect(80, y-2, 165 ,y+18);
|
||||||
g.fillCircle(163, y+8, 10);
|
g.fillCircle(163, y+8, 10);
|
||||||
g.setColor(cBlack);
|
g.setColor(cBlack);
|
||||||
g.drawString(text, 137, y);
|
g.drawString(text, 135, y);
|
||||||
|
|
||||||
|
// Plot text
|
||||||
|
width = g.stringWidth(value);
|
||||||
|
g.setColor(cBlack);
|
||||||
|
g.fillRect(130-width-8, y-2, 130, y+18);
|
||||||
|
g.setColor(c);
|
||||||
|
g.setFontAlign(1,-1,0);
|
||||||
|
g.drawString(value, 126, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -255,14 +260,14 @@ function drawState(){
|
||||||
iconEarth;
|
iconEarth;
|
||||||
g.drawImage(iconImg, 23, 118);
|
g.drawImage(iconImg, 23, 118);
|
||||||
g.setColor(cWhite);
|
g.setColor(cWhite);
|
||||||
g.drawString("STATUS", 23+25, 108);
|
g.drawString("STATUS", 23+26, 108);
|
||||||
} else {
|
} else {
|
||||||
// Alarm within symbol
|
// Alarm within symbol
|
||||||
g.setColor(cOrange);
|
g.setColor(cOrange);
|
||||||
g.drawString("ALARM", 23+25, 108);
|
g.drawString("ALARM", 23+26, 108);
|
||||||
g.setColor(cWhite);
|
g.setColor(cWhite);
|
||||||
g.setFontAntonioLarge();
|
g.setFontAntonioLarge();
|
||||||
g.drawString(getAlarmMinutes(), 23+25, 108+35);
|
g.drawString(getAlarmMinutes(), 23+26, 108+35);
|
||||||
}
|
}
|
||||||
|
|
||||||
g.setFontAlign(-1, -1, 0);
|
g.setFontAlign(-1, -1, 0);
|
||||||
|
@ -490,15 +495,14 @@ function getWeather(){
|
||||||
var weather = weatherJson.weather;
|
var weather = weatherJson.weather;
|
||||||
|
|
||||||
// Temperature
|
// Temperature
|
||||||
const temp = locale.temp(weather.temp-273.15).match(/^(\D*\d*)(.*)$/);
|
weather.temp = locale.temp(weather.temp-273.15);
|
||||||
weather.temp = temp[1] + " " + temp[2].toUpperCase();
|
|
||||||
|
|
||||||
// Humidity
|
// Humidity
|
||||||
weather.hum = weather.hum + "%";
|
weather.hum = weather.hum + "%";
|
||||||
|
|
||||||
// Wind
|
// Wind
|
||||||
const wind = locale.speed(weather.wind).match(/^(\D*\d*)(.*)$/);
|
var speedFactor = settings.speed == "kph" ? 1.60934 : 1.0;
|
||||||
weather.wind = Math.round(wind[1] * 1.60934) ; // + wind[2].toUpperCase(); // Don't show mph - its too large
|
weather.wind = Math.round(weather.wind * speedFactor);
|
||||||
|
|
||||||
return weather
|
return weather
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,8 @@
|
||||||
alarm: -1,
|
alarm: -1,
|
||||||
dataRow1: "Battery",
|
dataRow1: "Battery",
|
||||||
dataRow2: "Steps",
|
dataRow2: "Steps",
|
||||||
dataRow3: "Temp"
|
dataRow3: "Temp",
|
||||||
|
speed: "kph",
|
||||||
};
|
};
|
||||||
let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings;
|
let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings;
|
||||||
for (const key in saved_settings) {
|
for (const key in saved_settings) {
|
||||||
|
@ -18,35 +19,45 @@
|
||||||
storage.write(SETTINGS_FILE, settings)
|
storage.write(SETTINGS_FILE, settings)
|
||||||
}
|
}
|
||||||
|
|
||||||
var data_options = ["Steps", "Battery", "VREF", "HRM", "Temp", "Humidity", "Wind", "Altitude", "CoreT"];
|
var dataOptions = ["Steps", "Battery", "VREF", "HRM", "Temp", "Humidity", "Wind", "Altitude", "CoreT"];
|
||||||
|
var speedOptions = ["kph", "mph"];
|
||||||
|
|
||||||
E.showMenu({
|
E.showMenu({
|
||||||
'': { 'title': 'LCARS Clock' },
|
'': { 'title': 'LCARS Clock' },
|
||||||
'< Back': back,
|
'< Back': back,
|
||||||
'Row 1': {
|
'Row 1': {
|
||||||
value: 0 | data_options.indexOf(settings.dataRow1),
|
value: 0 | dataOptions.indexOf(settings.dataRow1),
|
||||||
min: 0, max: 8,
|
min: 0, max: 8,
|
||||||
format: v => data_options[v],
|
format: v => dataOptions[v],
|
||||||
onchange: v => {
|
onchange: v => {
|
||||||
settings.dataRow1 = data_options[v];
|
settings.dataRow1 = dataOptions[v];
|
||||||
save();
|
save();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'Row 2': {
|
'Row 2': {
|
||||||
value: 0 | data_options.indexOf(settings.dataRow2),
|
value: 0 | dataOptions.indexOf(settings.dataRow2),
|
||||||
min: 0, max: 8,
|
min: 0, max: 8,
|
||||||
format: v => data_options[v],
|
format: v => dataOptions[v],
|
||||||
onchange: v => {
|
onchange: v => {
|
||||||
settings.dataRow2 = data_options[v];
|
settings.dataRow2 = dataOptions[v];
|
||||||
save();
|
save();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'Row 3': {
|
'Row 3': {
|
||||||
value: 0 | data_options.indexOf(settings.dataRow3),
|
value: 0 | dataOptions.indexOf(settings.dataRow3),
|
||||||
min: 0, max: 8,
|
min: 0, max: 8,
|
||||||
format: v => data_options[v],
|
format: v => dataOptions[v],
|
||||||
onchange: v => {
|
onchange: v => {
|
||||||
settings.dataRow3 = data_options[v];
|
settings.dataRow3 = dataOptions[v];
|
||||||
|
save();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'Speed': {
|
||||||
|
value: 0 | speedOptions.indexOf(settings.speed),
|
||||||
|
min: 0, max: 1,
|
||||||
|
format: v => speedOptions[v],
|
||||||
|
onchange: v => {
|
||||||
|
settings.speed = speedOptions[v];
|
||||||
save();
|
save();
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue