btadv: incomplete menu tweaks
parent
fab41e0bb5
commit
1fbba23b1a
|
|
@ -84,14 +84,10 @@ let bar: undefined | PressureData;
|
||||||
let gps: undefined | GPSFix;
|
let gps: undefined | GPSFix;
|
||||||
let hrm: undefined | Hrm;
|
let hrm: undefined | Hrm;
|
||||||
let mag: undefined | CompassData;
|
let mag: undefined | CompassData;
|
||||||
let haveNewAcc = false;
|
|
||||||
let haveNewBar = false;
|
|
||||||
let haveNewGps = false;
|
|
||||||
let haveNewHrm = false;
|
|
||||||
let haveNewMag = false;
|
|
||||||
|
|
||||||
type BtAdvMenu = "acc" | "bar" | "gps" | "hrm" | "mag" | "main";
|
type BtAdvMenu = "acc" | "bar" | "gps" | "hrm" | "mag" | "main";
|
||||||
let curMenu: BtAdvMenu = "main";
|
let curMenuName: BtAdvMenu = "main";
|
||||||
|
let curMenu: MenuInstance;
|
||||||
let mainMenuScroll = 0;
|
let mainMenuScroll = 0;
|
||||||
const settings = {
|
const settings = {
|
||||||
barEnabled: false,
|
barEnabled: false,
|
||||||
|
|
@ -105,9 +101,11 @@ const showMainMenu = () => {
|
||||||
const mainMenu: Menu = {};
|
const mainMenu: Menu = {};
|
||||||
|
|
||||||
const showMenu = (menu: Menu, scroll: number, cur: BtAdvMenu) => () => {
|
const showMenu = (menu: Menu, scroll: number, cur: BtAdvMenu) => () => {
|
||||||
E.showMenu(menu);
|
mainMenuScroll = scroll; // int
|
||||||
mainMenuScroll = scroll;
|
|
||||||
curMenu = cur;
|
curMenu = E.showMenu(menu);
|
||||||
|
|
||||||
|
curMenuName = cur;
|
||||||
};
|
};
|
||||||
|
|
||||||
mainMenu[""] = {
|
mainMenu[""] = {
|
||||||
|
|
@ -122,8 +120,8 @@ const showMainMenu = () => {
|
||||||
mainMenu["Magnetometer" + onOff(settings.magEnabled)] = showMenu(magMenu, 4, "mag");
|
mainMenu["Magnetometer" + onOff(settings.magEnabled)] = showMenu(magMenu, 4, "mag");
|
||||||
mainMenu["Exit"] = () => (load as any)(); // avoid `this` + typehack
|
mainMenu["Exit"] = () => (load as any)(); // avoid `this` + typehack
|
||||||
|
|
||||||
E.showMenu(mainMenu);
|
curMenu = E.showMenu(mainMenu);
|
||||||
curMenu = "main";
|
curMenuName = "main";
|
||||||
};
|
};
|
||||||
|
|
||||||
const optionsCommon = {
|
const optionsCommon = {
|
||||||
|
|
@ -184,17 +182,27 @@ const magMenu = {
|
||||||
"Heading": { value: "" },
|
"Heading": { value: "" },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const redrawMenu = (newMenu: Menu) => {
|
||||||
|
const scroll = (curMenu as any).scroller.scroll;
|
||||||
|
|
||||||
|
curMenu = E.showMenu(newMenu);
|
||||||
|
|
||||||
|
// FIXME: doesn't work for promenu
|
||||||
|
(curMenu as any).scroller.scroll = scroll; // typehack
|
||||||
|
curMenu.draw();
|
||||||
|
};
|
||||||
|
|
||||||
const updateMenu = () => {
|
const updateMenu = () => {
|
||||||
switch (curMenu) {
|
switch (curMenuName) {
|
||||||
case "acc":
|
case "acc":
|
||||||
if (acc) {
|
if (acc) {
|
||||||
accMenu.x.value = acc.x.toFixed(2);
|
accMenu.x.value = acc.x.toFixed(2);
|
||||||
accMenu.y.value = acc.y.toFixed(2);
|
accMenu.y.value = acc.y.toFixed(2);
|
||||||
accMenu.z.value = acc.z.toFixed(2);
|
accMenu.z.value = acc.z.toFixed(2);
|
||||||
E.showMenu(accMenu);
|
redrawMenu(accMenu);
|
||||||
} else if (accMenu.x.value !== "...") {
|
} else if (accMenu.x.value !== "...") {
|
||||||
accMenu.x.value = accMenu.y.value = accMenu.z.value = "...";
|
accMenu.x.value = accMenu.y.value = accMenu.z.value = "...";
|
||||||
E.showMenu(accMenu);
|
redrawMenu(accMenu);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -203,10 +211,10 @@ const updateMenu = () => {
|
||||||
barMenu.Altitude.value = bar.altitude.toFixed(1) + 'm';
|
barMenu.Altitude.value = bar.altitude.toFixed(1) + 'm';
|
||||||
barMenu.Press.value = bar.pressure.toFixed(1) + 'mbar';
|
barMenu.Press.value = bar.pressure.toFixed(1) + 'mbar';
|
||||||
barMenu.Temp.value = bar.temperature.toFixed(1) + 'C';
|
barMenu.Temp.value = bar.temperature.toFixed(1) + 'C';
|
||||||
E.showMenu(barMenu);
|
redrawMenu(barMenu);
|
||||||
} else if (barMenu.Altitude.value !== "...") {
|
} else if (barMenu.Altitude.value !== "...") {
|
||||||
barMenu.Altitude.value = barMenu.Press.value = barMenu.Temp.value = "...";
|
barMenu.Altitude.value = barMenu.Press.value = barMenu.Temp.value = "...";
|
||||||
E.showMenu(accMenu);
|
redrawMenu(accMenu);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -217,11 +225,11 @@ const updateMenu = () => {
|
||||||
gpsMenu.Altitude.value = gps.alt + 'm';
|
gpsMenu.Altitude.value = gps.alt + 'm';
|
||||||
gpsMenu.Satellites.value = "" + gps.satellites;
|
gpsMenu.Satellites.value = "" + gps.satellites;
|
||||||
gpsMenu.HDOP.value = (gps.hdop * 5).toFixed(1) + 'm';
|
gpsMenu.HDOP.value = (gps.hdop * 5).toFixed(1) + 'm';
|
||||||
E.showMenu(gpsMenu);
|
redrawMenu(gpsMenu);
|
||||||
} else if (gpsMenu.Lat.value !== "...") {
|
} else if (gpsMenu.Lat.value !== "...") {
|
||||||
gpsMenu.Lat.value = gpsMenu.Lon.value = gpsMenu.Altitude.value =
|
gpsMenu.Lat.value = gpsMenu.Lon.value = gpsMenu.Altitude.value =
|
||||||
gpsMenu.Satellites.value = gpsMenu.HDOP.value = "...";
|
gpsMenu.Satellites.value = gpsMenu.HDOP.value = "...";
|
||||||
E.showMenu(gpsMenu);
|
redrawMenu(gpsMenu);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -229,10 +237,10 @@ const updateMenu = () => {
|
||||||
if (hrm) {
|
if (hrm) {
|
||||||
hrmMenu.BPM.value = "" + hrm.bpm;
|
hrmMenu.BPM.value = "" + hrm.bpm;
|
||||||
hrmMenu.Confidence.value = hrm.confidence + '%';
|
hrmMenu.Confidence.value = hrm.confidence + '%';
|
||||||
E.showMenu(hrmMenu);
|
redrawMenu(hrmMenu);
|
||||||
} else if (hrmMenu.BPM.value !== "...") {
|
} else if (hrmMenu.BPM.value !== "...") {
|
||||||
hrmMenu.BPM.value = hrmMenu.Confidence.value = "...";
|
hrmMenu.BPM.value = hrmMenu.Confidence.value = "...";
|
||||||
E.showMenu(hrmMenu);
|
redrawMenu(hrmMenu);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -242,10 +250,10 @@ const updateMenu = () => {
|
||||||
magMenu.y.value = "" + mag.y;
|
magMenu.y.value = "" + mag.y;
|
||||||
magMenu.z.value = "" + mag.z;
|
magMenu.z.value = "" + mag.z;
|
||||||
magMenu.Heading.value = mag.heading.toFixed(1);
|
magMenu.Heading.value = mag.heading.toFixed(1);
|
||||||
E.showMenu(magMenu);
|
redrawMenu(magMenu);
|
||||||
} else if (magMenu.x.value !== "...") {
|
} else if (magMenu.x.value !== "...") {
|
||||||
magMenu.x.value = magMenu.y.value = magMenu.z.value = magMenu.Heading.value = "...";
|
magMenu.x.value = magMenu.y.value = magMenu.z.value = magMenu.Heading.value = "...";
|
||||||
E.showMenu(magMenu);
|
redrawMenu(magMenu);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue