diff options
| author | Keith Packard <keithp@keithp.com> | 2011-07-06 21:38:57 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2011-07-06 21:38:57 -0700 | 
| commit | 8f80f5705d64469bcfb00ff11aee68364edb271b (patch) | |
| tree | 9db032cfcb647951259c9ff7f0deabea682271cf | |
| parent | 80ca066a825646f833ca609190c76c5252118d9a (diff) | |
altosui: Don't show missing igniter and gps values
The new telemetry stuff leaves state.gps always set (but empty), which
seems fine, we just need to look at state.gps.connected to see if
there's a GPS receiver on board.
For TeleNano, we also want to hide the igniter status fields as they
won't have any data present.
Signed-off-by: Keith Packard <keithp@keithp.com>
| -rw-r--r-- | altosui/AltosAscent.java | 41 | ||||
| -rw-r--r-- | altosui/AltosDescent.java | 17 | ||||
| -rw-r--r-- | altosui/AltosFlightUI.java | 4 | ||||
| -rw-r--r-- | altosui/AltosInfoTable.java | 8 | ||||
| -rw-r--r-- | altosui/AltosLanded.java | 6 | ||||
| -rw-r--r-- | altosui/AltosPad.java | 14 | 
6 files changed, 66 insertions, 24 deletions
| diff --git a/altosui/AltosAscent.java b/altosui/AltosAscent.java index 8a4aa58b..d607b0c5 100644 --- a/altosui/AltosAscent.java +++ b/altosui/AltosAscent.java @@ -36,6 +36,18 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay {  		JTextField	value;  		AltosLights	lights; +		void show() { +			value.setVisible(true); +			lights.setVisible(true); +			label.setVisible(true); +		} + +		void hide() { +			value.setVisible(false); +			lights.setVisible(false); +			label.setVisible(false); +		} +  		void show(AltosState state, int crc_errors) {}  		void reset() {  			value.setText(""); @@ -136,14 +148,19 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay {  		void reset() {  			value.setText("");  			max_value.setText(""); -			max = 0; +			max = AltosRecord.MISSING;  		}  		void show(String format, double v) { -			value.setText(String.format(format, v)); -			if (v > max) { -				max_value.setText(String.format(format, v)); -				max = v; +			if (v == AltosRecord.MISSING) { +				value.setText("Missing"); +				max_value.setText("Missing"); +			} else { +				value.setText(String.format(format, v)); +				if (v > max || max == AltosRecord.MISSING) { +					max_value.setText(String.format(format, v)); +					max = v; +				}  			}  		}  		public AscentValueHold (GridBagLayout layout, int y, String text) { @@ -233,6 +250,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay {  	class Apogee extends AscentStatus {  		void show (AltosState state, int crc_errors) { +			show();  			value.setText(String.format("%4.2f V", state.drogue_sense));  			lights.set(state.drogue_sense > 3.2);  		} @@ -245,6 +263,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay {  	class Main extends AscentStatus {  		void show (AltosState state, int crc_errors) { +			show();  			value.setText(String.format("%4.2f V", state.main_sense));  			lights.set(state.main_sense > 3.2);  		} @@ -296,7 +315,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay {  	}  	public void show(AltosState state, int crc_errors) { -		if (state.gps != null) { +		if (state.gps != null && state.gps.connected) {  			lat.show(state, crc_errors);  			lon.show(state, crc_errors);  		} else { @@ -304,8 +323,14 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay {  			lon.hide();  		}  		height.show(state, crc_errors); -		main.show(state, crc_errors); -		apogee.show(state, crc_errors); +		if (state.main_sense != AltosRecord.MISSING) +			main.show(state, crc_errors); +		else +			main.hide(); +		if (state.drogue_sense != AltosRecord.MISSING) +			apogee.show(state, crc_errors); +		else +			apogee.hide();  		speed.show(state, crc_errors);  		accel.show(state, crc_errors);  	} diff --git a/altosui/AltosDescent.java b/altosui/AltosDescent.java index addd6878..2a9e7eef 100644 --- a/altosui/AltosDescent.java +++ b/altosui/AltosDescent.java @@ -258,7 +258,7 @@ public class AltosDescent extends JComponent implements AltosFlightDisplay {  	class Lat extends DescentValue {  		void show (AltosState state, int crc_errors) { -			if (state.gps != null) +			if (state.gps != null && state.gps.connected)  				show(pos(state.gps.lat,"N", "S"));  			else  				show("???"); @@ -272,7 +272,7 @@ public class AltosDescent extends JComponent implements AltosFlightDisplay {  	class Lon extends DescentValue {  		void show (AltosState state, int crc_errors) { -			if (state.gps != null) +			if (state.gps != null && state.gps.connected)  				show(pos(state.gps.lon,"W", "E"));  			else  				show("???"); @@ -286,6 +286,7 @@ public class AltosDescent extends JComponent implements AltosFlightDisplay {  	class Apogee extends DescentStatus {  		void show (AltosState state, int crc_errors) { +			show();  			value.setText(String.format("%4.2f V", state.drogue_sense));  			lights.set(state.drogue_sense > 3.2);  		} @@ -363,7 +364,7 @@ public class AltosDescent extends JComponent implements AltosFlightDisplay {  	public void show(AltosState state, int crc_errors) {  		height.show(state, crc_errors);  		speed.show(state, crc_errors); -		if (state.gps != null) { +		if (state.gps != null && state.gps.connected) {  			bearing.show(state, crc_errors);  			range.show(state, crc_errors);  			elevation.show(state, crc_errors); @@ -376,8 +377,14 @@ public class AltosDescent extends JComponent implements AltosFlightDisplay {  			lat.hide();  			lon.hide();  		} -		main.show(state, crc_errors); -		apogee.show(state, crc_errors); +		if (state.main_sense != AltosRecord.MISSING) +			main.show(state, crc_errors); +		else +			main.hide(); +		if (state.drogue_sense != AltosRecord.MISSING) +			apogee.show(state, crc_errors); +		else +			apogee.hide();  	}  	public AltosDescent() { diff --git a/altosui/AltosFlightUI.java b/altosui/AltosFlightUI.java index 5f1fc678..9536c4bb 100644 --- a/altosui/AltosFlightUI.java +++ b/altosui/AltosFlightUI.java @@ -156,8 +156,8 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {  			// Telemetry format menu  			telemetries = new JComboBox(); -			telemetries.addItem("Legacy TeleMetrum"); -			telemetries.addItem("Split Telemetry"); +			telemetries.addItem("Original TeleMetrum Telemetry"); +			telemetries.addItem("Standard AltOS Telemetry");  			int telemetry = 1;  			telemetry = AltosPreferences.telemetry(serial);  			if (telemetry > Altos.ao_telemetry_split) diff --git a/altosui/AltosInfoTable.java b/altosui/AltosInfoTable.java index 723f8301..8ebeaba1 100644 --- a/altosui/AltosInfoTable.java +++ b/altosui/AltosInfoTable.java @@ -107,10 +107,12 @@ public class AltosInfoTable extends JTable {  		info_add_row(0, "Max Speed", "%8.1f  m/s", state.max_speed);  		info_add_row(0, "Temperature", "%9.2f °C", state.temperature);  		info_add_row(0, "Battery", "%9.2f V", state.battery); -		info_add_row(0, "Drogue", "%9.2f V", state.drogue_sense); -		info_add_row(0, "Main", "%9.2f V", state.main_sense); +		if (state.drogue_sense != AltosRecord.MISSING) +			info_add_row(0, "Drogue", "%9.2f V", state.drogue_sense); +		if (state.main_sense != AltosRecord.MISSING) +			info_add_row(0, "Main", "%9.2f V", state.main_sense);  		info_add_row(0, "Pad altitude", "%6.0f    m", state.ground_altitude); -		if (state.gps == null) { +		if (state.gps == null || !state.gps.connected) {  			info_add_row(1, "GPS", "not available");  		} else {  			if (state.gps_ready) diff --git a/altosui/AltosLanded.java b/altosui/AltosLanded.java index 63a2daf6..d5c8e434 100644 --- a/altosui/AltosLanded.java +++ b/altosui/AltosLanded.java @@ -99,7 +99,7 @@ public class AltosLanded extends JComponent implements AltosFlightDisplay {  	class Lat extends LandedValue {  		void show (AltosState state, int crc_errors) {  			show(); -			if (state.gps != null) +			if (state.gps != null && state.gps.connected)  				value.setText(pos(state.gps.lat,"N", "S"));  			else  				value.setText("???"); @@ -114,7 +114,7 @@ public class AltosLanded extends JComponent implements AltosFlightDisplay {  	class Lon extends LandedValue {  		void show (AltosState state, int crc_errors) {  			show(); -			if (state.gps != null) +			if (state.gps != null && state.gps.connected)  				value.setText(pos(state.gps.lon,"E", "W"));  			else  				value.setText("???"); @@ -200,7 +200,7 @@ public class AltosLanded extends JComponent implements AltosFlightDisplay {  	}  	public void show(AltosState state, int crc_errors) { -		if (state.gps != null) { +		if (state.gps != null && state.gps.connected) {  			bearing.show(state, crc_errors);  			distance.show(state, crc_errors);  			lat.show(state, crc_errors); diff --git a/altosui/AltosPad.java b/altosui/AltosPad.java index 2d800e8a..d08925be 100644 --- a/altosui/AltosPad.java +++ b/altosui/AltosPad.java @@ -149,6 +149,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {  	class Apogee extends LaunchStatus {  		void show (AltosState state, int crc_errors) { +			show();  			value.setText(String.format("%4.2f V", state.drogue_sense));  			lights.set(state.drogue_sense > 3.2);  		} @@ -161,6 +162,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {  	class Main extends LaunchStatus {  		void show (AltosState state, int crc_errors) { +			show();  			value.setText(String.format("%4.2f V", state.main_sense));  			lights.set(state.main_sense > 3.2);  		} @@ -259,10 +261,16 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {  	public void show(AltosState state, int crc_errors) {  		battery.show(state, crc_errors); -		apogee.show(state, crc_errors); -		main.show(state, crc_errors); +		if (state.drogue_sense == AltosRecord.MISSING) +			apogee.hide(); +		else +			apogee.show(state, crc_errors); +		if (state.main_sense == AltosRecord.MISSING) +			main.hide(); +		else +			main.show(state, crc_errors);  		pad_alt.show(state, crc_errors); -		if (state.gps != null) { +		if (state.gps != null && state.gps.connected) {  			gps_locked.show(state, crc_errors);  			gps_ready.show(state, crc_errors);  			pad_lat.show(state, crc_errors); | 
