diff options
author | Helmut Schmidt <Helmut.3.Schmidt@continental-corporation.com> | 2015-11-04 12:06:26 +0100 |
---|---|---|
committer | Helmut Schmidt <Helmut.3.Schmidt@continental-corporation.com> | 2015-11-04 12:06:26 +0100 |
commit | 5a959c2e1d28628a653ca6461ddfc9aec9bbd5ce (patch) | |
tree | ec6c049abed752bd4ee7f319714d38502e0f7de2 | |
parent | 64b6cdb911fc26c81fd4c31537c615464df4a96c (diff) | |
download | positioning-5a959c2e1d28628a653ca6461ddfc9aec9bbd5ce.tar.gz |
EnhancedPositionService Configuration interface: PoC improvement to demonstrate link to GNSS API
-rw-r--r-- | enhanced-position-service/dbus/src/configuration.cpp | 28 | ||||
-rw-r--r-- | gnss-service/src/gnss-use-nmea.cpp | 20 |
2 files changed, 36 insertions, 12 deletions
diff --git a/enhanced-position-service/dbus/src/configuration.cpp b/enhanced-position-service/dbus/src/configuration.cpp index b39eb94..0f6eca4 100644 --- a/enhanced-position-service/dbus/src/configuration.cpp +++ b/enhanced-position-service/dbus/src/configuration.cpp @@ -117,10 +117,34 @@ void Configuration::SetProperty(const std::string& name, const ::DBus::Variant& if(name == "SatelliteSystem") { + uint32_t requestedSystems = value; //magic conversion variant -> uint32_t + uint32_t activateSystems = 0; + if (requestedSystems & GENIVI_ENHANCEDPOSITIONSERVICE_GPS) + { + activateSystems |= GNSS_SYSTEM_GPS; + } + if (requestedSystems & GENIVI_ENHANCEDPOSITIONSERVICE_GLONASS) + { + activateSystems |= GNSS_SYSTEM_GLONASS; + } + if (requestedSystems & GENIVI_ENHANCEDPOSITIONSERVICE_GALILEO) + { + activateSystems |= GNSS_SYSTEM_GALILEO; + } + if (requestedSystems & GENIVI_ENHANCEDPOSITIONSERVICE_GPS) + { + activateSystems |= GNSS_SYSTEM_BEIDOU; + } + gnssConfigGNSSSystems(activateSystems); + + //For a real implementation the property should only be changed + //when the the configuration request has become effective as reported + //by the TGNSSPosition.activatedSystems from the GNSSPositionCallback. + //As currently the GNSS PoC has only dummy implementations of + //gnssConfigGNSSSystems(), the property change is triggered immediately + //for demonstration purposes. mSatelliteSystem = value; - LOG_INFO(gCtx,"SatelliteSystem = %d", mSatelliteSystem); - PropertyChanged("SatelliteSystem", value); } diff --git a/gnss-service/src/gnss-use-nmea.cpp b/gnss-service/src/gnss-use-nmea.cpp index 721c3b3..a817d48 100644 --- a/gnss-service/src/gnss-use-nmea.cpp +++ b/gnss-service/src/gnss-use-nmea.cpp @@ -131,45 +131,45 @@ bool extractPosition(const GPS_DATA& gps_data, uint64_t timestamp, TGNSSPosition } } if (gps_data.valid & GPS_DATA_SPEED) - { + { gnss_pos.hSpeed = gps_data.speed; gnss_pos.validityBits |= GNSS_POSITION_HSPEED_VALID; } gnss_pos.vSpeed = 9999; //not available if (gps_data.valid & GPS_DATA_SPEED) - { + { gnss_pos.heading = gps_data.course; gnss_pos.validityBits |= GPS_DATA_COURSE; } if (gps_data.valid & GPS_DATA_PDOP) - { + { gnss_pos.pdop = gps_data.pdop; gnss_pos.validityBits |= GNSS_POSITION_PDOP_VALID; } if (gps_data.valid & GPS_DATA_HDOP) - { + { gnss_pos.hdop = gps_data.hdop; gnss_pos.validityBits |= GNSS_POSITION_HDOP_VALID; } if (gps_data.valid & GPS_DATA_VDOP) - { + { gnss_pos.vdop = gps_data.vdop; gnss_pos.validityBits |= GNSS_POSITION_VDOP_VALID; } if (gps_data.valid & GPS_DATA_USAT) - { + { gnss_pos.usedSatellites = gps_data.usat; gnss_pos.validityBits |= GNSS_POSITION_USAT_VALID; } gnss_pos.trackedSatellites = 9999; //not available gnss_pos.visibleSatellites = 9999; //not available if (gps_data.valid & GPS_DATA_HACC) - { + { gnss_pos.sigmaHPosition = gps_data.hacc; gnss_pos.validityBits |= GNSS_POSITION_SHPOS_VALID; } if (gps_data.valid & GPS_DATA_HACC) - { + { gnss_pos.sigmaAltitude = gps_data.vacc; gnss_pos.validityBits |= GNSS_POSITION_SALT_VALID; } @@ -177,11 +177,11 @@ bool extractPosition(const GPS_DATA& gps_data, uint64_t timestamp, TGNSSPosition gnss_pos.sigmaHSpeed = 9999; //not available gnss_pos.sigmaVSpeed = 9999; //not available gnss_pos.sigmaHeading = 9999; //not available - + + gnss_pos.validityBits |= GNSS_POSITION_STAT_VALID; //always valid gnss_pos.fixStatus = GNSS_FIX_STATUS_NO; if (gps_data.valid & GPS_DATA_FIX2D) { - gnss_pos.validityBits |= GNSS_POSITION_STAT_VALID; if (gps_data.fix2d) { gnss_pos.fixStatus = GNSS_FIX_STATUS_2D; |