From c8fde7e920dba921dfe7816e684ea432d3a0e386 Mon Sep 17 00:00:00 2001 From: Pascal Brisset Date: Fri, 25 May 2007 10:08:55 +0000 Subject: [PATCH] NAV-SOL gps message handling --- conf/flight_plans/versatile.xml | 8 ++------ conf/messages.xml | 7 +++++++ conf/settings/tuning.xml | 4 ++-- conf/telemetry/default.xml | 1 + conf/ubx.xml | 31 +++++++++++++++++++++++++++++++ sw/airborne/ap_downlink.h | 4 ++++ sw/airborne/enose.c | 2 -- sw/airborne/gps.h | 4 ++++ sw/airborne/gps_ubx.c | 9 +++++++++ 9 files changed, 60 insertions(+), 10 deletions(-) diff --git a/conf/flight_plans/versatile.xml b/conf/flight_plans/versatile.xml index 6c55c3030e..8599576e58 100644 --- a/conf/flight_plans/versatile.xml +++ b/conf/flight_plans/versatile.xml @@ -37,11 +37,11 @@ - + - + @@ -53,10 +53,6 @@ - - - - diff --git a/conf/messages.xml b/conf/messages.xml index c9fbd4b355..f5c51d8b5a 100644 --- a/conf/messages.xml +++ b/conf/messages.xml @@ -113,6 +113,13 @@ + + + + + + + diff --git a/conf/settings/tuning.xml b/conf/settings/tuning.xml index af350b709a..554a7f1c77 100644 --- a/conf/settings/tuning.xml +++ b/conf/settings/tuning.xml @@ -64,8 +64,8 @@ - - + + diff --git a/conf/telemetry/default.xml b/conf/telemetry/default.xml index 73cc868df2..2515a5cbff 100644 --- a/conf/telemetry/default.xml +++ b/conf/telemetry/default.xml @@ -25,6 +25,7 @@ + diff --git a/conf/ubx.xml b/conf/ubx.xml index 9c7e5e7afa..5c858e780f 100644 --- a/conf/ubx.xml +++ b/conf/ubx.xml @@ -15,6 +15,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sw/airborne/ap_downlink.h b/sw/airborne/ap_downlink.h index da351bed8a..232254bdd0 100644 --- a/sw/airborne/ap_downlink.h +++ b/sw/airborne/ap_downlink.h @@ -171,5 +171,9 @@ #define PERIODIC_SEND_TUNE_ROLL() DOWNLINK_SEND_TUNE_ROLL(&estimator_p,&estimator_phi, &h_ctl_roll_setpoint); +#ifdef GPS +#define PERIODIC_SEND_GPS_SOL() DOWNLINK_SEND_GPS_SOL(&gps_Pacc, &gps_Sacc, &gps_PDOP, &gps_numSV) +#endif + #endif /* AP_DOWNLINK_H */ diff --git a/sw/airborne/enose.c b/sw/airborne/enose.c index 196d5b374b..35f27216dc 100644 --- a/sw/airborne/enose.c +++ b/sw/airborne/enose.c @@ -61,7 +61,6 @@ void enose_periodic( void ) { enose_conf_requested = FALSE; } else if (enose_status == ENOSE_IDLE) { - LED_OFF(2); enose_status = ENOSE_MEASURING_WR; const uint8_t msg[] = { ENOSE_DATA_ADDR }; memcpy(i2c_buf, msg, sizeof(msg)); @@ -74,7 +73,6 @@ void enose_periodic( void ) { enose_i2c_done = FALSE; } else if (enose_status == ENOSE_MEASURING_RD) { - LED_ON(2); enose_val[0] = (i2c_buf[0]<<8) | i2c_buf[1]; enose_val[1] = (i2c_buf[2]<<8) | i2c_buf[3]; enose_val[2] = (i2c_buf[4]<<8) | i2c_buf[5]; diff --git a/sw/airborne/gps.h b/sw/airborne/gps.h index 19791167ac..cb5860d808 100644 --- a/sw/airborne/gps.h +++ b/sw/airborne/gps.h @@ -52,6 +52,10 @@ extern int16_t gps_course; /* decideg */ extern int32_t gps_utm_east, gps_utm_north; /** cm */ extern uint8_t gps_utm_zone; extern int32_t gps_lat, gps_lon; /* 1e7 deg */ +extern uint16_t gps_PDOP; +extern uint32_t gps_Pacc, gps_Sacc; +extern uint8_t gps_numSV; + extern uint16_t last_gps_msg_t; /** cputime of the last gps message */ diff --git a/sw/airborne/gps_ubx.c b/sw/airborne/gps_ubx.c index f25f1cd050..60fd1ce876 100644 --- a/sw/airborne/gps_ubx.c +++ b/sw/airborne/gps_ubx.c @@ -75,6 +75,10 @@ bool_t gps_pos_available; uint8_t ubx_id, ubx_class; int32_t gps_lat, gps_lon; +uint16_t gps_PDOP; +uint32_t gps_Pacc, gps_Sacc; +uint8_t gps_numSV; + #define UTM_HEM_NORTH 0 #define UTM_HEM_SOUTH 1 @@ -159,6 +163,11 @@ void parse_gps_msg( void ) { gps_itow = UBX_NAV_VELNED_ITOW(ubx_msg_buf); gps_pos_available = TRUE; /* The 3 UBX messages are sent in one rafale */ + } else if (ubx_id == UBX_NAV_SOL_ID) { + gps_PDOP = UBX_NAV_SOL_PDOP(ubx_msg_buf); + gps_Pacc = UBX_NAV_SOL_Pacc(ubx_msg_buf); + gps_Sacc = UBX_NAV_SOL_Sacc(ubx_msg_buf); + gps_numSV = UBX_NAV_SOL_numSV(ubx_msg_buf); } else if (ubx_id == UBX_NAV_SVINFO_ID) { gps_nb_channels = UBX_NAV_SVINFO_NCH(ubx_msg_buf); uint8_t i;