Add AO_GPS_RUNNING state.
[fw/altos] / src / ao.h
index d4df159553352b5da135e973b696ebb5d077042a..85b7825f759fdd73fd3473250933aaee92fa5200 100644 (file)
--- a/src/ao.h
+++ b/src/ao.h
@@ -661,6 +661,12 @@ ao_serial_getchar(void) __critical;
 void
 ao_serial_putchar(char c) __critical;
 
+#define AO_SERIAL_SPEED_4800   0
+#define AO_SERIAL_SPEED_57600  1
+
+void
+ao_serial_set_speed(uint8_t speed);
+
 void
 ao_serial_init(void);
 
@@ -672,15 +678,22 @@ ao_serial_init(void);
 #define AO_GPS_NUM_SAT_SHIFT   (0)
 
 #define AO_GPS_VALID           (1 << 4)
+#define AO_GPS_RUNNING         (1 << 5)
 
 struct ao_gps_data {
        uint8_t                 hour;
        uint8_t                 minute;
        uint8_t                 second;
        uint8_t                 flags;
-       int32_t                 latitude;
-       int32_t                 longitude;
-       int16_t                 altitude;
+       int32_t                 latitude;       /* degrees * 10⁷ */
+       int32_t                 longitude;      /* degrees * 10⁷ */
+       int16_t                 altitude;       /* m */
+       uint16_t                ground_speed;   /* cm/s */
+       uint8_t                 course;         /* degrees / 2 */
+       uint8_t                 hdop;           /* * 5 */
+       int16_t                 climb_rate;     /* cm/s */
+       uint16_t                h_error;        /* m */
+       uint16_t                v_error;        /* m */
 };
 
 extern __xdata uint8_t ao_gps_mutex;