X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fkernel%2Fao_report.c;h=977cea854ff1f014e0927a25530b34988e2682a8;hb=d80c1317f596f73d192e6fbb33c3579d54802182;hp=26604d1ad4d784a96318dae4e8115327fe702cbc;hpb=d553e7448fe22f593eb8ab8246e872d856484bab;p=fw%2Faltos diff --git a/src/kernel/ao_report.c b/src/kernel/ao_report.c index 26604d1a..977cea85 100644 --- a/src/kernel/ao_report.c +++ b/src/kernel/ao_report.c @@ -149,7 +149,7 @@ ao_report_digit(uint8_t digit) } static void -ao_report_number(int16_t n) +ao_report_number(int32_t n) { uint8_t digits[10]; uint8_t ndigits, i; @@ -158,7 +158,7 @@ ao_report_number(int16_t n) n = 0; ndigits = 0; do { - digits[ndigits++] = n % 10; + digits[ndigits++] = (uint8_t) (n % 10); n /= 10; } while (n); @@ -171,7 +171,14 @@ ao_report_number(int16_t n) 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); } #if HAS_BATTERY_REPORT @@ -200,8 +207,8 @@ ao_report_igniter_ready(enum ao_igniter igniter) 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 @@ -285,6 +292,15 @@ ao_report(void) while (c-- && ao_flight_state == ao_flight_pad) pause(AO_MS_TO_TICKS(100)); } +#endif +#if HAS_PAD_REPORT + while (ao_flight_state == ao_flight_pad) { + uint8_t c; + ao_report_flight_state(); + c = 50; + while (c-- && ao_flight_state == ao_flight_pad) + pause(AO_MS_TO_TICKS(100)); + } #endif while (ao_report_state == ao_flight_state) ao_sleep(&ao_flight_state);