From: Anthony Towns Date: Wed, 24 Nov 2010 23:10:50 +0000 (+1000) Subject: Merge branch 'buttonbox' of git://git.gag.com/fw/altos into buttonbox X-Git-Tag: debian/0.7.1+168+gcb08bc2~15^2~3^2~1 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=f01096c4b42f9a4720ed0414826c2a283a992545;hp=3fbefb3eea981d34a09496cf8abf0119de2e35bf Merge branch 'buttonbox' of git://git.gag.com/fw/altos into buttonbox --- diff --git a/altosui/AltosFlightUI.java b/altosui/AltosFlightUI.java index 24d25bd7..7fcfb8be 100644 --- a/altosui/AltosFlightUI.java +++ b/altosui/AltosFlightUI.java @@ -47,23 +47,17 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay { private AltosFlightStatus flightStatus; private AltosInfoTable flightInfo; - static final int tab_pad = 1; - static final int tab_ascent = 2; - static final int tab_descent = 3; - static final int tab_landed = 4; - - int cur_tab = 0; - boolean exit_on_close = false; - int which_tab(AltosState state) { + JComponent cur_tab = null; + JComponent which_tab(AltosState state) { if (state.state < Altos.ao_flight_boost) - return tab_pad; + return pad; if (state.state <= Altos.ao_flight_coast) - return tab_ascent; + return ascent; if (state.state <= Altos.ao_flight_main) - return tab_descent; - return tab_landed; + return descent; + return landed; } void stop_display() { @@ -90,24 +84,14 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay { } public void show(AltosState state, int crc_errors) { - int tab = which_tab(state); + JComponent tab = which_tab(state); pad.show(state, crc_errors); ascent.show(state, crc_errors); descent.show(state, crc_errors); landed.show(state, crc_errors); if (tab != cur_tab) { - switch (tab) { - case tab_pad: - pane.setSelectedComponent(pad); - break; - case tab_ascent: - pane.setSelectedComponent(ascent); - break; - case tab_descent: - pane.setSelectedComponent(descent); - break; - case tab_landed: - pane.setSelectedComponent(landed); + if (cur_tab == pane.getSelectedComponent()) { + pane.setSelectedComponent(tab); } cur_tab = tab; } diff --git a/altosui/AltosSiteMap.java b/altosui/AltosSiteMap.java index 80970605..d4a4cbf4 100644 --- a/altosui/AltosSiteMap.java +++ b/altosui/AltosSiteMap.java @@ -230,16 +230,19 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay { // if insufficient gps data, nothing to update if (state.gps == null) return; - if (state.pad_lat == 0 && state.pad_lon == 0) + if (!state.gps.locked && state.gps.nsat < 4) return; - if (!state.gps.locked) { - if (state.gps.nsat < 4) - return; - } if (!initialised) { - initMaps(state.pad_lat, state.pad_lon); - initialised = true; + if (state.pad_lat != 0 || state.pad_lon != 0) { + initMaps(state.pad_lat, state.pad_lon); + initialised = true; + } else if (state.gps.lat != 0 || state.gps.lon != 0) { + initMaps(state.gps.lat, state.gps.lon); + initialised = true; + } else { + return; + } } final Point2D.Double pt = pt(state.gps.lat, state.gps.lon); diff --git a/doc/telemetrum-doc.xsl b/doc/telemetrum-doc.xsl index 5c3e4c38..8f554d88 100644 --- a/doc/telemetrum-doc.xsl +++ b/doc/telemetrum-doc.xsl @@ -1087,7 +1087,30 @@
Graph Data - This section should be written by AJ. + Select this button and you are prompted to select a flight + record file, either a .telem file recording telemetry data or a + .eeprom file containing flight data saved from the TeleMetrum + flash memory. + + + Once a flight record is selected, the acceleration (blue), + velocity (green) and altitude (red) of the flight are plotted and + displayed, measured in metric units. + + + The graph can be zoomed into a particular area by clicking and + dragging down and to the right. Once zoomed, the graph can be + reset by clicking and dragging up and to the left. Holding down + control and clicking and dragging allows the graph to be panned. + The right mouse button causes a popup menu to be displayed, giving + you the option save or print the plot. + + + Note that telemetry files will generally produce poor graphs + due to the lower sampling rate and missed telemetry packets, + and will also often have significant amounts of data received + while the rocket was waiting on the pad. Use saved flight data + for graphing where possible.