diff options
| author | Bdale Garbee <bdale@gag.com> | 2015-07-15 16:43:50 -0600 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2015-07-15 16:43:50 -0600 | 
| commit | 643c2fb03833d658320f476ef731bbb06fe3cc31 (patch) | |
| tree | 878c9df5dbd9bab9169becea4e06e8bae3529541 /altoslib/AltosState.java | |
| parent | e41786fb384892961a6547e17812a24314ce9623 (diff) | |
| parent | 271f56a41c7e785b0fab7e572325df842d104277 (diff) | |
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Diffstat (limited to 'altoslib/AltosState.java')
| -rw-r--r-- | altoslib/AltosState.java | 15 | 
1 files changed, 11 insertions, 4 deletions
| diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index d363027c..347c1198 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -19,7 +19,7 @@   * Track flight state from telemetry or eeprom data stream   */ -package org.altusmetrum.altoslib_6; +package org.altusmetrum.altoslib_7;  import java.io.*; @@ -31,8 +31,9 @@ public class AltosState implements Cloneable, Serializable {  	public int set; +	static final double filter_len = 2.0;  	static final double ascent_filter_len = 0.5; -	static final double descent_filter_len = 0.5; +	static final double descent_filter_len = 5.0;  	/* derived data */ @@ -64,8 +65,10 @@ public class AltosState implements Cloneable, Serializable {  		}  		void set_filtered(double new_value, double time) { -			if (prev_value != AltosLib.MISSING) -				new_value = (prev_value * 15.0 + new_value) / 16.0; +			if (prev_value != AltosLib.MISSING) { +				double f = 1/Math.exp((time - prev_set_time) / filter_len); +				new_value = f * new_value + (1-f) * prev_value; +			}  			set(new_value, time);  		} @@ -1040,6 +1043,10 @@ public class AltosState implements Cloneable, Serializable {  		return AltosLib.state_name(state);  	} +	public void set_product(String product) { +		this.product = product; +	} +  	public void set_state(int state) {  		if (state != AltosLib.ao_flight_invalid) {  			this.state = state; | 
