diff options
| author | Bdale Garbee <bdale@gag.com> | 2017-12-11 21:37:48 -0700 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2017-12-11 21:37:48 -0700 | 
| commit | ea0aa97fb93e669868a6f2c49c5d4b46e7615b1f (patch) | |
| tree | f16b9a9ccd8b4a7bcde7d5cc64e6f0a52c4f3436 /altoslib/AltosIdleMonitor.java | |
| parent | 216ea6388a75c46891dc4687a2eb0c97dc63b136 (diff) | |
| parent | 9adf8b23aac8256f230b10adcab9dd323266caaa (diff) | |
Merge branch 'master' into branch-1.8
Diffstat (limited to 'altoslib/AltosIdleMonitor.java')
| -rw-r--r-- | altoslib/AltosIdleMonitor.java | 17 | 
1 files changed, 9 insertions, 8 deletions
diff --git a/altoslib/AltosIdleMonitor.java b/altoslib/AltosIdleMonitor.java index fc5d4cc8..834d9aa5 100644 --- a/altoslib/AltosIdleMonitor.java +++ b/altoslib/AltosIdleMonitor.java @@ -33,6 +33,7 @@ public class AltosIdleMonitor extends Thread {  	double			frequency;  	String			callsign; +	AltosState		state;  	AltosListenerState	listener_state;  	AltosConfigData		config_data;  	AltosGPS		gps; @@ -52,20 +53,23 @@ public class AltosIdleMonitor extends Thread {  		return link.reply_abort;  	} -	boolean provide_data(AltosDataListener listener) throws InterruptedException, TimeoutException, AltosUnknownProduct { +	boolean provide_data() throws InterruptedException, TimeoutException, AltosUnknownProduct {  		boolean		worked = false;  		boolean		aborted = false;  		try {  			start_link(); -			fetch.provide_data(listener); +			link.config_data(); +			if (state == null) +				state = new AltosState(new AltosCalData(link.config_data())); +			fetch.provide_data(state);  			if (!link.has_error && !link.reply_abort)  				worked = true;  		} finally {  			aborted = stop_link();  			if (worked) {  				if (remote) -					listener.set_rssi(link.rssi(), 0); +					state.set_rssi(link.rssi(), 0);  				listener_state.battery = link.monitor_battery();  			}  		} @@ -92,14 +96,11 @@ public class AltosIdleMonitor extends Thread {  	}  	public void run() { -		AltosState state = null; +		state = null;  		try {  			for (;;) {  				try { -					link.config_data(); -					if (state == null) -						state = new AltosState(new AltosCalData(link.config_data())); -					provide_data(state); +					provide_data();  					listener.update(state, listener_state);  				} catch (TimeoutException te) {  				} catch (AltosUnknownProduct ae) {  | 
