#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))
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 */
/*
uint16_t tick;
union {
struct {
- uint16_t serial;
+ int16_t ground_accel;
uint16_t flight;
} flight;
struct {
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;
struct ao_telemetry {
uint8_t addr;
uint8_t flight_state;
+ int16_t flight_accel;
+ int32_t flight_vel;
+ int16_t flight_pres;
struct ao_adc adc;
struct ao_gps_data gps;
char callsign[AO_MAX_CALLSIGN];
/* 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)
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
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
*
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_ */