diff options
Diffstat (limited to 'altosui/AltosEepromLog.java')
| -rw-r--r-- | altosui/AltosEepromLog.java | 98 | 
1 files changed, 98 insertions, 0 deletions
diff --git a/altosui/AltosEepromLog.java b/altosui/AltosEepromLog.java new file mode 100644 index 00000000..36289b42 --- /dev/null +++ b/altosui/AltosEepromLog.java @@ -0,0 +1,98 @@ +/* + * Copyright © 2011 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 altosui; + +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.filechooser.FileNameExtensionFilter; +import javax.swing.table.*; +import java.io.*; +import java.util.*; +import java.text.*; +import java.util.prefs.*; +import java.util.concurrent.*; + +import libaltosJNI.*; + +public class AltosEepromLog { +	int		serial; +	boolean		has_flight; +	int		flight; +	int		start_block; +	int		end_block; + +	boolean		has_gps; +	int		year, month, day; +	int		hour, minute, second; +	double		lat, lon; + +	public AltosEepromLog(AltosSerial serial_line, int in_serial, +			      int in_start_block, int in_end_block) +		throws InterruptedException, TimeoutException { + +		int		block; +		boolean		has_date = false, has_time = false, has_lat = false, has_lon = false; + +		start_block = in_start_block; +		end_block = in_end_block; +		serial = in_serial; + +		if (in_end_block > in_start_block + 2) +			in_end_block = in_start_block + 2; + +		for (block = in_start_block; block < in_end_block; block++) { +			AltosEepromBlock eeblock = new AltosEepromBlock(serial_line, block); +			if (eeblock.has_flight) { +				flight = eeblock.flight; +				has_flight = true; +			} +			if (eeblock.has_date) { +				year = eeblock.year; +				month = eeblock.month; +				day = eeblock.day; +				has_date = true; +			} +			if (eeblock.has_time) { +				hour = eeblock.hour; +				minute = eeblock.minute; +				second = eeblock.second; +				has_time = true; +			} +			if (eeblock.has_lat) { +				lat = eeblock.lat; +				has_lat = true; +			} +			if (eeblock.has_lon) { +				lon = eeblock.lon; +				has_lon = true; +			} +			if (has_date && has_time && has_lat && has_lon) +				has_gps = true; +			if (has_gps && has_flight) +				break; +		} +		System.out.printf("Serial %d start block %d end block %d\n", +				  serial, start_block, end_block); +		if (has_flight) +			System.out.printf("Flight %d\n", flight); +		if (has_gps) +			System.out.printf("%d-%d-%d %d:%02d:%02d Lat %f Lon %f\n", +					  year, month, day, hour, minute, second, lat, lon); +	} +}  | 
