+ private int accel_along(int imu_type) {
+ if (accel_along != AltosLib.MISSING)
+ return accel_along;
+
+ switch (imu_type) {
+ case imu_type_telemega_v1_v2:
+ case imu_type_telemega_v3:
+ case imu_type_easymega_v1:
+ return accel_y;
+ case imu_type_easymega_v2:
+ case imu_type_telemega_v4:
+ case imu_type_easytimer_v1:
+ return accel_x;
+ case imu_type_easymotor_v2:
+ return -accel_x;
+ default:
+ return AltosLib.MISSING;
+ }
+ }
+
+ private int accel_through(int imu_type) {
+ if (accel_through != AltosLib.MISSING)
+ return accel_through;
+
+ return accel_z;
+ }
+
+ private int gyro_roll(int imu_type) {
+ if (gyro_roll != AltosLib.MISSING)
+ return gyro_roll;
+
+ switch (imu_type) {
+ case imu_type_telemega_v1_v2:
+ case imu_type_telemega_v3:
+ case imu_type_easymega_v1:
+ return gyro_y;
+ case imu_type_easymega_v2:
+ case imu_type_telemega_v4:
+ case imu_type_easytimer_v1:
+ return gyro_x;
+ default:
+ return AltosLib.MISSING;
+ }
+ }
+
+ private int gyro_pitch(int imu_type) {
+ if (gyro_pitch != AltosLib.MISSING)
+ return gyro_pitch;
+
+ switch (imu_type) {
+ case imu_type_telemega_v1_v2:
+ case imu_type_telemega_v3:
+ case imu_type_easymega_v1:
+ return gyro_x;
+ case imu_type_easymega_v2:
+ return -gyro_y;
+ case imu_type_telemega_v4:
+ case imu_type_easytimer_v1:
+ return -gyro_y;
+ default:
+ return AltosLib.MISSING;
+ }
+ }
+
+ private int gyro_yaw(int imu_type) {
+ if (gyro_yaw != AltosLib.MISSING)
+ return gyro_yaw;
+
+ return gyro_z;
+ }
+
+ private int mag_across(int imu_type) {
+ if (mag_across != AltosLib.MISSING)
+ return mag_across;
+
+ switch (imu_type) {
+ case imu_type_telemega_v1_v2:
+ case imu_type_telemega_v3:
+ case imu_type_easymega_v1:
+ return mag_x;
+ case imu_type_easymega_v2:
+ return -mag_y;
+ case imu_type_telemega_v4:
+ case imu_type_easytimer_v1:
+ return mag_y;
+ default:
+ return AltosLib.MISSING;
+ }
+ }
+
+ private int mag_along(int imu_type) {
+ if (mag_along != AltosLib.MISSING)
+ return mag_along;
+
+ switch (imu_type) {
+ case imu_type_telemega_v1_v2:
+ case imu_type_telemega_v3:
+ case imu_type_easymega_v1:
+ return mag_y;
+ case imu_type_easymega_v2:
+ case imu_type_telemega_v4:
+ case imu_type_easytimer_v1:
+ return mag_x;
+ default:
+ return AltosLib.MISSING;
+ }
+ }
+
+ private int mag_through(int imu_type) {
+ if (mag_through != AltosLib.MISSING)
+ return mag_through;
+
+ return mag_z;
+ }