X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosState.java;h=036c1652ed31c0c157f9c5e6b80cf3450fc1e44f;hb=03ec3e4c2247b6520c728b34805ad500be547a25;hp=e5a0541e18af3d73ede2e596ae2c7d9c31cf814a;hpb=b6b5c64f93fa56bcb22ea1c4279e4f754e6e6f1c;p=fw%2Faltos diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index e5a0541e..036c1652 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -22,8 +22,6 @@ package org.altusmetrum.altoslib_11; -import java.io.*; - public class AltosState extends AltosDataListener { public static final int set_position = 1; @@ -751,7 +749,6 @@ public class AltosState extends AltosDataListener { imu = null; last_imu_time = AltosLib.MISSING; rotation = null; - ground_rotation = null; mag = null; @@ -759,8 +756,6 @@ public class AltosState extends AltosDataListener { accel_ground_across = AltosLib.MISSING; accel_ground_through = AltosLib.MISSING; - pad_orientation = AltosLib.MISSING; - set_npad(0); ngps = 0; @@ -901,19 +896,15 @@ public class AltosState extends AltosDataListener { public AltosRotation rotation; - public AltosRotation ground_rotation; - - public int pad_orientation; public double accel_ground_along, accel_ground_across, accel_ground_through; void update_pad_rotation() { - if (pad_orientation != AltosLib.MISSING && accel_ground_along != AltosLib.MISSING) { + if (cal_data.pad_orientation != AltosLib.MISSING && accel_ground_along != AltosLib.MISSING) { rotation = new AltosRotation(AltosIMU.convert_accel(accel_ground_across - cal_data.accel_zero_across), AltosIMU.convert_accel(accel_ground_through - cal_data.accel_zero_through), AltosIMU.convert_accel(accel_ground_along - cal_data.accel_zero_along), - pad_orientation); - ground_rotation = rotation; + cal_data.pad_orientation); orient.set_computed(rotation.tilt(), time); } } @@ -925,28 +916,17 @@ public class AltosState extends AltosDataListener { update_pad_rotation(); } - public void set_pad_orientation(int pad_orientation) { - this.pad_orientation = pad_orientation; - update_pad_rotation(); - } - public double last_imu_time; - private double radians(double degrees) { - if (degrees == AltosLib.MISSING) - return AltosLib.MISSING; - return degrees * Math.PI / 180.0; - } - private void update_orient() { if (last_imu_time != AltosLib.MISSING) { double t = time - last_imu_time; - double pitch = radians(gyro_pitch()); - double yaw = radians(gyro_yaw()); - double roll = radians(gyro_roll()); + double pitch = AltosConvert.degrees_to_radians(gyro_pitch()); + double yaw = AltosConvert.degrees_to_radians(gyro_yaw()); + double roll = AltosConvert.degrees_to_radians(gyro_roll()); - if (t > 0 & pitch != AltosLib.MISSING && rotation != null) { + if (t > 0 && pitch != AltosLib.MISSING && rotation != null) { rotation.rotate(t, pitch, yaw, roll); orient.set_computed(rotation.tilt(), time); } @@ -958,8 +938,8 @@ public class AltosState extends AltosDataListener { public void set_gyro(double roll, double pitch, double yaw) { gyro_roll = roll; - gyro_pitch = roll; - gyro_roll = roll; + gyro_pitch = pitch; + gyro_roll = yaw; update_orient(); } @@ -1075,11 +1055,14 @@ public class AltosState extends AltosDataListener { } public AltosState() { + Thread.dumpStack(); init(); } public AltosState (AltosCalData cal_data) { super(cal_data); + if (cal_data == null) + Thread.dumpStack(); init(); } }