diff options
| author | Keith Packard <keithp@keithp.com> | 2017-05-25 17:24:14 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2017-05-25 17:24:14 -0700 | 
| commit | f26cfe417c6977cf1e7e75a4f050e25f64d41859 (patch) | |
| tree | 2f19ca9c93c3246b3eeadafee250f9dd3ee222d6 /altoslib/AltosTelemetrySensor.java | |
| parent | 7600116a191b3ac252a0f716d200d0e0b3500987 (diff) | |
altoslib: Do data analysis on raw values rather than AltosState
Use AltosFlightSeries instead of a sequence of AltosState records when
processing saved data. This provides a better way of doing filtering
and plotting.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosTelemetrySensor.java')
| -rw-r--r-- | altoslib/AltosTelemetrySensor.java | 28 | 
1 files changed, 15 insertions, 13 deletions
| diff --git a/altoslib/AltosTelemetrySensor.java b/altoslib/AltosTelemetrySensor.java index b669b9e6..37589397 100644 --- a/altoslib/AltosTelemetrySensor.java +++ b/altoslib/AltosTelemetrySensor.java @@ -41,24 +41,26 @@ public class AltosTelemetrySensor extends AltosTelemetryStandard {  		super(bytes);  	} -	public void update_state(AltosState state) { -		super.update_state(state); +	public void provide_data(AltosDataListener listener, AltosCalData cal_data) { +		super.provide_data(listener, cal_data); + +		listener.set_state(state()); +		cal_data.set_state(state()); -		state.set_state(state());  		if (type() == packet_type_TM_sensor) { -			state.set_ground_accel(ground_accel()); -			state.set_accel_g(accel_plus_g(), accel_minus_g()); -			state.set_accel(accel()); +			cal_data.set_ground_accel(ground_accel()); +			cal_data.set_accel_plus_minus(accel_plus_g(), accel_minus_g()); +			listener.set_acceleration(cal_data.acceleration(accel()));  		} -		state.set_ground_pressure(AltosConvert.barometer_to_pressure(ground_pres())); -		state.set_pressure(AltosConvert.barometer_to_pressure(pres())); -		state.set_temperature(AltosConvert.thermometer_to_temperature(temp())); -		state.set_battery_voltage(AltosConvert.cc_battery_to_voltage(v_batt())); +		cal_data.set_ground_pressure(AltosConvert.barometer_to_pressure(ground_pres())); +		listener.set_pressure(AltosConvert.barometer_to_pressure(pres())); +		listener.set_temperature(AltosConvert.thermometer_to_temperature(temp())); +		listener.set_battery_voltage(AltosConvert.cc_battery_to_voltage(v_batt()));  		if (type() == packet_type_TM_sensor || type() == packet_type_Tm_sensor) { -			state.set_apogee_voltage(AltosConvert.cc_ignitor_to_voltage(sense_d())); -			state.set_main_voltage(AltosConvert.cc_ignitor_to_voltage(sense_m())); +			listener.set_apogee_voltage(AltosConvert.cc_ignitor_to_voltage(sense_d())); +			listener.set_main_voltage(AltosConvert.cc_ignitor_to_voltage(sense_m()));  		} -		state.set_kalman(height_16(), speed()/16.0, acceleration()/16.0); +		listener.set_kalman(height_16(), speed()/16.0, acceleration()/16.0);  	}  } | 
