From e5ca71052a80321590b14090b856f84344759054 Mon Sep 17 00:00:00 2001 From: Jan NIJS Date: Sat, 17 Dec 2016 00:04:44 +0100 Subject: [PATCH] LP-452 Added Galileo as a GNSS configuration option to the GCS. System -> Settings -> GPSSettings -> UbxGNSSMode The options GPS+Galileo and GPS+GLONASS+Galileo have been added. Also corrected PRN mask for EGNOS SBAS information. Active PRN: 120 & 136 , 123 Ref: https://egnos-user-support.essp-sas.eu/new_egnos_ops/index.php --- flight/modules/GPS/GPS.c | 18 ++++++++++++++++++ flight/modules/GPS/inc/UBX.h | 5 +++-- flight/modules/GPS/inc/ubx_autoconfig.h | 1 + flight/modules/GPS/ubx_autoconfig.c | 7 +++++++ shared/uavobjectdefinition/gpssettings.xml | 2 +- 5 files changed, 30 insertions(+), 3 deletions(-) diff --git a/flight/modules/GPS/GPS.c b/flight/modules/GPS/GPS.c index 305fb7148..dfc2ac2c6 100644 --- a/flight/modules/GPS/GPS.c +++ b/flight/modules/GPS/GPS.c @@ -727,31 +727,49 @@ void updateGpsSettings(__attribute__((unused)) UAVObjEvent *ev) newconfig.enableGPS = true; newconfig.enableGLONASS = true; newconfig.enableBeiDou = false; + newconfig.enableGalileo = false; break; case GPSSETTINGS_UBXGNSSMODE_GLONASS: newconfig.enableGPS = false; newconfig.enableGLONASS = true; newconfig.enableBeiDou = false; + newconfig.enableGalileo = false; break; case GPSSETTINGS_UBXGNSSMODE_GPS: newconfig.enableGPS = true; newconfig.enableGLONASS = false; newconfig.enableBeiDou = false; + newconfig.enableGalileo = false; break; case GPSSETTINGS_UBXGNSSMODE_GPSBEIDOU: newconfig.enableGPS = true; newconfig.enableGLONASS = false; newconfig.enableBeiDou = true; + newconfig.enableGalileo = false; break; case GPSSETTINGS_UBXGNSSMODE_GLONASSBEIDOU: newconfig.enableGPS = false; newconfig.enableGLONASS = true; newconfig.enableBeiDou = true; + newconfig.enableGalileo = false; + break; + case GPSSETTINGS_UBXGNSSMODE_GPSGALILEO: + newconfig.enableGPS = true; + newconfig.enableGLONASS = false; + newconfig.enableBeiDou = false; + newconfig.enableGalileo = true; + break; + case GPSSETTINGS_UBXGNSSMODE_GPSGLONASSGALILEO: + newconfig.enableGPS = true; + newconfig.enableGLONASS = true; + newconfig.enableBeiDou = false; + newconfig.enableGalileo = true; break; default: newconfig.enableGPS = false; newconfig.enableGLONASS = false; newconfig.enableBeiDou = false; + newconfig.enableGalileo = false; break; } diff --git a/flight/modules/GPS/inc/UBX.h b/flight/modules/GPS/inc/UBX.h index 4615a4a15..f622ea87a 100644 --- a/flight/modules/GPS/inc/UBX.h +++ b/flight/modules/GPS/inc/UBX.h @@ -460,8 +460,8 @@ struct UBX_CFG_CFG { // ------------------------------------10987654321098765432109876543210 // WAAS 122, 133, 134, 135, 138---------|---------|---------|---------| #define UBX_CFG_SBAS_SCANMODE1_WAAS 0b00000000000001001110000000000100 -// EGNOS 120, 124, 126, 131-------------|---------|---------|---------| -#define UBX_CFG_SBAS_SCANMODE1_EGNOS 0b00000000000000000000100001010001 +// EGNOS 120, 123, 136------------------|---------|---------|---------| +#define UBX_CFG_SBAS_SCANMODE1_EGNOS 0b00000000000000010000000000001001 // MSAS 129, 137------------------------|---------|---------|---------| #define UBX_CFG_SBAS_SCANMODE1_MSAS 0b00000000000000100000001000000000 // GAGAN 127, 128-----------------------|---------|---------|---------| @@ -485,6 +485,7 @@ struct UBX_CFG_SBAS { #define UBX_CFG_GNSS_FLAGS_QZSS_L1CA 0x010000 #define UBX_CFG_GNSS_FLAGS_QZSS_L1SAIF 0x040000 #define UBX_CFG_GNSS_FLAGS_GLONASS_L1OF 0x010000 +#define UBX_CFG_GNSS_FLAGS_GALILEO_E1 0x010000 #define UBX_CFG_GNSS_NUMCH_VER7 22 #define UBX_CFG_GNSS_NUMCH_VER8 32 diff --git a/flight/modules/GPS/inc/ubx_autoconfig.h b/flight/modules/GPS/inc/ubx_autoconfig.h index 8578f1d6b..44045840c 100644 --- a/flight/modules/GPS/inc/ubx_autoconfig.h +++ b/flight/modules/GPS/inc/ubx_autoconfig.h @@ -102,6 +102,7 @@ typedef struct { bool enableGPS; bool enableGLONASS; bool enableBeiDou; + bool enableGalileo; } ubx_autoconfig_settings_t; // Sent messages for configuration support diff --git a/flight/modules/GPS/ubx_autoconfig.c b/flight/modules/GPS/ubx_autoconfig.c index 9cfb079d3..e4be2cda8 100644 --- a/flight/modules/GPS/ubx_autoconfig.c +++ b/flight/modules/GPS/ubx_autoconfig.c @@ -397,6 +397,13 @@ static void config_gnss(uint16_t *bytes_to_send) status->working_packet.message.payload.cfg_gnss.cfgBlocks[i].resTrkCh = 8; } break; + case UBX_GNSS_ID_GALILEO: + if (status->currentSettings.enableGalileo) { + status->working_packet.message.payload.cfg_gnss.cfgBlocks[i].flags = UBX_CFG_GNSS_FLAGS_ENABLED | UBX_CFG_GNSS_FLAGS_GALILEO_E1; + status->working_packet.message.payload.cfg_gnss.cfgBlocks[i].maxTrkCh = 10; + status->working_packet.message.payload.cfg_gnss.cfgBlocks[i].resTrkCh = 8; + } + break; default: break; } diff --git a/shared/uavobjectdefinition/gpssettings.xml b/shared/uavobjectdefinition/gpssettings.xml index 0e0be02c9..c5b28c3dc 100644 --- a/shared/uavobjectdefinition/gpssettings.xml +++ b/shared/uavobjectdefinition/gpssettings.xml @@ -18,7 +18,7 @@ - +