diff options
Diffstat (limited to 'altoslib')
| -rw-r--r-- | altoslib/AltosEeprom.java | 4 | ||||
| -rw-r--r-- | altoslib/AltosEepromGPS.java | 11 | ||||
| -rw-r--r-- | altoslib/AltosEepromIterable.java | 9 | 
3 files changed, 23 insertions, 1 deletions
| diff --git a/altoslib/AltosEeprom.java b/altoslib/AltosEeprom.java index be18ba24..020590eb 100644 --- a/altoslib/AltosEeprom.java +++ b/altoslib/AltosEeprom.java @@ -43,6 +43,10 @@ public abstract class AltosEeprom implements AltosStateUpdate {  		return data8[i] | (data8[i+1] << 8) | (data8[i+2] << 16) | (data8[i+3] << 24);  	} +	public boolean has_seconds() { return false; } + +	public int seconds() { return 0; } +  	public final static int header_length = 4;  	public abstract int record_length(); diff --git a/altoslib/AltosEepromGPS.java b/altoslib/AltosEepromGPS.java index 1820cd61..3c1852c0 100644 --- a/altoslib/AltosEepromGPS.java +++ b/altoslib/AltosEepromGPS.java @@ -53,6 +53,17 @@ public class AltosEepromGPS extends AltosEeprom {  	public int vdop() { return data8(24); }  	public int mode() { return data8(25); } +	public boolean has_seconds() { return cmd == AltosLib.AO_LOG_GPS_TIME; } + +	public int seconds() { +		switch (cmd) { +		case AltosLib.AO_LOG_GPS_TIME: +			return second() + 60 * (minute() + 60 * (hour() + 24 * (day() + 31 * month()))); +		default: +			return 0; +		} +	} +  	public AltosEepromGPS (AltosEepromChunk chunk, int start) throws ParseException {  		parse_chunk(chunk, start);  	} diff --git a/altoslib/AltosEepromIterable.java b/altoslib/AltosEepromIterable.java index 415c5b62..d6832c1b 100644 --- a/altoslib/AltosEepromIterable.java +++ b/altoslib/AltosEepromIterable.java @@ -38,6 +38,13 @@ class AltosEepromOrdered implements Comparable<AltosEepromOrdered> {  		if (cmd_diff != 0)  			return cmd_diff; +		if (eeprom.has_seconds() && o.eeprom.has_seconds()) { +			int	seconds_diff = eeprom.seconds() - o.eeprom.seconds(); + +			if (seconds_diff != 0) +				return seconds_diff; +		} +  		int	tick_diff = tick - o.tick;  		if (tick_diff != 0) @@ -116,4 +123,4 @@ public class AltosEepromIterable implements Iterable<AltosEeprom> {  			eeproms = new LinkedList<AltosEeprom>();  		return new AltosEepromOrderedIterator(eeproms);  	} -}
\ No newline at end of file +} | 
