projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altoslib: Limit simultanous map tile downloads to 128
[fw/altos]
/
altoslib
/
AltosState.java
diff --git
a/altoslib/AltosState.java
b/altoslib/AltosState.java
index 5be008b7ed524e694886fb3487fe20f5113786e6..347c119883842db8ccd3e5cc13218728873c27db 100644
(file)
--- a/
altoslib/AltosState.java
+++ b/
altoslib/AltosState.java
@@
-19,7
+19,7
@@
* Track flight state from telemetry or eeprom data stream
*/
* Track flight state from telemetry or eeprom data stream
*/
-package org.altusmetrum.altoslib_
5
;
+package org.altusmetrum.altoslib_
7
;
import java.io.*;
import java.io.*;
@@
-31,8
+31,9
@@
public class AltosState implements Cloneable, Serializable {
public int set;
public int set;
+ static final double filter_len = 2.0;
static final double ascent_filter_len = 0.5;
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 */
/* derived data */
@@
-64,8
+65,10
@@
public class AltosState implements Cloneable, Serializable {
}
void set_filtered(double new_value, double time) {
}
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);
}
set(new_value, time);
}
@@
-1040,6
+1043,10
@@
public class AltosState implements Cloneable, Serializable {
return AltosLib.state_name(state);
}
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;
public void set_state(int state) {
if (state != AltosLib.ao_flight_invalid) {
this.state = state;