summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-06-27 23:03:33 -0700
committerKeith Packard <keithp@keithp.com>2012-06-27 23:03:33 -0700
commitdd623b21cb904238c6d903b6936ff2f8ebf6f339 (patch)
tree9b71babae6354857eec852c50cb540c1e909920d
parentbd21c050fd8b96b33ab6859c942bf55cf2b91868 (diff)
altos: Allow megametrum to be built without using the mag sensor
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>
-rw-r--r--src/core/ao_log_mega.c8
-rw-r--r--src/core/ao_telemetry.c4
-rw-r--r--src/megametrum-v0.1/ao_megametrum.c6
3 files changed, 17 insertions, 1 deletions
diff --git a/src/core/ao_log_mega.c b/src/core/ao_log_mega.c
index e7c2b0d9..ac1590db 100644
--- a/src/core/ao_log_mega.c
+++ b/src/core/ao_log_mega.c
@@ -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;
diff --git a/src/core/ao_telemetry.c b/src/core/ao_telemetry.c
index b3ce8ba9..3c747520 100644
--- a/src/core/ao_telemetry.c
+++ b/src/core/ao_telemetry.c
@@ -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));
}
diff --git a/src/megametrum-v0.1/ao_megametrum.c b/src/megametrum-v0.1/ao_megametrum.c
index 749f251d..a6d93733 100644
--- a/src/megametrum-v0.1/ao_megametrum.c
+++ b/src/megametrum-v0.1/ao_megametrum.c
@@ -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();