#define AO_PANIC_LOG 5 /* Failing to read/write log data */
#define AO_PANIC_CMD 6 /* Too many command sets registered */
#define AO_PANIC_STDIO 7 /* Too many stdio handlers registered */
+#define AO_PANIC_REBOOT 8 /* Reboot failed */
/* Stop the operating system, beeping and blinking the reason */
void
void
ao_cmd_decimal(void);
+uint8_t
+ao_match_word(__code char *word);
+
struct ao_cmds {
char cmd;
void (*func)(void);
void
ao_log_flush(void);
-/* Log dumping API:
- * ao_log_dump_first() - get first log record
- * ao_log_dump_next() - get next log record
+/* We record flight numbers in the first record of
+ * the log. Tasks may wait for this to be initialized
+ * by sleeping on this variable.
*/
-extern __xdata struct ao_log_record ao_log_dump;
+extern __xdata uint16_t ao_flight_number;
/* Retrieve first log record for the current flight */
uint8_t
*/
#define AO_MAX_CALLSIGN 8
-#define AO_TELEMETRY_VERSION 1
+#define AO_TELEMETRY_VERSION 2
struct ao_telemetry {
uint8_t addr;
+ uint16_t flight;
uint8_t flight_state;
int16_t flight_accel;
int16_t ground_accel;