case AltosLib.AO_LOG_FORMAT_TELEMEGA:
case AltosLib.AO_LOG_FORMAT_TELEMEGA_3:
case AltosLib.AO_LOG_FORMAT_EASYMEGA_2:
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA_4:
return data32(16);
case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD:
return data16(14);
case AltosLib.AO_LOG_FORMAT_TELEMEGA:
case AltosLib.AO_LOG_FORMAT_TELEMEGA_3:
case AltosLib.AO_LOG_FORMAT_EASYMEGA_2:
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA_4:
return data32(20);
case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD:
return data16(16);
case AltosLib.AO_LOG_FORMAT_TELEMEGA:
case AltosLib.AO_LOG_FORMAT_TELEMEGA_3:
case AltosLib.AO_LOG_FORMAT_EASYMEGA_2:
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA_4:
return data32(24);
case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD:
return data16(18);
private int mag_z() { return data16(22); }
private int mag_y() { return data16(24); }
+ private int imu_type() {
+ switch (log_format) {
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA:
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD:
+ return AltosIMU.imu_type_telemega_v1_v2;
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA_3:
+ return AltosIMU.imu_type_telemega_v3;
+ case AltosLib.AO_LOG_FORMAT_EASYMEGA_2:
+ return AltosIMU.imu_type_easymega_v2;
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA_4:
+ return AltosIMU.imu_type_telemega_v4;
+ default:
+ return AltosLib.MISSING;
+ }
+ }
+
private int accel_across() {
switch (log_format) {
case AltosLib.AO_LOG_FORMAT_TELEMEGA:
case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD:
return accel_x();
case AltosLib.AO_LOG_FORMAT_EASYMEGA_2:
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA_4:
return -accel_y();
default:
return AltosLib.MISSING;
case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD:
return accel_y();
case AltosLib.AO_LOG_FORMAT_EASYMEGA_2:
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA_4:
return accel_x();
default:
return AltosLib.MISSING;
return gyro_x();
case AltosLib.AO_LOG_FORMAT_EASYMEGA_2:
return -gyro_y();
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA_4:
+ return -gyro_y();
default:
return AltosLib.MISSING;
}
case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD:
return gyro_y();
case AltosLib.AO_LOG_FORMAT_EASYMEGA_2:
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA_4:
return gyro_x();
default:
return AltosLib.MISSING;
return mag_x();
case AltosLib.AO_LOG_FORMAT_EASYMEGA_2:
return -mag_y();
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA_4:
+ return mag_y();
default:
return AltosLib.MISSING;
}
case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD:
return mag_y();
case AltosLib.AO_LOG_FORMAT_EASYMEGA_2:
+ case AltosLib.AO_LOG_FORMAT_TELEMEGA_4:
return mag_x();
default:
return AltosLib.MISSING;
AltosGPS gps;
+ cal_data.set_imu_type(imu_type());
+
switch (cmd()) {
case AltosLib.AO_LOG_FLIGHT:
cal_data.set_flight(flight());