}
static void
-ao_report_number(int16_t n)
+ao_report_number(int32_t n)
{
uint8_t digits[10];
uint8_t ndigits, i;
n = 0;
ndigits = 0;
do {
- digits[ndigits++] = n % 10;
+ digits[ndigits++] = (uint8_t) (n % 10);
n /= 10;
} while (n);
while (i != 0);
}
+#ifdef HAS_BARO
static void
ao_report_altitude(void)
{
- ao_report_number(ao_max_height);
+ alt_t max_h = ao_max_height;
+ if (ao_config.report_feet) {
+ max_h = max_h * 39 / 12;
+ /* report a leading zero to distinguish */
+ if (max_h)
+ ao_report_digit(0);
+ }
+ ao_report_number(max_h);
}
+#endif
#if HAS_BATTERY_REPORT
static void
uint8_t
ao_report_igniter(void)
{
- return (ao_report_igniter_ready(ao_igniter_drogue) |
- (ao_report_igniter_ready(ao_igniter_main) << 1));
+ return (uint8_t) (ao_report_igniter_ready(ao_igniter_drogue) |
+ (ao_report_igniter_ready(ao_igniter_main) << 1));
}
#endif
#endif
if (ao_report_state == ao_flight_landed) {
+#if HAS_BARO
ao_report_altitude();
+#endif
#if HAS_FLIGHT
ao_delay(AO_SEC_TO_TICKS(5));
continue;