diff options
| -rw-r--r-- | altoslib/AltosIMUQuery.java | 46 | ||||
| -rw-r--r-- | altoslib/AltosIdleMonitor.java | 212 | ||||
| -rw-r--r-- | altoslib/AltosMs5607Query.java | 67 | ||||
| -rw-r--r-- | altoslib/AltosSensorMM.java | 103 | ||||
| -rw-r--r-- | altoslib/AltosSensorTM.java | 81 | 
5 files changed, 297 insertions, 212 deletions
| diff --git a/altoslib/AltosIMUQuery.java b/altoslib/AltosIMUQuery.java new file mode 100644 index 00000000..0965fa39 --- /dev/null +++ b/altoslib/AltosIMUQuery.java @@ -0,0 +1,46 @@ +/* + * Copyright © 2012 Keith Packard <keithp@keithp.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosLib; + +import java.util.concurrent.TimeoutException; + +class AltosIMUQuery extends AltosIMU { + +	public AltosIMUQuery (AltosLink link) throws InterruptedException, TimeoutException { +		link.printf("I\n"); +		for (;;) { +			String line = link.get_reply_no_dialog(5000); +			if (line == null) { +				throw new TimeoutException(); +			} +			if (!line.startsWith("Accel:")) +				continue; +			String[] items = line.split("\\s+"); +			if (items.length >= 8) { +				accel_x = Integer.parseInt(items[1]); +				accel_y = Integer.parseInt(items[2]); +				accel_z = Integer.parseInt(items[3]); +				gyro_x = Integer.parseInt(items[5]); +				gyro_y = Integer.parseInt(items[6]); +				gyro_z = Integer.parseInt(items[7]); +			} +			break; +		} +	} +} + diff --git a/altoslib/AltosIdleMonitor.java b/altoslib/AltosIdleMonitor.java index f38e3dac..ae3b7b06 100644 --- a/altoslib/AltosIdleMonitor.java +++ b/altoslib/AltosIdleMonitor.java @@ -20,218 +20,6 @@ package org.altusmetrum.AltosLib;  import java.io.*;  import java.util.concurrent.*; -class AltosSensorTM extends AltosRecordTM { - -	public AltosSensorTM(AltosLink link, AltosConfigData config_data) throws InterruptedException, TimeoutException { -		super(); -		link.printf("a\n"); -		for (;;) { -			String line = link.get_reply_no_dialog(5000); -			if (line == null) { -				throw new TimeoutException(); -			} -			if (!line.startsWith("tick:")) -				continue; -			String[] items = line.split("\\s+"); -			for (int i = 0; i < items.length;) { -				if (items[i].equals("tick:")) { -					tick = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("accel:")) { -					accel = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("pres:")) { -					pres = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("temp:")) { -					temp = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("batt:")) { -					batt = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("drogue:")) { -					drogue = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("main:")) { -					main = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				i++; -			} -			break; -		} -		ground_accel = config_data.accel_cal_plus; -		ground_pres = pres; -		accel_plus_g = config_data.accel_cal_plus; -		accel_minus_g = config_data.accel_cal_minus; -	} -} - -class AltosSensorMM { -	int		tick; -	int		sense[]; -	int		v_batt; -	int		v_pyro; -	int		accel; -	int		accel_ref; - -	public AltosSensorMM(AltosLink link) throws InterruptedException, TimeoutException { -		link.printf("a\n"); -		for (;;) { -			String line = link.get_reply_no_dialog(5000); -			if (line == null) { -				throw new TimeoutException(); -			} -			if (!line.startsWith("tick:")) -				continue; -			String[] items = line.split("\\s+"); -			sense = new int[6]; -			for (int i = 0; i < items.length;) { -				if (items[i].equals("tick:")) { -					tick = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("0:")) { -					sense[0] = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("1:")) { -					sense[1] = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("2:")) { -					sense[2] = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("3:")) { -					sense[3] = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("4:")) { -					sense[4] = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("5:")) { -					sense[5] = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("6:")) { -					v_batt = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("7:")) { -					v_pyro = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("8:")) { -					accel = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				if (items[i].equals("9:")) { -					accel_ref = Integer.parseInt(items[i+1]); -					i += 2; -					continue; -				} -				i++; -			} -			break; -		} -	} -} - -class AltosIMUQuery extends AltosIMU { - -	public AltosIMUQuery (AltosLink link) throws InterruptedException, TimeoutException { -		link.printf("I\n"); -		for (;;) { -			String line = link.get_reply_no_dialog(5000); -			if (line == null) { -				throw new TimeoutException(); -			} -			if (!line.startsWith("Accel:")) -				continue; -			String[] items = line.split("\\s+"); -			if (items.length >= 8) { -				accel_x = Integer.parseInt(items[1]); -				accel_y = Integer.parseInt(items[2]); -				accel_z = Integer.parseInt(items[3]); -				gyro_x = Integer.parseInt(items[5]); -				gyro_y = Integer.parseInt(items[6]); -				gyro_z = Integer.parseInt(items[7]); -			} -			break; -		} -	} -} - -class AltosMs5607Query extends AltosMs5607 { -	public AltosMs5607Query (AltosLink link) throws InterruptedException, TimeoutException { -		link.printf("v\nB\n"); -		for (;;) { -			String line = link.get_reply_no_dialog(5000); -			if (line == null) { -				throw new TimeoutException(); -			} -			String[] items = line.split("\\s+"); -			if (line.startsWith("Pressure:")) { -				if (items.length >= 2) -					raw_pres = Integer.parseInt(items[1]); -			} else if (line.startsWith("Temperature:")) { -				if (items.length >= 2) -					raw_temp = Integer.parseInt(items[1]); -			} else if (line.startsWith("ms5607 reserved:")) { -				if (items.length >= 3) -					reserved = Integer.parseInt(items[2]); -			} else if (line.startsWith("ms5607 sens:")) { -				if (items.length >= 3) -					sens = Integer.parseInt(items[2]); -			} else if (line.startsWith("ms5607 off:")) { -				if (items.length >= 3) -					off = Integer.parseInt(items[2]); -			} else if (line.startsWith("ms5607 tcs:")) { -				if (items.length >= 3) -					tcs = Integer.parseInt(items[2]); -			} else if (line.startsWith("ms5607 tco:")) { -				if (items.length >= 3) -					tco = Integer.parseInt(items[2]); -			} else if (line.startsWith("ms5607 tref:")) { -				if (items.length >= 3) -					tref = Integer.parseInt(items[2]); -			} else if (line.startsWith("ms5607 tempsens:")) { -				if (items.length >= 3) -					tempsens = Integer.parseInt(items[2]); -			} else if (line.startsWith("ms5607 crc:")) { -				if (items.length >= 3) -					crc = Integer.parseInt(items[2]); -			} else if (line.startsWith("Altitude")) -				break; -		} -		convert(); -	} -}  public class AltosIdleMonitor extends Thread {  	AltosLink		link; diff --git a/altoslib/AltosMs5607Query.java b/altoslib/AltosMs5607Query.java new file mode 100644 index 00000000..3c746795 --- /dev/null +++ b/altoslib/AltosMs5607Query.java @@ -0,0 +1,67 @@ +/* + * Copyright © 2012 Keith Packard <keithp@keithp.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosLib; + +import java.util.concurrent.TimeoutException; + +class AltosMs5607Query extends AltosMs5607 { +	public AltosMs5607Query (AltosLink link) throws InterruptedException, TimeoutException { +		link.printf("v\nB\n"); +		for (;;) { +			String line = link.get_reply_no_dialog(5000); +			if (line == null) { +				throw new TimeoutException(); +			} +			String[] items = line.split("\\s+"); +			if (line.startsWith("Pressure:")) { +				if (items.length >= 2) +					raw_pres = Integer.parseInt(items[1]); +			} else if (line.startsWith("Temperature:")) { +				if (items.length >= 2) +					raw_temp = Integer.parseInt(items[1]); +			} else if (line.startsWith("ms5607 reserved:")) { +				if (items.length >= 3) +					reserved = Integer.parseInt(items[2]); +			} else if (line.startsWith("ms5607 sens:")) { +				if (items.length >= 3) +					sens = Integer.parseInt(items[2]); +			} else if (line.startsWith("ms5607 off:")) { +				if (items.length >= 3) +					off = Integer.parseInt(items[2]); +			} else if (line.startsWith("ms5607 tcs:")) { +				if (items.length >= 3) +					tcs = Integer.parseInt(items[2]); +			} else if (line.startsWith("ms5607 tco:")) { +				if (items.length >= 3) +					tco = Integer.parseInt(items[2]); +			} else if (line.startsWith("ms5607 tref:")) { +				if (items.length >= 3) +					tref = Integer.parseInt(items[2]); +			} else if (line.startsWith("ms5607 tempsens:")) { +				if (items.length >= 3) +					tempsens = Integer.parseInt(items[2]); +			} else if (line.startsWith("ms5607 crc:")) { +				if (items.length >= 3) +					crc = Integer.parseInt(items[2]); +			} else if (line.startsWith("Altitude")) +				break; +		} +		convert(); +	} +} + diff --git a/altoslib/AltosSensorMM.java b/altoslib/AltosSensorMM.java new file mode 100644 index 00000000..b6f21ef0 --- /dev/null +++ b/altoslib/AltosSensorMM.java @@ -0,0 +1,103 @@ +/* + * Copyright © 2012 Keith Packard <keithp@keithp.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosLib; + +import java.util.concurrent.TimeoutException; + +class AltosSensorMM { +	int		tick; +	int		sense[]; +	int		v_batt; +	int		v_pyro; +	int		accel; +	int		accel_ref; + +	public AltosSensorMM(AltosLink link) throws InterruptedException, TimeoutException { +		link.printf("a\n"); +		for (;;) { +			String line = link.get_reply_no_dialog(5000); +			if (line == null) { +				throw new TimeoutException(); +			} +			if (!line.startsWith("tick:")) +				continue; +			String[] items = line.split("\\s+"); +			sense = new int[6]; +			for (int i = 0; i < items.length;) { +				if (items[i].equals("tick:")) { +					tick = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("0:")) { +					sense[0] = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("1:")) { +					sense[1] = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("2:")) { +					sense[2] = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("3:")) { +					sense[3] = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("4:")) { +					sense[4] = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("5:")) { +					sense[5] = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("6:")) { +					v_batt = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("7:")) { +					v_pyro = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("8:")) { +					accel = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("9:")) { +					accel_ref = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				i++; +			} +			break; +		} +	} +} + diff --git a/altoslib/AltosSensorTM.java b/altoslib/AltosSensorTM.java new file mode 100644 index 00000000..75158cbf --- /dev/null +++ b/altoslib/AltosSensorTM.java @@ -0,0 +1,81 @@ +/* + * Copyright © 2012 Keith Packard <keithp@keithp.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.AltosLib; + +import java.util.concurrent.TimeoutException; + +class AltosSensorTM extends AltosRecordTM { + +	public AltosSensorTM(AltosLink link, AltosConfigData config_data) throws InterruptedException, TimeoutException { +		super(); +		link.printf("a\n"); +		for (;;) { +			String line = link.get_reply_no_dialog(5000); +			if (line == null) { +				throw new TimeoutException(); +			} +			if (!line.startsWith("tick:")) +				continue; +			String[] items = line.split("\\s+"); +			for (int i = 0; i < items.length;) { +				if (items[i].equals("tick:")) { +					tick = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("accel:")) { +					accel = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("pres:")) { +					pres = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("temp:")) { +					temp = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("batt:")) { +					batt = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("drogue:")) { +					drogue = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				if (items[i].equals("main:")) { +					main = Integer.parseInt(items[i+1]); +					i += 2; +					continue; +				} +				i++; +			} +			break; +		} +		ground_accel = config_data.accel_cal_plus; +		ground_pres = pres; +		accel_plus_g = config_data.accel_cal_plus; +		accel_minus_g = config_data.accel_cal_minus; +	} +} + | 
