summaryrefslogtreecommitdiff
path: root/src/ao.h
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2009-08-19 00:49:24 -0600
committerBdale Garbee <bdale@gag.com>2009-08-19 00:49:24 -0600
commit4486d9156e19e4280b42bcd422d81d04f2d04a92 (patch)
treed0313710d9040f63c6cb2f5f3d4b11c6208525f7 /src/ao.h
parentdd09f0bc2b950c00f3b489878cd69ad8a003f46c (diff)
parent33edd62992a32b0ec8ca66d879fa300871db5937 (diff)
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos0.5
Diffstat (limited to 'src/ao.h')
-rw-r--r--src/ao.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/ao.h b/src/ao.h
index 85b7825f..27ec010f 100644
--- a/src/ao.h
+++ b/src/ao.h
@@ -458,6 +458,7 @@ ao_ee_init(void);
#define AO_LOG_GPS_LAT 'N'
#define AO_LOG_GPS_LON 'W'
#define AO_LOG_GPS_ALT 'H'
+#define AO_LOG_GPS_SAT 'V'
#define AO_LOG_POS_NONE (~0UL)
@@ -499,6 +500,12 @@ struct ao_log_record {
uint16_t unused;
} gps_altitude;
struct {
+ uint16_t svid;
+ uint8_t state;
+ uint8_t c_n;
+ uint8_t unused;
+ } gps_sat;
+ struct {
uint16_t d0;
uint16_t d1;
} anon;
@@ -696,8 +703,29 @@ struct ao_gps_data {
uint16_t v_error; /* m */
};
+#define SIRF_SAT_STATE_ACQUIRED (1 << 0)
+#define SIRF_SAT_STATE_CARRIER_PHASE_VALID (1 << 1)
+#define SIRF_SAT_BIT_SYNC_COMPLETE (1 << 2)
+#define SIRF_SAT_SUBFRAME_SYNC_COMPLETE (1 << 3)
+#define SIRF_SAT_CARRIER_PULLIN_COMPLETE (1 << 4)
+#define SIRF_SAT_CODE_LOCKED (1 << 5)
+#define SIRF_SAT_ACQUISITION_FAILED (1 << 6)
+#define SIRF_SAT_EPHEMERIS_AVAILABLE (1 << 7)
+
+struct ao_gps_sat_data {
+ uint8_t svid;
+ uint8_t state;
+ uint8_t c_n_1;
+};
+
+struct ao_gps_tracking_data {
+ uint8_t channels;
+ struct ao_gps_sat_data sats[12];
+};
+
extern __xdata uint8_t ao_gps_mutex;
extern __xdata struct ao_gps_data ao_gps_data;
+extern __xdata struct ao_gps_tracking_data ao_gps_tracking_data;
void
ao_gps(void);
@@ -706,6 +734,9 @@ void
ao_gps_print(__xdata struct ao_gps_data *gps_data);
void
+ao_gps_tracking_print(__xdata struct ao_gps_tracking_data *gps_tracking_data);
+
+void
ao_gps_init(void);
/*
@@ -735,6 +766,7 @@ struct ao_telemetry {
struct ao_adc adc;
struct ao_gps_data gps;
char callsign[AO_MAX_CALLSIGN];
+ struct ao_gps_tracking_data gps_tracking;
};
/* Set delay between telemetry reports (0 to disable) */