diff options
Diffstat (limited to 'altoslib/AltosState.java')
| -rw-r--r-- | altoslib/AltosState.java | 24 | 
1 files changed, 24 insertions, 0 deletions
| diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index 9e8e22ac..1162e522 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -389,6 +389,10 @@ public class AltosState implements Cloneable {  	private AltosGpsAltitude	gps_altitude; +	private AltosValue		gps_ground_speed; +	private AltosValue		gps_ascent_rate; +	private AltosValue		gps_course; +  	public double altitude() {  		double a = altitude.value();  		if (a != AltosLib.MISSING) @@ -419,6 +423,18 @@ public class AltosState implements Cloneable {  		gps_altitude.set(new_gps_altitude, time);  	} +	public double gps_ground_speed() { +		return gps_ground_speed.value(); +	} + +	public double gps_ascent_rate() { +		return gps_ascent_rate.value(); +	} + +	public double gps_course() { +		return gps_course.value(); +	} +  	class AltosPressure extends AltosValue {  		void set(double p, double time) {  			super.set(p, time); @@ -695,6 +711,8 @@ public class AltosState implements Cloneable {  		gps_altitude = new AltosGpsAltitude();  		gps_ground_altitude = new AltosGpsGroundAltitude(); +		gps_ground_speed = new AltosValue(); +		gps_ascent_rate = new AltosValue();  		speak_tick = AltosLib.MISSING;  		speak_altitude = AltosLib.MISSING; @@ -877,6 +895,12 @@ public class AltosState implements Cloneable {  				gps_ground_altitude.set(gps.alt, time);  			}  			gps_altitude.set(gps.alt, time); +			if (gps.climb_rate != AltosLib.MISSING) +				gps_ascent_rate.set(gps.climb_rate, time); +			if (gps.ground_speed != AltosLib.MISSING) +				gps_ground_speed.set(gps.ground_speed, time); +			if (gps.course != AltosLib.MISSING) +				gps_course.set(gps.course, time);  		}  		if (gps.lat != 0 && gps.lon != 0 &&  		    pad_lat != AltosLib.MISSING && | 
