diff options
| -rw-r--r-- | altosui/AltosUI.java | 6 | ||||
| -rw-r--r-- | altosui/Makefile.am | 2 | ||||
| -rw-r--r-- | altosuilib/AltosScanUI.java (renamed from altosui/AltosScanUI.java) | 96 | ||||
| -rw-r--r-- | altosuilib/AltosUIFrame.java | 3 | ||||
| -rw-r--r-- | altosuilib/Makefile.am | 1 | ||||
| -rw-r--r-- | telegps/TeleGPS.java | 27 | 
6 files changed, 84 insertions, 51 deletions
| diff --git a/altosui/AltosUI.java b/altosui/AltosUI.java index 9df02ec9..ad7964e9 100644 --- a/altosui/AltosUI.java +++ b/altosui/AltosUI.java @@ -74,6 +74,10 @@ public class AltosUI extends AltosUIFrame {  		}  	} +	public void scan_device_selected(AltosDevice device) { +		telemetry_window(device); +	} +  	Container	pane;  	GridBagLayout	gridbag; @@ -272,7 +276,7 @@ public class AltosUI extends AltosUIFrame {  	}  	void ScanChannels() { -		new AltosScanUI(AltosUI.this); +		new AltosScanUI(AltosUI.this, true);  	}  	void LoadMaps() { diff --git a/altosui/Makefile.am b/altosui/Makefile.am index 6f491d7d..cd6af84b 100644 --- a/altosui/Makefile.am +++ b/altosui/Makefile.am @@ -15,7 +15,6 @@ altosui_JAVA = \  	AltosChannelMenu.java \  	AltosCompanionInfo.java \  	AltosConfig.java \ -	AltosConfigFreqUI.java \  	AltosConfigUI.java \  	AltosConfigPyroUI.java \  	AltosConfigureUI.java \ @@ -46,7 +45,6 @@ altosui_JAVA = \  	AltosPad.java \  	AltosUIPreferencesBackend.java \  	AltosRomconfigUI.java \ -	AltosScanUI.java \  	AltosUI.java \  	AltosGraph.java \  	AltosGraphDataPoint.java \ diff --git a/altosui/AltosScanUI.java b/altosuilib/AltosScanUI.java index 1f1f59ad..b0cde059 100644 --- a/altosui/AltosScanUI.java +++ b/altosuilib/AltosScanUI.java @@ -15,7 +15,7 @@   * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.   */ -package altosui; +package org.altusmetrum.altosuilib_2;  import java.awt.*;  import java.awt.event.*; @@ -26,7 +26,6 @@ import java.util.*;  import java.text.*;  import java.util.concurrent.*;  import org.altusmetrum.altoslib_4.*; -import org.altusmetrum.altosuilib_2.*;  class AltosScanResult {  	String		callsign; @@ -39,7 +38,7 @@ class AltosScanResult {  	public String toString() {  		return String.format("%-9.9s serial %-4d flight %-4d (%s %s)", -				     callsign, serial, flight, frequency.toShortString(), Altos.telemetry_name(telemetry)); +				     callsign, serial, flight, frequency.toShortString(), AltosLib.telemetry_name(telemetry));  	}  	public String toShortString() { @@ -125,7 +124,7 @@ public class AltosScanUI  	extends AltosUIDialog  	implements ActionListener  { -	AltosUI				owner; +	AltosUIFrame			owner;  	AltosDevice			device;  	AltosConfigData			config_data;  	AltosTelemetryReader		reader; @@ -140,6 +139,7 @@ public class AltosScanUI  	AltosScanResults		results = new AltosScanResults();  	int				telemetry; +	boolean				select_telemetry = false;  	final static int		timeout = 1200;  	TelemetryHandler		handler; @@ -215,7 +215,8 @@ public class AltosScanUI  	void set_label() {  		frequency_label.setText(String.format("Frequency: %s", frequencies[frequency_index].toString())); -		telemetry_label.setText(String.format("Telemetry: %s", Altos.telemetry_name(telemetry))); +		if (select_telemetry) +			telemetry_label.setText(String.format("Telemetry: %s", AltosLib.telemetry_name(telemetry)));  	}  	void set_telemetry() { @@ -231,16 +232,21 @@ public class AltosScanUI  		reader.set_monitor(false);  		Thread.sleep(100);  		++frequency_index; -		if (frequency_index >= frequencies.length || -		    !telemetry_boxes[telemetry - Altos.ao_telemetry_min].isSelected()) -		{ -			frequency_index = 0; -			do { -				++telemetry; -				if (telemetry > Altos.ao_telemetry_max) -					telemetry = Altos.ao_telemetry_min; -			} while (!telemetry_boxes[telemetry - Altos.ao_telemetry_min].isSelected()); -			set_telemetry(); +		if (select_telemetry) { +			if (frequency_index >= frequencies.length || +			    !telemetry_boxes[telemetry - AltosLib.ao_telemetry_min].isSelected()) +			{ +				frequency_index = 0; +				do { +					++telemetry; +					if (telemetry > AltosLib.ao_telemetry_max) +						telemetry = AltosLib.ao_telemetry_min; +				} while (!telemetry_boxes[telemetry - AltosLib.ao_telemetry_min].isSelected()); +				set_telemetry(); +			} +		} else { +			if (frequency_index >= frequencies.length) +				frequency_index = 0;  		}  		set_frequency();  		set_label(); @@ -279,14 +285,14 @@ public class AltosScanUI  			if (cmd.equals("telemetry")) {  				int k;  				int scanning_telemetry = 0; -				for (k = Altos.ao_telemetry_min; k <= Altos.ao_telemetry_max; k++) { -					int j = k - Altos.ao_telemetry_min; +				for (k = AltosLib.ao_telemetry_min; k <= AltosLib.ao_telemetry_max; k++) { +					int j = k - AltosLib.ao_telemetry_min;  					if (telemetry_boxes[j].isSelected())  						scanning_telemetry |= (1 << k);  				}  				if (scanning_telemetry == 0) { -					scanning_telemetry |= (1 << Altos.ao_telemetry_standard); -					telemetry_boxes[Altos.ao_telemetry_standard - Altos.ao_telemetry_min].setSelected(true); +					scanning_telemetry |= (1 << AltosLib.ao_telemetry_standard); +					telemetry_boxes[AltosLib.ao_telemetry_standard - AltosLib.ao_telemetry_min].setSelected(true);  				}  				AltosUIPreferences.set_scanning_telemetry(scanning_telemetry);  			} @@ -300,7 +306,7 @@ public class AltosScanUI  							reader.set_telemetry(r.telemetry);  							reader.set_frequency(r.frequency.frequency);  							reader.save_frequency(); -							owner.telemetry_window(device); +							owner.scan_device_selected(device);  						}  					}  				} @@ -328,7 +334,7 @@ public class AltosScanUI  	}  	private boolean open() { -		device = AltosDeviceUIDialog.show(owner, Altos.product_basestation); +		device = AltosDeviceUIDialog.show(owner, AltosLib.product_basestation);  		if (device == null)  			return false;  		try { @@ -376,13 +382,15 @@ public class AltosScanUI  		return false;  	} -	public AltosScanUI(AltosUI in_owner) { +	public AltosScanUI(AltosUIFrame in_owner, boolean in_select_telemetry) {  		owner = in_owner; +		select_telemetry = in_select_telemetry;  		frequencies = AltosUIPreferences.common_frequencies();  		frequency_index = 0; -		telemetry = Altos.ao_telemetry_min; + +		telemetry = AltosLib.ao_telemetry_standard;  		if (!open())  			return; @@ -401,7 +409,13 @@ public class AltosScanUI  		scanning_label = new JLabel("Scanning:");  		frequency_label = new JLabel(""); -		telemetry_label = new JLabel(""); + +		if (select_telemetry) { +			telemetry_label = new JLabel(""); +			telemetry = AltosLib.ao_telemetry_min; +		} else { +			telemetry = AltosLib.ao_telemetry_standard; +		}  		set_label(); @@ -418,22 +432,26 @@ public class AltosScanUI  		pane.add(scanning_label, c);  		c.gridy = 1;  		pane.add(frequency_label, c); -		c.gridy = 2; -		pane.add(telemetry_label, c); - -		int	scanning_telemetry = AltosUIPreferences.scanning_telemetry(); -		telemetry_boxes = new JCheckBox[Altos.ao_telemetry_max - Altos.ao_telemetry_min + 1]; -		for (int k = Altos.ao_telemetry_min; k <= Altos.ao_telemetry_max; k++) { -			int j = k - Altos.ao_telemetry_min; -			telemetry_boxes[j] = new JCheckBox(AltosLib.telemetry_name(k)); -			c.gridy = 3 + j; -			pane.add(telemetry_boxes[j], c); -			telemetry_boxes[j].setActionCommand("telemetry"); -			telemetry_boxes[j].addActionListener(this); -			telemetry_boxes[j].setSelected((scanning_telemetry & (1 << k)) != 0); -		} -		int	y_offset = 3 + (Altos.ao_telemetry_max - Altos.ao_telemetry_min + 1); +		int	y_offset = 3; + +		if (select_telemetry) { +			c.gridy = 2; +			pane.add(telemetry_label, c); + +			int	scanning_telemetry = AltosUIPreferences.scanning_telemetry(); +			telemetry_boxes = new JCheckBox[AltosLib.ao_telemetry_max - AltosLib.ao_telemetry_min + 1]; +			for (int k = AltosLib.ao_telemetry_min; k <= AltosLib.ao_telemetry_max; k++) { +				int j = k - AltosLib.ao_telemetry_min; +				telemetry_boxes[j] = new JCheckBox(AltosLib.telemetry_name(k)); +				c.gridy = 3 + j; +				pane.add(telemetry_boxes[j], c); +				telemetry_boxes[j].setActionCommand("telemetry"); +				telemetry_boxes[j].addActionListener(this); +				telemetry_boxes[j].setSelected((scanning_telemetry & (1 << k)) != 0); +			} +			y_offset += (AltosLib.ao_telemetry_max - AltosLib.ao_telemetry_min + 1); +		}  		list = new JList<AltosScanResult>(results) {  				//Subclass JList to workaround bug 4832765, which can cause the diff --git a/altosuilib/AltosUIFrame.java b/altosuilib/AltosUIFrame.java index ce86ad83..6e62c762 100644 --- a/altosuilib/AltosUIFrame.java +++ b/altosuilib/AltosUIFrame.java @@ -73,6 +73,9 @@ public class AltosUIFrame extends JFrame implements AltosUIListener, AltosPositi  		super.setLocationByPlatform(lbp);  	} +	public void scan_device_selected(AltosDevice device) { +	} +  	public void setSize() {  		/* Smash sizes around so that the window comes up in the right shape */  		Insets i = getInsets(); diff --git a/altosuilib/Makefile.am b/altosuilib/Makefile.am index abf0d79c..b4c4f79f 100644 --- a/altosuilib/Makefile.am +++ b/altosuilib/Makefile.am @@ -45,6 +45,7 @@ altosuilib_JAVA = \  	AltosSerial.java \  	AltosSerialInUseException.java \  	AltosConfigFreqUI.java \ +	AltosScanUI.java \  	AltosBTDevice.java \  	AltosBTDeviceIterator.java \  	AltosBTManage.java \ diff --git a/telegps/TeleGPS.java b/telegps/TeleGPS.java index cceb79b9..34509e4e 100644 --- a/telegps/TeleGPS.java +++ b/telegps/TeleGPS.java @@ -158,11 +158,13 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo  		new AltosSiteMapPreload(this);  	} -	void monitor() { -		AltosDevice	device = AltosDeviceUIDialog.show(this, -								  AltosLib.product_basestation); -		if (device == null) -			return; +	void disconnect() { +		setTitle("TeleGPS"); +		stop_display(); +		remove_frequency_menu(); +	} + +	void connect(AltosDevice device) {  		if (reader != null)  			disconnect();  		try { @@ -198,13 +200,20 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo  		}  	} -	void disconnect() { -		setTitle("TeleGPS"); -		stop_display(); -		remove_frequency_menu(); +	void monitor() { +		AltosDevice	device = AltosDeviceUIDialog.show(this, +								  AltosLib.product_basestation); +		if (device == null) +			return; +		connect(device); +	} + +	public void scan_device_selected(AltosDevice device) { +		connect(device);  	}  	void scan() { +		new AltosScanUI(this, false);  	}  	void download(){ | 
