From: Keith Packard Date: Thu, 25 Nov 2010 02:57:35 +0000 (-0800) Subject: Merge remote branch 'aj/buttonbox' into buttonbox X-Git-Tag: debian/0.7.1+168+gcb08bc2~15^2~3 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=db2b19b8f0d452d682d53c7ed0ff6e359b46efa0;hp=b372f3c0ee4ec49aabe61c169cb1eb9bb4fb2cfc;p=fw%2Faltos Merge remote branch 'aj/buttonbox' 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..f7c8627c 100644 --- a/doc/telemetrum-doc.xsl +++ b/doc/telemetrum-doc.xsl @@ -1044,6 +1044,27 @@ during the flight are displayed for your admiring observers. +
+ Site Map + + When the rocket gets a GPS fix, the Site Map tab will map + the rocket's position to make it easier for you to locate the + rocket, both while it is in the air, and when it has landed. The + rocket's state is indicated by colour: white for pad, red for + boost, pink for fast, yellow for coast, light blue for drogue, + dark blue for main, and black for landed. + + + The map's scale is approximately 3m (10ft) per pixel. The map + can be dragged using the left mouse button. The map will attempt + to keep the rocket roughly centred while data is being received. + + + Images are fetched automatically via the Google Maps Static API, + and are cached for reuse. If map images cannot be downloaded, + the rocket's path will be traced on a dark grey background + instead. +
Save Flight Data @@ -1087,7 +1108,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.