altos/test: Support old telemega eeprom file formats in ao_flight_test
[fw/altos] / src / test / ao_flight_test.c
index 8b737ca1e71a9b123f720da3ad5c0b249a91d0c3..f71c3052d3e175d881af95f7daa3fa929456fd4f 100644 (file)
@@ -554,9 +554,9 @@ ao_insert(void)
 
                        ao_quaternion_rotate(&ao_out, &ao_x, &ao_rotation);
 
+#if 0
                        int     out = floor (atan2(ao_out.y, ao_out.x) * 180 / M_PI);
 
-#if 0
                        printf ("%7.2f state %-8.8s height %8.4f tilt %4d rot %4d mag_tilt %4d mag_rot %4d\n",
                                time,
                                ao_state_names[ao_flight_state],
@@ -600,7 +600,7 @@ ao_insert(void)
 
 #if 1
                        printf("%7.2f height %8.2f accel %8.3f "
-#if TELEMEGA && 0
+#if TELEMEGA && 1
                               "angle %5d "
                               "accel_x %8.3f accel_y %8.3f accel_z %8.3f gyro_x %8.3f gyro_y %8.3f gyro_z %8.3f mag_x %8d mag_y %8d, mag_z %8d mag_angle %4d "
 #endif
@@ -608,7 +608,7 @@ ao_insert(void)
                               time,
                               height,
                               accel,
-#if TELEMEGA && 0
+#if TELEMEGA && 1
                               ao_sample_orient,
 
                               ao_mpu6000_accel(ao_data_static.mpu6000.accel_x),
@@ -717,7 +717,7 @@ ao_sleep(void *wchan)
                                        break;
                        }
 #if TELEMEGA
-                       if (log_format == AO_LOG_FORMAT_TELEMEGA && nword == 30 && strlen(words[0]) == 1) {
+                       if ((log_format == AO_LOG_FORMAT_TELEMEGA_OLD || log_format == AO_LOG_FORMAT_TELEMEGA) && nword == 30 && strlen(words[0]) == 1) {
                                int     i;
                                struct ao_ms5607_value  value;
 
@@ -764,6 +764,8 @@ ao_sleep(void *wchan)
                                        ao_data_static.hmc5883.z = int16(bytes, 24);
 #if HAS_MMA655X
                                        ao_data_static.mma655x = int16(bytes, 26);
+                                       if (ao_config.pad_orientation != AO_PAD_ORIENTATION_ANTENNA_UP)
+                                               ao_data_static.mma655x = ao_data_accel_invert(ao_data_static.mma655x);
 #endif
                                        ao_records_read++;
                                        ao_insert();
@@ -893,13 +895,15 @@ ao_sleep(void *wchan)
                                ao_config.accel_zero_along = atoi(words[3]);
                                ao_config.accel_zero_across = atoi(words[5]);
                                ao_config.accel_zero_through = atoi(words[7]);
-                               printf ("%d %d %d\n", ao_config.accel_zero_along, ao_config.accel_zero_across, ao_config.accel_zero_through);
 #endif
                        } else if (nword >= 4 && strcmp(words[0], "Main") == 0) {
                                ao_config.main_deploy = atoi(words[2]);
                        } else if (nword >= 3 && strcmp(words[0], "Apogee") == 0 &&
                                   strcmp(words[1], "lockout:") == 0) {
                                ao_config.apogee_lockout = atoi(words[2]);
+                       } else if (nword >= 3 && strcmp(words[0], "Pad") == 0 &&
+                                  strcmp(words[1], "orientation:") == 0) {
+                               ao_config.pad_orientation = atoi(words[2]);
                        } else if (nword >= 36 && strcmp(words[0], "CALL") == 0) {
                                tick = atoi(words[10]);
                                if (!ao_flight_started) {