diff options
| author | Bdale Garbee <bdale@gag.com> | 2012-09-16 14:01:51 -0600 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2012-09-16 14:01:51 -0600 | 
| commit | 7cd8bf294ce0c9913977e54ea48c0928df7ddfcd (patch) | |
| tree | 353c68aae24f1227ee1f4a7888a57e58c0966e1f /altoslib/AltosIdleMonitor.java | |
| parent | 3ef0774b91c99998e62d4ca666dc5b1f7b03e4ff (diff) | |
| parent | 7a0cce7fa0c802b1597fef94cfaf00aa0c28c988 (diff) | |
Merge branch 'branch-1.1' into debian
Diffstat (limited to 'altoslib/AltosIdleMonitor.java')
| -rw-r--r-- | altoslib/AltosIdleMonitor.java | 68 | 
1 files changed, 43 insertions, 25 deletions
diff --git a/altoslib/AltosIdleMonitor.java b/altoslib/AltosIdleMonitor.java index ae3b7b06..2c4965ff 100644 --- a/altoslib/AltosIdleMonitor.java +++ b/altoslib/AltosIdleMonitor.java @@ -45,6 +45,42 @@ public class AltosIdleMonitor extends Thread {  		return rssi;  	} +	boolean has_sensor_tm(AltosConfigData config_data) { +		return config_data.product.startsWith("TeleMetrum") || config_data.product.startsWith("TeleMini"); +	} + +	boolean has_sensor_mm(AltosConfigData config_data) { +		return config_data.product.startsWith("MegaMetrum"); +	} + +	boolean has_gps(AltosConfigData config_data) { +		return config_data.product.startsWith("TeleMetrum") || config_data.product.startsWith("MegaMetrum"); +	} + +	AltosRecord sensor_mm(AltosConfigData config_data) throws InterruptedException, TimeoutException { +		AltosRecordMM record_mm = new AltosRecordMM(); +		AltosSensorMM sensor = new AltosSensorMM(link); +		AltosMs5607 ms5607 = new AltosMs5607Query(link); +		AltosIMU imu = new AltosIMUQuery(link); + +		record_mm.accel_plus_g = config_data.accel_cal_plus; +		record_mm.accel_minus_g = config_data.accel_cal_minus; + +		record_mm.ground_accel = sensor.accel; +		record_mm.accel = sensor.accel; +		record_mm.ground_pres = ms5607.pa; +		record_mm.pres = ms5607.pa; +		record_mm.temp = ms5607.cc; + +		record_mm.v_batt = sensor.v_batt; +		record_mm.v_pyro = sensor.v_pyro; +		record_mm.sense = sensor.sense; + +		record_mm.imu = imu; + +		return record_mm; +	} +  	void update_state() throws InterruptedException, TimeoutException {  		AltosRecord	record = null; @@ -55,34 +91,16 @@ public class AltosIdleMonitor extends Thread {  			} else  				link.flush_input();  			config_data = new AltosConfigData(link); -			if (config_data.product.startsWith("TeleMetrum")) { -				record = new AltosSensorTM(link, config_data); -			} else if (config_data.product.startsWith("MegaMetrum")) { -				AltosRecordMM record_mm = new AltosRecordMM(); -				AltosSensorMM sensor = new AltosSensorMM(link); -				AltosMs5607 ms5607 = new AltosMs5607Query(link); -				AltosIMU imu = new AltosIMUQuery(link); - -				record_mm.accel_plus_g = config_data.accel_cal_plus; -				record_mm.accel_minus_g = config_data.accel_cal_minus; -				record_mm.ground_accel = sensor.accel; -				record_mm.accel = sensor.accel; -				record_mm.ground_pres = ms5607.pa; -				record_mm.pres = ms5607.pa; -				record_mm.temp = ms5607.cc; - -				record_mm.v_batt = sensor.v_batt; -				record_mm.v_pyro = sensor.v_pyro; -				record_mm.sense = sensor.sense; - -				record_mm.imu = imu; - -				record = record_mm; -			} else +			if (has_sensor_tm(config_data)) +				record = new AltosSensorTM(link, config_data); +			else if (has_sensor_mm(config_data)) +				record = sensor_mm(config_data); +			else  				record = new AltosRecord(); -			gps = new AltosGPSQuery(link, config_data); +			if (has_gps(config_data)) +				gps = new AltosGPSQuery(link, config_data);  			record.version = 0;  			record.callsign = config_data.callsign;  | 
