diff options
| author | Bdale Garbee <bdale@gag.com> | 2014-09-09 23:28:39 -0600 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2014-09-09 23:28:39 -0600 | 
| commit | 16405fd3eb6f82ef3a709e3ed30fc48faef7b547 (patch) | |
| tree | c111819b3ba0c9357af41c81b798326b9df7adad /altoslib/AltosTelemetry.java | |
| parent | 5a2f6ed6210844f7284fbf9f7ecba68c8a14fa52 (diff) | |
| parent | 28bd5057252e61bc5b1a35a00bc1f9fdfde097f7 (diff) | |
Merge branch 'branch-1.5' into debian
Conflicts:
	ChangeLog
	Releasing
	altosui/Instdrv/NSIS/Includes/java.nsh
	altosui/altos-windows.nsi.in
	configure.ac
	doc/Makefile
	doc/altusmetrum.xsl
	micropeak/micropeak-windows.nsi.in
	telegps/telegps-windows.nsi.in
Diffstat (limited to 'altoslib/AltosTelemetry.java')
| -rw-r--r-- | altoslib/AltosTelemetry.java | 25 | 
1 files changed, 24 insertions, 1 deletions
| diff --git a/altoslib/AltosTelemetry.java b/altoslib/AltosTelemetry.java index 8182ec6b..a123d752 100644 --- a/altoslib/AltosTelemetry.java +++ b/altoslib/AltosTelemetry.java @@ -15,7 +15,7 @@   * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.   */ -package org.altusmetrum.altoslib_4; +package org.altusmetrum.altoslib_5;  import java.text.*; @@ -114,6 +114,29 @@ public abstract class AltosTelemetry implements AltosStateUpdate {  		return telem;  	} +	public static int extend_height(AltosState state, int height_16) { +		double	compare_height; +		int	height = height_16; + +		if (state.gps != null && state.gps.alt != AltosLib.MISSING) { +			compare_height = state.gps_height(); +		} else { +			compare_height = state.height(); +		} + +		if (compare_height != AltosLib.MISSING) { +			int	high_bits = (int) Math.floor (compare_height / 65536.0); + +			height = (high_bits << 16) | (height_16 & 0xffff); + +			if (Math.abs(height + 65536 - compare_height) < Math.abs(height - compare_height)) +				height += 65536; +			else if (Math.abs(height - 65536 - compare_height) < Math.abs(height - compare_height)) +				height -= 65536; +		} +		return height; +	} +  	public static AltosTelemetry parse(String line) throws ParseException, AltosCRCException {  		String[] word = line.split("\\s+");  		int i =0; | 
