* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_13;
+package org.altusmetrum.altoslib_14;
import java.util.concurrent.*;
import java.io.*;
case imu_type_easymega_v2:
return counts_per_g_mpu;
case imu_type_telemega_v4:
+ case imu_type_easytimer_v1:
return counts_per_g_bmx;
default:
return AltosLib.MISSING;
case imu_type_easymega_v1:
case imu_type_easymega_v2:
return counts_per_degree_mpu;
- case imu_type_telemega_v4:
+ case imu_type_telemega_v4:
+ case imu_type_easytimer_v1:
return counts_per_degree_bmx;
default:
return AltosLib.MISSING;
public static final double MAG_COUNTS_MPU = 32767.0;
public static final double counts_per_gauss_mpu = MAG_COUNTS_MPU / MAG_FULLSCALE_GAUSS_MPU;
- public static final double MAG_FULLSCALE_GAUSS_BMX_XY = 11.50; /* 1150µT */
- public static final double MAG_FULLSCALE_GAUSS_BMX_Z = 25.00; /* 2500µT */
- public static final double MAG_COUNTS_BMX = 32767.0;
- public static final double counts_per_gauss_bmx_xy = MAG_COUNTS_BMX / MAG_FULLSCALE_GAUSS_BMX_XY;
- public static final double counts_per_gauss_bmx_z = MAG_COUNTS_BMX / MAG_FULLSCALE_GAUSS_BMX_Z;
+ public static final double counts_per_gauss_bmx = 100.0; /* BMX driver converts to µT */
public static double counts_per_gauss(int imu_type, int axis) {
switch(imu_type) {
case imu_type_easymega_v2:
return counts_per_gauss_mpu;
case imu_type_telemega_v4:
- switch (axis) {
- case imu_axis_x:
- case imu_axis_y:
- return counts_per_gauss_bmx_xy;
- case imu_axis_z:
- return counts_per_gauss_bmx_z;
- }
- /* fall through */
+ case imu_type_easytimer_v1:
+ return 100.0;
default:
return AltosLib.MISSING;
}
String[] items = line.split("\\s+");
- System.out.printf("length %d\n", items.length);
-
if (items.length >= 8) {
accel_x = Integer.parseInt(items[1]);
accel_y = Integer.parseInt(items[2]);
public static final int imu_type_easymega_v1 = 3; /* MPU6000 */
public static final int imu_type_easymega_v2 = 4; /* MPU9250 */
+ public static final int imu_type_easytimer_v1 = 5; /* BMX160 */
+
private int accel_across(int imu_type) {
switch (imu_type) {
case imu_type_telemega_v1_v2:
return accel_x;
case imu_type_easymega_v2:
return -accel_y;
- case imu_type_telemega_v4:
+ case imu_type_telemega_v4:
+ case imu_type_easytimer_v1:
return -accel_y;
default:
return AltosLib.MISSING;
return accel_y;
case imu_type_easymega_v2:
case imu_type_telemega_v4:
+ case imu_type_easytimer_v1:
return accel_x;
default:
return AltosLib.MISSING;
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;
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;
case imu_type_telemega_v3:
case imu_type_easymega_v1:
return imu_axis_x;
- case imu_type_telemega_v4:
case imu_type_easymega_v2:
+ case imu_type_telemega_v4:
+ case imu_type_easytimer_v1:
return imu_axis_y;
default:
return AltosLib.MISSING;
case imu_type_telemega_v3:
case imu_type_easymega_v1:
return mag_x;
- case imu_type_telemega_v4:
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;
}
return imu_axis_y;
case imu_type_easymega_v2:
case imu_type_telemega_v4:
+ case imu_type_easytimer_v1:
return imu_axis_x;
default:
return AltosLib.MISSING;
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;