X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosTelemetrySensor.java;fp=altoslib%2FAltosTelemetrySensor.java;h=dc8efa9b1d7c3a269b9b1c4371d870f1547e6e3b;hp=3c3e6a0104b6b24b5de437e0cc00f2b9a30c24e2;hb=c8dbcaf69cd538a31ab6e2b568237ae7c8656a9a;hpb=0cbfa444a9f9159cb509bb47ca5590fc1d709f64 diff --git a/altoslib/AltosTelemetrySensor.java b/altoslib/AltosTelemetrySensor.java index 3c3e6a01..dc8efa9b 100644 --- a/altoslib/AltosTelemetrySensor.java +++ b/altoslib/AltosTelemetrySensor.java @@ -16,66 +16,52 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_11; +package org.altusmetrum.altoslib_12; public class AltosTelemetrySensor extends AltosTelemetryStandard { - int state; - int accel; - int pres; - int temp; - int v_batt; - int sense_d; - int sense_m; + int state() { return uint8(5); } + int accel() { return int16(6); } + int pres() { return int16(8); } + int temp() { return int16(10); } + int v_batt() { return int16(12); } + int sense_d() { return int16(14); } + int sense_m() { return int16(16); } - int acceleration; - int speed; - int height; + int acceleration() { return int16(18); } + int speed() { return int16(20); } + int height_16() { return int16(22); } - int ground_accel; - int ground_pres; - int accel_plus_g; - int accel_minus_g; + int ground_accel() { return int16(24); } + int ground_pres() { return int16(26); } + int accel_plus_g() { return int16(28); } + int accel_minus_g() { return int16(30); } - public AltosTelemetrySensor(int[] bytes) { + public AltosTelemetrySensor(int[] bytes) throws AltosCRCException { super(bytes); - state = uint8(5); - - accel = int16(6); - pres = int16(8); - temp = int16(10); - v_batt = int16(12); - sense_d = int16(14); - sense_m = int16(16); + } - acceleration = int16(18); - speed = int16(20); - height = int16(22); + public void provide_data(AltosDataListener listener) { + super.provide_data(listener); - ground_pres = int16(24); - ground_accel = int16(26); - accel_plus_g = int16(28); - accel_minus_g = int16(30); - } + listener.set_state(state()); - public void update_state(AltosState state) { - super.update_state(state); + AltosCalData cal_data = listener.cal_data(); - state.set_state(this.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); + if (type() == packet_type_TM_sensor) { + 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)); - 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)); + 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) { + listener.set_apogee_voltage(AltosConvert.cc_igniter_to_voltage(sense_d())); + listener.set_main_voltage(AltosConvert.cc_igniter_to_voltage(sense_m())); } - state.set_kalman(height, speed/16.0, acceleration / 16.0); + listener.set_kalman(height_16(), speed()/16.0, acceleration()/16.0); } }