altos: Allow megametrum to be built without using the mag sensor
authorKeith Packard <keithp@keithp.com>
Thu, 28 Jun 2012 06:03:33 +0000 (23:03 -0700)
committerKeith Packard <keithp@keithp.com>
Thu, 28 Jun 2012 06:03:33 +0000 (23:03 -0700)
I'm having trouble getting it working reliably, so we'll like disable it
for now. This patch makes that possible.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/core/ao_log_mega.c
src/core/ao_telemetry.c
src/megametrum-v0.1/ao_megametrum.c

index e7c2b0d9388dc49213b315191ee94af494a15b78..ac1590db760f67ee82506a07ced3b87ce711480d 100644 (file)
@@ -112,18 +112,24 @@ ao_log(void)
                        log.tick = ao_data_ring[ao_log_data_pos].tick;
                        if ((int16_t) (log.tick - next_sensor) >= 0) {
                                log.type = AO_LOG_SENSOR;
+#if HAS_MS5607
                                log.u.sensor.pres = ao_data_ring[ao_log_data_pos].ms5607_raw.pres;
                                log.u.sensor.temp = ao_data_ring[ao_log_data_pos].ms5607_raw.temp;
+#endif
+#if HAS_MPU6000
                                log.u.sensor.accel_x = ao_data_ring[ao_log_data_pos].mpu6000.accel_x;
                                log.u.sensor.accel_y = ao_data_ring[ao_log_data_pos].mpu6000.accel_y;
                                log.u.sensor.accel_z = ao_data_ring[ao_log_data_pos].mpu6000.accel_z;
                                log.u.sensor.gyro_x = ao_data_ring[ao_log_data_pos].mpu6000.gyro_x;
                                log.u.sensor.gyro_y = ao_data_ring[ao_log_data_pos].mpu6000.gyro_y;
                                log.u.sensor.gyro_z = ao_data_ring[ao_log_data_pos].mpu6000.gyro_z;
+#endif
+#if HAS_HMC5883
                                log.u.sensor.mag_x = ao_data_ring[ao_log_data_pos].hmc5883.x;
                                log.u.sensor.mag_y = ao_data_ring[ao_log_data_pos].hmc5883.y;
                                log.u.sensor.mag_z = ao_data_ring[ao_log_data_pos].hmc5883.z;
-                               log.u.sensor.accel = ao_data_ring[ao_log_data_pos].adc.accel;
+#endif
+                               log.u.sensor.accel = ao_data_accel(&ao_data_ring[ao_log_data_pos]);
                                ao_log_mega(&log);
                                if (ao_log_state <= ao_flight_coast)
                                        next_sensor = log.tick + AO_SENSOR_INTERVAL_ASCENT;
index b3ce8ba9325a3573ed93c3b641a6f7c317d5249d..3c747520ee2c227e2a77e30efdd84b4f6f48acd6 100644 (file)
@@ -104,6 +104,7 @@ ao_send_mega_sensor(void)
        telemetry.mega_sensor.pres = ao_data_pres(packet);
        telemetry.mega_sensor.temp = ao_data_temp(packet);
 
+#if HAS_MPU6000
        telemetry.mega_sensor.accel_x = packet->mpu6000.accel_x;
        telemetry.mega_sensor.accel_y = packet->mpu6000.accel_y;
        telemetry.mega_sensor.accel_z = packet->mpu6000.accel_z;
@@ -111,10 +112,13 @@ ao_send_mega_sensor(void)
        telemetry.mega_sensor.gyro_x = packet->mpu6000.gyro_x;
        telemetry.mega_sensor.gyro_y = packet->mpu6000.gyro_y;
        telemetry.mega_sensor.gyro_z = packet->mpu6000.gyro_z;
+#endif
 
+#if HAS_HMC5883
        telemetry.mega_sensor.mag_x = packet->hmc5883.x;
        telemetry.mega_sensor.mag_y = packet->hmc5883.y;
        telemetry.mega_sensor.mag_z = packet->hmc5883.z;
+#endif
 
        ao_radio_send(&telemetry, sizeof (telemetry));
 }
index 749f251d913571028384ae42e759d2c51214ea1e..a6d93733e0d1b4b1b569a15ba971e55194892cc3 100644 (file)
@@ -43,9 +43,15 @@ main(void)
        ao_beep_init();
        ao_cmd_init();
 
+#if HAS_MS5607
        ao_ms5607_init();
+#endif
+#if HAS_HMC5883
        ao_hmc5883_init();
+#endif
+#if HAS_MPU6000
        ao_mpu6000_init();
+#endif
 
        ao_storage_init();