projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add option to beep max height in feet rather than just meters
[fw/altos]
/
src
/
kernel
/
ao_report.c
diff --git
a/src/kernel/ao_report.c
b/src/kernel/ao_report.c
index 26604d1ad4d784a96318dae4e8115327fe702cbc..977cea854ff1f014e0927a25530b34988e2682a8 100644
(file)
--- a/
src/kernel/ao_report.c
+++ b/
src/kernel/ao_report.c
@@
-149,7
+149,7
@@
ao_report_digit(uint8_t digit)
}
static void
}
static void
-ao_report_number(int
16
_t n)
+ao_report_number(int
32
_t n)
{
uint8_t digits[10];
uint8_t ndigits, i;
{
uint8_t digits[10];
uint8_t ndigits, i;
@@
-158,7
+158,7
@@
ao_report_number(int16_t n)
n = 0;
ndigits = 0;
do {
n = 0;
ndigits = 0;
do {
- digits[ndigits++] =
n % 10
;
+ digits[ndigits++] =
(uint8_t) (n % 10)
;
n /= 10;
} while (n);
n /= 10;
} while (n);
@@
-171,7
+171,14
@@
ao_report_number(int16_t n)
static void
ao_report_altitude(void)
{
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
}
#if HAS_BATTERY_REPORT
@@
-200,8
+207,8
@@
ao_report_igniter_ready(enum ao_igniter igniter)
uint8_t
ao_report_igniter(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
@@
-285,6
+292,15
@@
ao_report(void)
while (c-- && ao_flight_state == ao_flight_pad)
pause(AO_MS_TO_TICKS(100));
}
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);
#endif
while (ao_report_state == ao_flight_state)
ao_sleep(&ao_flight_state);