altos: Remove *_TO_DATA macros
[fw/altos] / altoslib / AltosEepromRecordMega.java
index 371810aba4ba8873be7b6719ef8b41df0327bec7..6b28c50a42e67a935ad7ab723153bb8c996c3a80 100644 (file)
@@ -12,7 +12,7 @@
  * General Public License for more details.
  */
 
-package org.altusmetrum.altoslib_11;
+package org.altusmetrum.altoslib_13;
 
 public class AltosEepromRecordMega extends AltosEepromRecord {
        public static final int record_length = 32;
@@ -31,6 +31,7 @@ public class AltosEepromRecordMega extends AltosEepromRecord {
        private int ground_roll() {
                switch (log_format) {
                case AltosLib.AO_LOG_FORMAT_TELEMEGA:
+               case AltosLib.AO_LOG_FORMAT_TELEMEGA_3:
                        return data32(16);
                case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD:
                        return data16(14);
@@ -41,6 +42,7 @@ public class AltosEepromRecordMega extends AltosEepromRecord {
        private int ground_pitch() {
                switch (log_format) {
                case AltosLib.AO_LOG_FORMAT_TELEMEGA:
+               case AltosLib.AO_LOG_FORMAT_TELEMEGA_3:
                        return data32(20);
                case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD:
                        return data16(16);
@@ -51,6 +53,7 @@ public class AltosEepromRecordMega extends AltosEepromRecord {
        private int ground_yaw() {
                switch (log_format) {
                case AltosLib.AO_LOG_FORMAT_TELEMEGA:
+               case AltosLib.AO_LOG_FORMAT_TELEMEGA_3:
                        return data32(24);
                case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD:
                        return data16(18);
@@ -73,8 +76,8 @@ public class AltosEepromRecordMega extends AltosEepromRecord {
        private int gyro_y() { return data16(16); }
        private int gyro_z() { return data16(18); }
        private int mag_x() { return data16(20); }
-       private int mag_y() { return data16(22); }
-       private int mag_z() { return data16(24); }
+       private int mag_z() { return data16(22); }
+       private int mag_y() { return data16(24); }
        private int accel() { return data16(26); }
 
        /* AO_LOG_TEMP_VOLT elements */
@@ -114,22 +117,6 @@ public class AltosEepromRecordMega extends AltosEepromRecord {
 
                AltosGPS        gps;
 
-               /* Flush any pending GPS changes */
-               if (cal_data.gps_pending()) {
-                       switch (cmd()) {
-                       case AltosLib.AO_LOG_GPS_LAT:
-                       case AltosLib.AO_LOG_GPS_LON:
-                       case AltosLib.AO_LOG_GPS_ALT:
-                       case AltosLib.AO_LOG_GPS_SAT:
-                       case AltosLib.AO_LOG_GPS_DATE:
-                               break;
-                       default:
-                               listener.set_gps(cal_data.temp_gps());
-                               cal_data.reset_temp_gps();
-                               break;
-                       }
-               }
-
                switch (cmd()) {
                case AltosLib.AO_LOG_FLIGHT:
                        cal_data.set_flight(flight());
@@ -158,8 +145,8 @@ public class AltosEepromRecordMega extends AltosEepromRecord {
                        int     gyro_pitch = gyro_x();
                        int     gyro_yaw = gyro_z();
 
-                       int     mag_along = mag_x();
-                       int     mag_across = mag_y();
+                       int     mag_along = mag_y();
+                       int     mag_across = mag_x();
                        int     mag_through = mag_z();
 
                        if (log_format == AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD)
@@ -177,11 +164,13 @@ public class AltosEepromRecordMega extends AltosEepromRecord {
                                         cal_data.mag_through(mag_through));
 
 
+                       final double lsb_per_g = 1920.0/105.5;
+
                        double acceleration = AltosConvert.acceleration_from_sensor(
                                accel(),
-                               config_data.accel_cal_plus,
-                               config_data.accel_cal_minus,
-                               AltosLib.MISSING);
+                               cal_data.ground_accel,
+                               cal_data.ground_accel + 2 * lsb_per_g,
+                               cal_data.ground_accel);
 
                        listener.set_acceleration(acceleration);
                        break;
@@ -198,11 +187,11 @@ public class AltosEepromRecordMega extends AltosEepromRecord {
                        for (int i = 0; i < nsense-2; i++)
                                voltages[i] = AltosConvert.mega_pyro_voltage(sense(i));
 
-                       listener.set_ignitor_voltage(voltages);
+                       listener.set_igniter_voltage(voltages);
                        listener.set_pyro_fired(pyro());
                        break;
                case AltosLib.AO_LOG_GPS_TIME:
-                       gps = cal_data.make_temp_gps(tick(), false);
+                       gps = listener.make_temp_gps(false);
                        gps.lat = latitude() / 1e7;
                        gps.lon = longitude() / 1e7;
 
@@ -245,7 +234,7 @@ public class AltosEepromRecordMega extends AltosEepromRecord {
                        }
                        break;
                case AltosLib.AO_LOG_GPS_SAT:
-                       gps = cal_data.make_temp_gps(tick(), true);
+                       gps = listener.make_temp_gps(true);
 
                        int n = nsat();
                        if (n > max_sat)
@@ -263,12 +252,12 @@ public class AltosEepromRecordMega extends AltosEepromRecord {
                return new AltosEepromRecordMega(eeprom, s);
        }
 
-       public AltosEepromRecordMega(AltosEepromNew eeprom, int start) {
+       public AltosEepromRecordMega(AltosEeprom eeprom, int start) {
                super(eeprom, start, record_length);
                log_format = eeprom.config_data().log_format;
        }
 
-       public AltosEepromRecordMega(AltosEepromNew eeprom) {
+       public AltosEepromRecordMega(AltosEeprom eeprom) {
                this(eeprom, 0);
        }
 }