Add option to beep max height in feet rather than just meters
[fw/altos] / src / kernel / ao_data.h
index 60794cc2d110878e373aaf808ad54caa5e3339b6..b49d6a558db2b3b2eb0e18d6c950f42f5e4e04b5 100644 (file)
@@ -105,7 +105,7 @@ extern uint8_t                      ao_sensor_errors;
 #define AO_DATA_ALL    (AO_DATA_ADC|AO_DATA_MS5607|AO_DATA_MPU6000|AO_DATA_HMC5883|AO_DATA_MMA655X|AO_DATA_MPU9250|AO_DATA_ADXL375|AO_DATA_BMX160|AO_DATA_MMC5983)
 
 struct ao_data {
-       uint16_t                        tick;
+       AO_TICK_TYPE                    tick;
 #if HAS_ADC
        struct ao_adc                   adc;
 #endif
@@ -182,6 +182,10 @@ extern volatile uint8_t            ao_data_count;
 
 #endif /* AO_DATA_RING */
 
+#define AO_ALT_TYPE    int32_t
+
+typedef AO_ALT_TYPE    alt_t;
+
 #if !HAS_BARO && HAS_MS5607
 
 /* Either an MS5607 or an MS5611 hooked to a SPI port
@@ -191,14 +195,10 @@ extern volatile uint8_t           ao_data_count;
 
 typedef int32_t        pres_t;
 
-#define AO_ALT_TYPE    int32_t
-
-typedef AO_ALT_TYPE    alt_t;
-
 #define ao_data_pres_cook(packet)      ao_ms5607_convert(&packet->ms5607_raw, &packet->ms5607_cooked)
 
 #define ao_data_pres(packet)   ((packet)->ms5607_cooked.pres)
-#define ao_data_temp(packet)   ((packet)->ms5607_cooked.temp)
+#define ao_data_temp(packet)   ((int16_t) (packet)->ms5607_cooked.temp)
 
 #define pres_to_altitude(p)    ao_pa_to_altitude(p)
 
@@ -331,9 +331,9 @@ typedef int16_t accel_t;
 #endif
 
 #if AO_MMA655X_INVERT
-#define ao_data_accel_raw(packet)              (AO_ACCEL_INVERT - (packet)->mma655x)
+#define ao_data_accel_raw(packet)              ((accel_t) (AO_ACCEL_INVERT - (packet)->mma655x))
 #else
-#define ao_data_accel_raw(packet)              ((packet)->mma655x)
+#define ao_data_accel_raw(packet)              ((accel_t) (packet)->mma655x)
 #endif
 #define ao_data_accel_invert(accel)            (AO_ACCEL_INVERT - (accel))