X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosIMU.java;h=8adf710e028a03f8e401ec4c48de5c1e9138a805;hp=87570a79a5458ec580198c714f56d3c92c39e78a;hb=HEAD;hpb=7b40813fdafce4ebd635aceb4c32355339a4d98d diff --git a/altoslib/AltosIMU.java b/altoslib/AltosIMU.java index 87570a79..01ecc161 100644 --- a/altoslib/AltosIMU.java +++ b/altoslib/AltosIMU.java @@ -22,37 +22,37 @@ import java.util.concurrent.*; import java.io.*; public class AltosIMU implements Cloneable { - public int accel_x = AltosLib.MISSING; - public int accel_y = AltosLib.MISSING; - public int accel_z = AltosLib.MISSING; + private int accel_x = AltosLib.MISSING; + private int accel_y = AltosLib.MISSING; + private int accel_z = AltosLib.MISSING; - public int accel_along = AltosLib.MISSING; - public int accel_across = AltosLib.MISSING; - public int accel_through = AltosLib.MISSING; + private int accel_along = AltosLib.MISSING; + private int accel_across = AltosLib.MISSING; + private int accel_through = AltosLib.MISSING; - public int gyro_x = AltosLib.MISSING; - public int gyro_y = AltosLib.MISSING; - public int gyro_z = AltosLib.MISSING; + private int gyro_x = AltosLib.MISSING; + private int gyro_y = AltosLib.MISSING; + private int gyro_z = AltosLib.MISSING; - public int gyro_roll = AltosLib.MISSING; - public int gyro_pitch = AltosLib.MISSING; - public int gyro_yaw = AltosLib.MISSING; + private int gyro_roll = AltosLib.MISSING; + private int gyro_pitch = AltosLib.MISSING; + private int gyro_yaw = AltosLib.MISSING; - public int mag_x = AltosLib.MISSING; - public int mag_y = AltosLib.MISSING; - public int mag_z = AltosLib.MISSING; + private int mag_x = AltosLib.MISSING; + private int mag_y = AltosLib.MISSING; + private int mag_z = AltosLib.MISSING; - public int mag_along = AltosLib.MISSING; - public int mag_across = AltosLib.MISSING; - public int mag_through = AltosLib.MISSING; + private int mag_along = AltosLib.MISSING; + private int mag_across = AltosLib.MISSING; + private int mag_through = AltosLib.MISSING; - public int imu_model = AltosLib.MISSING; - public int mag_model = AltosLib.MISSING; + private int imu_model = AltosLib.MISSING; + private int mag_model = AltosLib.MISSING; - public static final double counts_per_g_mpu = 2048.0; - public static final double counts_per_g_bmx = 2048.0; - public static final double counts_per_g_adxl = 20.5; - public static final double counts_per_g_bmi088 = 1365.0; + private static final double counts_per_g_mpu = 2048.0; + private static final double counts_per_g_bmx = 2048.0; + private static final double counts_per_g_adxl = 20.5; + private static final double counts_per_g_bmi088 = 1365.0; private static double counts_per_g(int imu_type, int imu_model) { switch (imu_model) { @@ -73,11 +73,13 @@ public class AltosIMU implements Cloneable { case imu_type_easymega_v1: case imu_type_easymega_v2: return counts_per_g_mpu; - case imu_type_telemega_v4: + case imu_type_telemega_v4: case imu_type_easytimer_v1: return counts_per_g_bmx; case imu_type_easymotor_v2: return counts_per_g_adxl; + case imu_type_easytimer_v2: + return counts_per_g_bmi088; } return AltosLib.MISSING; @@ -90,13 +92,13 @@ public class AltosIMU implements Cloneable { return counts / cpg * AltosConvert.gravity; } - public static final double GYRO_FULLSCALE_DEGREES_MPU = 2000.0; - public static final double GYRO_COUNTS_MPU = 32767.0; - public static final double counts_per_degree_mpu = GYRO_COUNTS_MPU / GYRO_FULLSCALE_DEGREES_MPU; - public static final double GYRO_FULLSCALE_DEGREES_BMX = 2000.0; - public static final double GYRO_COUNTS_BMX = 32767.0; - public static final double counts_per_degree_bmx = GYRO_COUNTS_BMX / GYRO_FULLSCALE_DEGREES_BMX; - public static final double counts_per_degree_bmi088 = 16.384; + private static final double GYRO_FULLSCALE_DEGREES_MPU = 2000.0; + private static final double GYRO_COUNTS_MPU = 32767.0; + private static final double counts_per_degree_mpu = GYRO_COUNTS_MPU / GYRO_FULLSCALE_DEGREES_MPU; + private static final double GYRO_FULLSCALE_DEGREES_BMX = 2000.0; + private static final double GYRO_COUNTS_BMX = 32767.0; + private static final double counts_per_degree_bmx = GYRO_COUNTS_BMX / GYRO_FULLSCALE_DEGREES_BMX; + private static final double counts_per_degree_bmi088 = 16.384; private static double counts_per_degree(int imu_type, int imu_model) { switch (imu_model) { @@ -131,11 +133,11 @@ public class AltosIMU implements Cloneable { return counts / cpd; } - public static final double MAG_FULLSCALE_GAUSS_MPU = 48.00; /* 4800µT */ - public static final double MAG_COUNTS_MPU = 32767.0; - public static final double counts_per_gauss_mpu = MAG_COUNTS_MPU / MAG_FULLSCALE_GAUSS_MPU; + private static final double MAG_FULLSCALE_GAUSS_MPU = 48.00; /* 4800µT */ + private static final double MAG_COUNTS_MPU = 32767.0; + private static final double counts_per_gauss_mpu = MAG_COUNTS_MPU / MAG_FULLSCALE_GAUSS_MPU; - public static final double counts_per_gauss_bmx = 100.0; /* BMX driver converts to µT */ + private static final double counts_per_gauss_bmx = 100.0; /* BMX driver converts to µT */ public static double counts_per_gauss(int imu_type, int imu_model) { switch (imu_model) { @@ -156,7 +158,7 @@ public class AltosIMU implements Cloneable { return AltosLib.MISSING; } - public boolean parse_string(String line) { + private boolean parse_string(String line) { if (line.startsWith("Accel:")) { String[] items = line.split("\\s+"); @@ -251,6 +253,8 @@ public class AltosIMU implements Cloneable { public static final int imu_type_easymotor_v2 = 6; /* ADXL375 (accel only) */ + public static final int imu_type_easytimer_v2 = 7; /* BMI088 */ + private int accel_across(int imu_type) { if (accel_across != AltosLib.MISSING) @@ -274,8 +278,10 @@ public class AltosIMU implements Cloneable { } private int accel_along(int imu_type) { - if (accel_along != AltosLib.MISSING) + if (accel_along != AltosLib.MISSING) { + System.out.printf("accel along %d\n", accel_along); return accel_along; + } switch (imu_type) { case imu_type_telemega_v1_v2: @@ -391,6 +397,7 @@ public class AltosIMU implements Cloneable { private static boolean is_primary_accel(int imu_type) { switch (imu_type) { case imu_type_easytimer_v1: + case imu_type_easytimer_v2: return true; default: return false; @@ -402,6 +409,7 @@ public class AltosIMU implements Cloneable { AltosIMU imu = new AltosIMU(link); AltosCalData cal_data = listener.cal_data(); + System.out.printf("imu_model %d mag_model %d\n", imu.imu_model, imu.mag_model); if (imu_type != AltosLib.MISSING) cal_data.set_imu_type(imu_type); if (imu != null) {