Convert GPS to SiRF binary protocol.
[fw/altos] / src / ao.h
index 20431b98d28080d6a848e3fd789d7cf9c86d05c6..d4df159553352b5da135e973b696ebb5d077042a 100644 (file)
--- a/src/ao.h
+++ b/src/ao.h
@@ -21,6 +21,7 @@
 #include <stdint.h>
 #include <stdio.h>
 #include <string.h>
+#include <stddef.h>
 #include "cc1111.h"
 
 #define TRUE 1
@@ -121,6 +122,10 @@ ao_timer_isr(void) interrupt 9;
 void
 ao_timer_init(void);
 
+/* Initialize the hardware clock. Must be called first */
+void
+ao_clock_init(void);
+
 /*
  * ao_adc.c
  */
@@ -419,14 +424,6 @@ ao_ee_init(void);
  * ao_log.c
  */
 
-/* Structure containing GPS position, either lat or lon */
-
-struct ao_gps_pos {
-       uint8_t degrees;
-       uint8_t minutes;
-       uint16_t minutes_fraction;      /* in units of 1/10000 minutes */
-};
-
 /*
  * The data log is recorded in the eeprom as a sequence
  * of data packets.
@@ -495,8 +492,8 @@ struct ao_log_record {
                        uint8_t         second;
                        uint8_t         flags;
                } gps_time;
-               struct ao_gps_pos gps_latitude;
-               struct ao_gps_pos gps_longitude;
+               int32_t         gps_latitude;
+               int32_t         gps_longitude;
                struct {
                        int16_t         altitude;
                        uint16_t        unused;
@@ -556,7 +553,7 @@ enum ao_flight_state {
        ao_flight_pad = 2,
        ao_flight_boost = 3,
        ao_flight_fast = 4,
-       ao_flight_apogee = 5,
+       ao_flight_coast = 5,
        ao_flight_drogue = 6,
        ao_flight_main = 7,
        ao_flight_landed = 8,
@@ -675,21 +672,14 @@ ao_serial_init(void);
 #define AO_GPS_NUM_SAT_SHIFT   (0)
 
 #define AO_GPS_VALID           (1 << 4)
-#define AO_GPS_LONGITUDE_MASK  (1 << 5)
-#define AO_GPS_LONGITUDE_EAST  (0 << 5)
-#define AO_GPS_LONGITUDE_WEST  (1 << 5)
-
-#define AO_GPS_LATITUDE_MASK   (1 << 6)
-#define AO_GPS_LATITUDE_NORTH  (0 << 6)
-#define AO_GPS_LATITUDE_SOUTH  (1 << 6)
 
 struct ao_gps_data {
        uint8_t                 hour;
        uint8_t                 minute;
        uint8_t                 second;
        uint8_t                 flags;
-       struct ao_gps_pos       latitude;
-       struct ao_gps_pos       longitude;
+       int32_t                 latitude;
+       int32_t                 longitude;
        int16_t                 altitude;
 };