The speed of the wind can now be configured (mph / kph).

pull/1424/head
David Peer 2022-02-11 12:25:22 +01:00
parent 1e837248ac
commit 52faa8c871
2 changed files with 41 additions and 26 deletions

View File

@ -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
} }

View File

@ -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();
}, },
} }