public int device_type = AltosLib.MISSING;
public void set_device_type(int device_type) {
- if (device_type != AltosLib.MISSING)
+ if (device_type != AltosLib.MISSING) {
this.device_type = device_type;
+ if (product == null)
+ set_product(AltosLib.product_name(device_type));
+ }
}
public int config_major = AltosLib.MISSING;
public void set_accel_plus_minus(double plus, double minus) {
if (plus != AltosLib.MISSING && minus != AltosLib.MISSING) {
+ if (plus == minus)
+ return;
accel_plus_g = plus;
accel_minus_g = minus;
}
tick += 65536;
}
}
+ prev_tick = tick;
this.tick = tick;
}
}
+ /* Reset all values which change during flight
+ */
+ public void reset() {
+ state = AltosLib.MISSING;
+ tick = AltosLib.MISSING;
+ prev_tick = AltosLib.MISSING;
+ temp_gps = null;
+ prev_gps = null;
+ temp_gps_sat_tick = AltosLib.MISSING;
+ accel = AltosLib.MISSING;
+ }
+
public int boost_tick = AltosLib.MISSING;
public void set_boost_tick() {
boost_tick = tick;
}
+ public double ticks_per_sec = 100.0;
+
+ public void set_ticks_per_sec(double ticks_per_sec) {
+ this.ticks_per_sec = ticks_per_sec;
+ }
+
public double time() {
if (tick == AltosLib.MISSING)
return AltosLib.MISSING;
if (boost_tick == AltosLib.MISSING)
return AltosLib.MISSING;
- return (tick - boost_tick) / 100.0;
+ return (tick - boost_tick) / ticks_per_sec;
}
public double boost_time() {
if (boost_tick == AltosLib.MISSING)
return AltosLib.MISSING;
- return boost_tick / 100.0;
+ return boost_tick / ticks_per_sec;
}
public int state = AltosLib.MISSING;
public AltosCalData(AltosConfigData config_data) {
set_serial(config_data.serial);
+ set_ticks_per_sec(100.0);
set_flight(config_data.flight);
set_callsign(config_data.callsign);
+ set_config(config_data.config_major, config_data.config_minor, config_data.flight_log_max);
+ set_firmware_version(config_data.version);
+ set_flight_params(config_data.apogee_delay / ticks_per_sec, config_data.apogee_lockout / ticks_per_sec);
+ set_pad_orientation(config_data.pad_orientation);
+ set_product(config_data.product);
set_accel_plus_minus(config_data.accel_cal_plus, config_data.accel_cal_minus);
+ set_accel_zero(config_data.accel_zero_along, config_data.accel_zero_across, config_data.accel_zero_through);
set_ms5607(config_data.ms5607);
try {
set_mma655x_inverted(config_data.mma655x_inverted());