/* Put one character to the USB output queue */
void
-ao_usb_putchar(uint8_t c);
+ao_usb_putchar(char c);
/* Get one character from the USB input queue */
-uint8_t
+char
ao_usb_getchar(void);
/* Flush the USB output queue */
};
extern __xdata uint16_t ao_cmd_lex_i;
-extern __xdata uint8_t ao_cmd_lex_c;
+extern __xdata char ao_cmd_lex_c;
extern __xdata enum ao_cmd_status ao_cmd_status;
void
void
ao_cmd_hex(void);
+void
+ao_cmd_decimal(void);
+
struct ao_cmds {
- uint8_t cmd;
+ char cmd;
void (*func)(void);
const char *help;
};
#define AO_LOG_POS_NONE (~0UL)
struct ao_log_record {
- uint8_t type;
+ char type;
uint8_t csum;
uint16_t tick;
union {
ao_pres_to_altitude(int16_t pres) __reentrant;
int16_t
-ao_temp_to_dC(int16_t temp) __reentrant;
+ao_altitude_to_pres(int16_t alt) __reentrant;
int16_t
-ao_accel_to_cm_per_s2(int16_t accel) __reentrant;
+ao_temp_to_dC(int16_t temp) __reentrant;
/*
* ao_dbg.c
ao_serial_tx1_isr(void) interrupt 14;
#endif
-uint8_t
+char
ao_serial_getchar(void) __critical;
void
-ao_serial_putchar(uint8_t c) __critical;
+ao_serial_putchar(char c) __critical;
void
ao_serial_init(void);
void
ao_gps_init(void);
+/*
+ * ao_gps_report.c
+ */
+
+void
+ao_gps_report(void);
+
+void
+ao_gps_report_init(void);
+
/*
* ao_telemetry.c
*/
void
ao_igniter_init(void);
-#endif /* _AO_H_ */
+/*
+ * ao_config.c
+ */
+
+#define AO_CONFIG_MAJOR 1
+#define AO_CONFIG_MINOR 0
+
+struct ao_config {
+ uint8_t major;
+ uint8_t minor;
+ uint16_t main_deploy;
+ int16_t accel_zero_g;
+ uint8_t radio_channel;
+ char callsign[AO_MAX_CALLSIGN + 1];
+};
+extern __xdata struct ao_config ao_config;
+
+void
+ao_config_get(void);
+
+void
+ao_config_init(void);
+
+/*
+ * ao_product.c
+ *
+ * values which need to be defined for
+ * each instance of a product
+ */
+
+extern const uint8_t ao_usb_descriptors [];
+extern const uint16_t ao_serial_number;
+
+#endif /* _AO_H_ */