Transmit computed ground pressure and acceleration values
[fw/altos] / ao.h
diff --git a/ao.h b/ao.h
index 13497095c450aff3f45e78777ab441c46628efe3..411b950deb23c2e22bd26c2155825863d3609862 100644 (file)
--- a/ao.h
+++ b/ao.h
@@ -23,6 +23,9 @@
 #include <string.h>
 #include "cc1111.h"
 
+#define TRUE 1
+#define FALSE 0
+
 /* Convert a __data pointer into an __xdata pointer */
 #define DATA_TO_XDATA(a)       ((void __xdata *) ((uint8_t) (a) | 0xff00))
 
@@ -44,7 +47,7 @@ struct ao_task {
 
 extern __xdata struct ao_task *__data ao_cur_task;
 
-#define AO_NUM_TASKS           10      /* maximum number of tasks */
+#define AO_NUM_TASKS           16      /* maximum number of tasks */
 #define AO_NO_TASK             0       /* no task id */
 
 /*
@@ -259,10 +262,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 +299,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
@@ -318,7 +321,7 @@ void
 ao_cmd_decimal(void);
 
 struct ao_cmds {
-       uint8_t         cmd;
+       char            cmd;
        void            (*func)(void);
        const char      *help;
 };
@@ -462,12 +465,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 {
@@ -565,6 +568,7 @@ extern __pdata enum ao_flight_state ao_flight_state;
 extern __pdata uint16_t                        ao_flight_tick;
 extern __pdata int16_t                 ao_flight_accel;
 extern __pdata int16_t                 ao_flight_pres;
+extern __pdata int32_t                 ao_flight_vel;
 extern __pdata int16_t                 ao_ground_pres;
 extern __pdata int16_t                 ao_ground_accel;
 extern __pdata int16_t                 ao_min_pres;
@@ -654,11 +658,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);
@@ -720,6 +724,11 @@ ao_gps_report_init(void);
 struct ao_telemetry {
        uint8_t                 addr;
        uint8_t                 flight_state;
+       int16_t                 flight_accel;
+       int16_t                 ground_accel;
+       int32_t                 flight_vel;
+       int16_t                 flight_pres;
+       int16_t                 ground_pres;
        struct ao_adc           adc;
        struct ao_gps_data      gps;
        char                    callsign[AO_MAX_CALLSIGN];
@@ -727,6 +736,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)
 
@@ -774,7 +784,10 @@ void
 ao_monitor(void);
 
 void
-ao_monitor_init(uint8_t led);
+ao_set_monitor(uint8_t monitoring);
+
+void
+ao_monitor_init(uint8_t led, uint8_t monitoring) __reentrant;
 
 /*
  * ao_stdio.c
@@ -832,4 +845,27 @@ ao_config_get(void);
 void
 ao_config_init(void);
 
+/*
+ * ao_rssi.c
+ */
+
+void
+ao_rssi_set(int rssi_value);
+
+void
+ao_rssi_init(uint8_t rssi_led);
+
+/*
+ * 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_ */