diff options
| author | Keith Packard <keithp@keithp.com> | 2015-03-02 21:06:02 -0800 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2015-03-02 21:06:02 -0800 | 
| commit | e637367e8b940e1642a07b3b7c99147561de9cf1 (patch) | |
| tree | 46ae4d20be34efc84d267d0e139a744a7b0e9035 | |
| parent | 2614d20b324ab215ef22f178e3635d48e757fa9b (diff) | |
altosui/telegps: Add config option for APRS format
Allow configuration of APRS compressed/uncompressed
Signed-off-by: Keith Packard <keithp@keithp.com>
| -rw-r--r-- | altoslib/AltosConfigData.java | 8 | ||||
| -rw-r--r-- | altoslib/AltosConfigValues.java | 4 | ||||
| -rw-r--r-- | altoslib/AltosLib.java | 7 | ||||
| -rw-r--r-- | altosui/AltosConfigUI.java | 62 | ||||
| -rw-r--r-- | telegps/TeleGPSConfigUI.java | 60 | 
5 files changed, 130 insertions, 11 deletions
diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index d8f4d945..0ffdcf60 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -75,6 +75,7 @@ public class AltosConfigData implements Iterable<String> {  	/* HAS_APRS */  	public int		aprs_interval;  	public int		aprs_ssid; +	public int		aprs_format;  	/* HAS_BEEP */  	public int		beep; @@ -270,6 +271,7 @@ public class AltosConfigData implements Iterable<String> {  		aprs_interval = -1;  		aprs_ssid = -1; +		aprs_format = -1;  		beep = -1; @@ -370,6 +372,7 @@ public class AltosConfigData implements Iterable<String> {  		/* HAS_APRS */  		try { aprs_interval = get_int(line, "APRS interval:"); } catch (Exception e) {}  		try { aprs_ssid = get_int(line, "APRS SSID:"); } catch (Exception e) {} +		try { aprs_format = get_int(line, "APRS format:"); } catch (Exception e) {}  		/* HAS_BEEP */  		try { beep = get_int(line, "Beeper setting:"); } catch (Exception e) {} @@ -518,6 +521,8 @@ public class AltosConfigData implements Iterable<String> {  			aprs_interval = source.aprs_interval();  		if (aprs_ssid >= 0)  			aprs_ssid = source.aprs_ssid(); +		if (aprs_format >= 0) +			aprs_format = source.aprs_format();  		/* HAS_BEEP */  		if (beep >= 0) @@ -572,6 +577,7 @@ public class AltosConfigData implements Iterable<String> {  		dest.set_pyro_firing_time(pyro_firing_time);  		dest.set_aprs_interval(aprs_interval);  		dest.set_aprs_ssid(aprs_ssid); +		dest.set_aprs_format(aprs_format);  		dest.set_beep(beep);  		dest.set_tracker_motion(tracker_motion);  		dest.set_tracker_interval(tracker_interval); @@ -674,6 +680,8 @@ public class AltosConfigData implements Iterable<String> {  			link.printf("c A %d\n", aprs_interval);  		if (aprs_ssid >= 0)  			link.printf("c S %d\n", aprs_ssid); +		if (aprs_format >= 0) +			link.printf("c C %d\n", aprs_format);  		/* HAS_BEEP */  		if (beep >= 0) diff --git a/altoslib/AltosConfigValues.java b/altoslib/AltosConfigValues.java index cfe9fc8b..3f26a078 100644 --- a/altoslib/AltosConfigValues.java +++ b/altoslib/AltosConfigValues.java @@ -91,6 +91,10 @@ public interface AltosConfigValues {  	public abstract void set_aprs_ssid(int new_aprs_ssid); +	public abstract int aprs_format() throws AltosConfigDataException; + +	public abstract void set_aprs_format(int new_aprs_format); +  	public abstract int beep() throws AltosConfigDataException;  	public abstract void set_beep(int new_beep); diff --git a/altoslib/AltosLib.java b/altoslib/AltosLib.java index b19f9f52..405a3acc 100644 --- a/altoslib/AltosLib.java +++ b/altoslib/AltosLib.java @@ -190,6 +190,13 @@ public class AltosLib {  		38400, 9600, 2400  	}; +	public static final int ao_aprs_format_compressed = 0; +	public static final int ao_aprs_format_uncompressed = 1; + +	public static final String[] ao_aprs_format_name = { +		"Compressed", "Uncompressed" +	}; +  	public static final String launch_sites_url = "http://www.altusmetrum.org/AltOS/launch-sites.txt";  //	public static final String launch_sites_url = "file:///home/keithp/misc/text/altusmetrum/AltOS/launch-sites.txt"; diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java index 54f06065..b072ede7 100644 --- a/altosui/AltosConfigUI.java +++ b/altosui/AltosConfigUI.java @@ -43,6 +43,7 @@ public class AltosConfigUI  	JLabel			rate_label;  	JLabel			aprs_interval_label;  	JLabel			aprs_ssid_label; +	JLabel			aprs_format_label;  	JLabel			flight_log_max_label;  	JLabel			ignite_mode_label;  	JLabel			pad_orientation_label; @@ -66,6 +67,7 @@ public class AltosConfigUI  	AltosUIRateList		rate_value;  	JComboBox<String>	aprs_interval_value;  	JComboBox<Integer>	aprs_ssid_value; +	JComboBox<String>	aprs_format_value;  	JComboBox<String>	flight_log_max_value;  	JComboBox<String>	ignite_mode_value;  	JComboBox<String>	pad_orientation_value; @@ -218,11 +220,20 @@ public class AltosConfigUI  	void set_aprs_ssid_tool_tip() {  		if (aprs_ssid_value.isEnabled()) -			aprs_interval_value.setToolTipText("Set the APRS SSID (secondary station identifier)"); -		else if (aprs_interval_value.isEnabled()) -			aprs_interval_value.setToolTipText("Software version doesn't support setting the APRS SSID"); +			aprs_ssid_value.setToolTipText("Set the APRS SSID (secondary station identifier)"); +		else if (aprs_ssid_value.isEnabled()) +			aprs_ssid_value.setToolTipText("Software version doesn't support setting the APRS SSID");  		else -			aprs_interval_value.setToolTipText("Hardware doesn't support APRS"); +			aprs_ssid_value.setToolTipText("Hardware doesn't support APRS"); +	} + +	void set_aprs_format_tool_tip() { +		if (aprs_format_value.isEnabled()) +			aprs_format_value.setToolTipText("Set the APRS format (compressed/uncompressed)"); +		else if (aprs_format_value.isEnabled()) +			aprs_format_value.setToolTipText("Software version doesn't support setting the APRS format"); +		else +			aprs_format_value.setToolTipText("Hardware doesn't support APRS");  	}  	void set_flight_log_max_tool_tip() { @@ -577,6 +588,33 @@ public class AltosConfigUI  		set_aprs_ssid_tool_tip();  		row++; +		/* APRS format */ +		c = new GridBagConstraints(); +		c.gridx = 0; c.gridy = row; +		c.gridwidth = 4; +		c.fill = GridBagConstraints.NONE; +		c.anchor = GridBagConstraints.LINE_START; +		c.insets = il; +		c.ipady = 5; +		aprs_format_label = new JLabel("APRS format:"); +		pane.add(aprs_format_label, c); + +		c = new GridBagConstraints(); +		c.gridx = 4; c.gridy = row; +		c.gridwidth = 4; +		c.fill = GridBagConstraints.HORIZONTAL; +		c.weightx = 1; +		c.anchor = GridBagConstraints.LINE_START; +		c.insets = ir; +		c.ipady = 5; +		aprs_format_value = new JComboBox<String>(AltosLib.ao_aprs_format_name); +		aprs_format_value.setEditable(false); +		aprs_format_value.addItemListener(this); +		aprs_format_value.setMaximumRowCount(AltosLib.ao_aprs_format_name.length); +		pane.add(aprs_format_value, c); +		set_aprs_format_tool_tip(); +		row++; +  		/* Callsign */  		c = new GridBagConstraints();  		c.gridx = 0; c.gridy = row; @@ -943,7 +981,7 @@ public class AltosConfigUI  	}  	String get_main_deploy_label() { -		return String.format("Main Deploy Altitude(%s):", AltosConvert.height.show_units()); +		return String.format("Main Deploy Altitude(%s):", AltosConvert.height.show_units_name(AltosLib.MISSING));  	}  	String[] main_deploy_values() { @@ -1207,7 +1245,7 @@ public class AltosConfigUI  	}  	String get_tracker_motion_label() { -		return String.format("Logging Trigger Motion (%s):", AltosConvert.height.show_units()); +		return String.format("Logging Trigger Motion (%s):", AltosConvert.height.show_units_name(AltosLib.MISSING));  	}  	void set_tracker_tool_tip() { @@ -1313,4 +1351,16 @@ public class AltosConfigUI  		Integer i = (Integer) aprs_ssid_value.getSelectedItem();  		return i;  	} + +	public void set_aprs_format(int new_aprs_format) { +		aprs_format_value.setVisible(new_aprs_format >= 0); +		aprs_format_label.setVisible(new_aprs_format >= 0); + +		aprs_format_value.setSelectedIndex(Math.max(0,new_aprs_format)); +		set_aprs_format_tool_tip(); +	} + +	public int aprs_format() throws AltosConfigDataException { +		return aprs_format_value.getSelectedIndex(); +	}  } diff --git a/telegps/TeleGPSConfigUI.java b/telegps/TeleGPSConfigUI.java index 5e700b72..0189a809 100644 --- a/telegps/TeleGPSConfigUI.java +++ b/telegps/TeleGPSConfigUI.java @@ -40,6 +40,7 @@ public class TeleGPSConfigUI  	JLabel			rate_label;  	JLabel			aprs_interval_label;  	JLabel			aprs_ssid_label; +	JLabel			aprs_format_label;  	JLabel			flight_log_max_label;  	JLabel			callsign_label;  	JLabel			tracker_motion_label; @@ -57,6 +58,7 @@ public class TeleGPSConfigUI  	AltosUIRateList		rate_value;  	JComboBox<String>	aprs_interval_value;  	JComboBox<Integer>	aprs_ssid_value; +	JComboBox<String>	aprs_format_value;  	JComboBox<String>	flight_log_max_value;  	JTextField		callsign_value;  	JComboBox<String>	tracker_motion_value; @@ -165,11 +167,20 @@ public class TeleGPSConfigUI  	void set_aprs_ssid_tool_tip() {  		if (aprs_ssid_value.isEnabled()) -			aprs_interval_value.setToolTipText("Set the APRS SSID (secondary station identifier)"); -		else if (aprs_interval_value.isEnabled()) -			aprs_interval_value.setToolTipText("Software version doesn't support setting the APRS SSID"); +			aprs_ssid_value.setToolTipText("Set the APRS SSID (secondary station identifier)"); +		else if (aprs_ssid_value.isEnabled()) +			aprs_ssid_value.setToolTipText("Software version doesn't support setting the APRS SSID");  		else -			aprs_interval_value.setToolTipText("Hardware doesn't support APRS"); +			aprs_ssid_value.setToolTipText("Hardware doesn't support APRS"); +	} + +	void set_aprs_format_tool_tip() { +		if (aprs_format_value.isEnabled()) +			aprs_format_value.setToolTipText("Set the APRS format (compressed/uncompressed)"); +		else if (aprs_format_value.isEnabled()) +			aprs_format_value.setToolTipText("Software version doesn't support setting the APRS format"); +		else +			aprs_format_value.setToolTipText("Hardware doesn't support APRS");  	}  	void set_flight_log_max_tool_tip() { @@ -413,6 +424,33 @@ public class TeleGPSConfigUI  		set_aprs_ssid_tool_tip();  		row++; +		/* APRS format */ +		c = new GridBagConstraints(); +		c.gridx = 0; c.gridy = row; +		c.gridwidth = 4; +		c.fill = GridBagConstraints.NONE; +		c.anchor = GridBagConstraints.LINE_START; +		c.insets = il; +		c.ipady = 5; +		aprs_format_label = new JLabel("APRS format:"); +		pane.add(aprs_format_label, c); + +		c = new GridBagConstraints(); +		c.gridx = 4; c.gridy = row; +		c.gridwidth = 4; +		c.fill = GridBagConstraints.HORIZONTAL; +		c.weightx = 1; +		c.anchor = GridBagConstraints.LINE_START; +		c.insets = ir; +		c.ipady = 5; +		aprs_format_value = new JComboBox<String>(AltosLib.ao_aprs_format_name); +		aprs_format_value.setEditable(false); +		aprs_format_value.addItemListener(this); +		aprs_format_value.setMaximumRowCount(AltosLib.ao_aprs_format_name.length); +		pane.add(aprs_format_value, c); +		set_aprs_format_tool_tip(); +		row++; +  		/* Callsign */  		c = new GridBagConstraints();  		c.gridx = 0; c.gridy = row; @@ -824,7 +862,7 @@ public class TeleGPSConfigUI  	}  	String get_tracker_motion_label() { -		return String.format("Logging Trigger Motion (%s):", AltosConvert.height.show_units()); +		return String.format("Logging Trigger Motion (%s):", AltosConvert.height.show_units_name(AltosLib.MISSING));  	}  	void set_tracker_tool_tip() { @@ -894,4 +932,16 @@ public class TeleGPSConfigUI  		Integer i = (Integer) aprs_ssid_value.getSelectedItem();  		return i;  	} + +	public void set_aprs_format(int new_aprs_format) { +		aprs_format_value.setVisible(new_aprs_format >= 0); +		aprs_format_label.setVisible(new_aprs_format >= 0); + +		aprs_format_value.setSelectedIndex(Math.max(0,new_aprs_format)); +		set_aprs_format_tool_tip(); +	} + +	public int aprs_format() throws AltosConfigDataException { +		return aprs_format_value.getSelectedIndex(); +	}  }  | 
