X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=ao.h;h=fb06df06aeef473fbce7374be20490d92067a1b3;hp=338a40b0a42211b6f84067b09bb276b9515beeb7;hb=e9584e846b9bd7926d61451d32ba5d7a30416f7b;hpb=e45fce7f82d704d677f84c69b0e07588d109d780 diff --git a/ao.h b/ao.h index 338a40b0..fb06df06 100644 --- a/ao.h +++ b/ao.h @@ -259,10 +259,10 @@ ao_led_init(uint8_t enable); /* 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 */ @@ -296,7 +296,7 @@ enum ao_cmd_status { }; 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 @@ -314,8 +314,11 @@ ao_cmd_white(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; }; @@ -459,12 +462,12 @@ struct ao_gps_pos { #define AO_LOG_POS_NONE (~0UL) struct ao_log_record { - uint8_t type; + char type; uint8_t csum; uint16_t tick; union { struct { - uint16_t serial; + int16_t ground_accel; uint16_t flight; } flight; struct { @@ -593,10 +596,10 @@ int16_t 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 @@ -651,11 +654,11 @@ void 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); @@ -698,6 +701,16 @@ ao_gps_print(__xdata struct ao_gps_data *gps_data); void ao_gps_init(void); +/* + * ao_gps_report.c + */ + +void +ao_gps_report(void); + +void +ao_gps_report_init(void); + /* * ao_telemetry.c */ @@ -714,6 +727,7 @@ struct ao_telemetry { /* Set delay between telemetry reports (0 to disable) */ +#define AO_TELEMETRY_INTERVAL_PAD AO_MS_TO_TICKS(1000) #define AO_TELEMETRY_INTERVAL_FLIGHT AO_MS_TO_TICKS(50) #define AO_TELEMETRY_INTERVAL_RECOVER AO_MS_TO_TICKS(1000) @@ -795,5 +809,41 @@ ao_igniter_status(enum ao_igniter igniter); 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; +extern const char ao_version[]; +extern const char ao_manufacturer[]; +extern const char ao_product[]; + +#endif /* _AO_H_ */