* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_11;
+package org.altusmetrum.altoslib_12;
import java.util.*;
import java.text.*;
/* HAS_GYRO */
try {
- if (line.startsWith("IMU call along")) {
+ if (line.startsWith("IMU cal along")) {
String[] bits = line.split("\\s+");
if (bits.length >= 8) {
accel_zero_along = Integer.parseInt(bits[3]);
radio_frequency = (int) Math.floor (freq * 1000 + 0.5);
radio_channel = AltosLib.MISSING;
} else if (setting != AltosLib.MISSING) {
- radio_setting =AltosConvert.radio_frequency_to_setting(freq,
- radio_calibration);
+ radio_setting =AltosConvert.radio_frequency_to_setting(freq, radio_calibration);
radio_channel = AltosLib.MISSING;
} else {
radio_channel = AltosConvert.radio_frequency_to_channel(freq);
int channel = radio_channel;
int setting = radio_setting;
- if (radio_frequency < 0 && channel < 0 && setting < 0)
+ if (radio_frequency == AltosLib.MISSING && channel == AltosLib.MISSING && setting == AltosLib.MISSING)
return AltosLib.MISSING;
- if (channel < 0)
+ if (channel == AltosLib.MISSING)
channel = 0;
- if (setting < 0)
+ if (setting == AltosLib.MISSING)
setting = 0;
return AltosConvert.radio_to_frequency(radio_frequency,
public boolean mma655x_inverted() throws AltosUnknownProduct {
- if (product.startsWith("EasyMega-v1"))
- return false;
- if (product.startsWith("TeleMetrum-v2"))
- return true;
- if (product.startsWith("TeleMega-v2"))
- return false;
- if (product.startsWith("TeleMega-v1"))
- return false;
+ if (product != null) {
+ if (product.startsWith("EasyMega-v1"))
+ return false;
+ if (product.startsWith("TeleMetrum-v2"))
+ return true;
+ if (product.startsWith("TeleMega-v2"))
+ return false;
+ if (product.startsWith("TeleMega-v1"))
+ return false;
+ }
throw new AltosUnknownProduct(product);
}
if (pad_orientation != AltosLib.MISSING)
pad_orientation = source.pad_orientation();
+ if (accel_cal_plus != AltosLib.MISSING)
+ accel_cal_plus = source.accel_cal_plus();
+
+ if (accel_cal_minus != AltosLib.MISSING)
+ accel_cal_minus = source.accel_cal_minus();
+
/* HAS_LOG */
if (flight_log_max != AltosLib.MISSING)
flight_log_max = source.flight_log_max();
dest.set_flight_log_max(flight_log_max);
dest.set_ignite_mode(ignite_mode);
dest.set_pad_orientation(pad_orientation);
+ dest.set_accel_cal(accel_cal_plus, accel_cal_minus);
dest.set_callsign(callsign);
if (npyro != AltosLib.MISSING)
dest.set_pyros(pyros);
link.printf("c e %d\n", radio_enable);
/* HAS_ACCEL */
- /* UI doesn't support accel cal */
if (pad_orientation != AltosLib.MISSING)
link.printf("c o %d\n", pad_orientation);
+ if (accel_cal_plus != AltosLib.MISSING && accel_cal_minus != AltosLib.MISSING)
+ link.printf("c a %d %d\n", accel_cal_plus, accel_cal_minus);
/* HAS_LOG */
if (flight_log_max != 0)