altos/test: Use MMA655X in ao_flight_test_mm. Add run-mm to plot mm data
authorKeith Packard <keithp@keithp.com>
Mon, 22 Oct 2012 00:26:16 +0000 (17:26 -0700)
committerKeith Packard <keithp@keithp.com>
Mon, 22 Oct 2012 00:26:16 +0000 (17:26 -0700)
Pull MMA655X data out of eeprom file when available. Switch build to
using MMA655x by default.

Clone run-one to plot a single mm flight

Signed-off-by: Keith Packard <keithp@keithp.com>
src/test/ao_flight_test.c
src/test/run-mm [new file with mode: 0755]

index 0df9a5d79c0b9df7ca0a73be546f3029d59c1a82..7180f02d2cd4b5dba6ea2df607049e7a71fd404d 100644 (file)
@@ -39,7 +39,7 @@
 #define AO_ADC_NUM_SENSE       6
 #define HAS_MS5607             1
 #define HAS_MPU6000            1
 #define AO_ADC_NUM_SENSE       6
 #define HAS_MS5607             1
 #define HAS_MPU6000            1
-#define HAS_MMA655X            0
+#define HAS_MMA655X            1
 
 struct ao_adc {
        int16_t                 sense[AO_ADC_NUM_SENSE];
 
 struct ao_adc {
        int16_t                 sense[AO_ADC_NUM_SENSE];
@@ -622,6 +622,9 @@ ao_sleep(void *wchan)
                                        ao_data_static.mpu6000.gyro_x = int16(bytes, 14);
                                        ao_data_static.mpu6000.gyro_y = -int16(bytes, 16);
                                        ao_data_static.mpu6000.gyro_z = int16(bytes, 18);
                                        ao_data_static.mpu6000.gyro_x = int16(bytes, 14);
                                        ao_data_static.mpu6000.gyro_y = -int16(bytes, 16);
                                        ao_data_static.mpu6000.gyro_z = int16(bytes, 18);
+#if HAS_MMA655X
+                                       ao_data_static.mma655x = int16(bytes, 26);
+#endif
                                        if (ao_records_read == 0)
                                                ao_ground_mpu6000 = ao_data_static.mpu6000;
                                        else if (ao_records_read < 10) {
                                        if (ao_records_read == 0)
                                                ao_ground_mpu6000 = ao_data_static.mpu6000;
                                        else if (ao_records_read < 10) {
diff --git a/src/test/run-mm b/src/test/run-mm
new file mode 100755 (executable)
index 0000000..6f3d97a
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+DIR=~/misc/rockets/flights
+
+for i in "$@"; do
+case "$i" in
+    */*)
+    file="$i"
+    ;;
+    *)
+    file="$DIR/$i"
+    ;;
+esac
+./ao_flight_test_mm "$file" > run-out.mm
+
+#./ao_flight_test_accel "$file" > run-out.accel
+#"run-out.accel" using 1:9 with lines lt 4 axes x1y1 title "accel height",\
+#"run-out.accel" using 1:11 with lines lt 4 axes x1y2 title "accel speed",\
+#"run-out.accel" using 1:13 with lines lt 4 axes x1y2 title "accel accel",\
+#"run-out.accel" using 1:15 with lines lt 4 axes x1y1 title "accel drogue",\
+#"run-out.accel" using 1:17 with lines lt 4 axes x1y1 title "accel main",\
+#
+
+gnuplot << EOF
+set ylabel "altitude (m)"
+set y2label "velocity (m/s), acceleration(m/s²)"
+set xlabel "time (s)"
+set xtics border out nomirror
+set ytics border out nomirror
+set y2tics border out nomirror
+set title "$i"
+plot "run-out.mm" using 1:3 with lines lw 2 lt 1 axes x1y1 title "raw height",\
+"run-out.mm" using 1:5 with lines lw 2 lt 1 axes x1y2 title "raw accel",\
+"run-out.mm" using 1:21 with lines lt 2 axes x1y1 title "mm height",\
+"run-out.mm" using 1:23 with lines lt 2 axes x1y2 title "mm speed",\
+"run-out.mm" using 1:25 with lines lt 2 axes x1y2 title "mm accel",\
+"run-out.mm" using 1:29 with lines lt 2 axes x1y1 title "mm drogue",\
+"run-out.mm" using 1:31 with lines lt 2 axes x1y1 title "mm main"
+pause mouse close
+EOF
+done
\ No newline at end of file