diff options
author | asanoaozora <fifitaneki@hotmail.com> | 2017-08-22 11:22:42 +0200 |
---|---|---|
committer | asanoaozora <fifitaneki@hotmail.com> | 2017-08-22 11:22:42 +0200 |
commit | 33b7cffdfcf2322f5a7d081a827cbbf3122b098a (patch) | |
tree | 8fe5e8840ece224a67deaa611364db2c791a01ad /src | |
parent | faed34d71ab44536cc077a6a6edf9e6903e40c1f (diff) | |
download | poi-service-33b7cffdfcf2322f5a7d081a827cbbf3122b098a.tar.gz |
GT-3529
missing comments in the franca definition of the mapmatchedposition
interface
Diffstat (limited to 'src')
-rw-r--r-- | src/navigation/navigation-core/mapmatchedposition-plugin/genivi_navigationcore_mapmatchedposition.cxx | 77 | ||||
-rwxr-xr-x | src/navigation/update_third_party.sh | 1 |
2 files changed, 52 insertions, 26 deletions
diff --git a/src/navigation/navigation-core/mapmatchedposition-plugin/genivi_navigationcore_mapmatchedposition.cxx b/src/navigation/navigation-core/mapmatchedposition-plugin/genivi_navigationcore_mapmatchedposition.cxx index 5b6f782..2bb2093 100644 --- a/src/navigation/navigation-core/mapmatchedposition-plugin/genivi_navigationcore_mapmatchedposition.cxx +++ b/src/navigation/navigation-core/mapmatchedposition-plugin/genivi_navigationcore_mapmatchedposition.cxx @@ -129,7 +129,8 @@ class MapMatchedPosition MapMatchedPosition(DBus::Connection &connection) : DBus::ObjectAdaptor(connection, "/org/genivi/navigationcore") { - } + m_position_set=false; + } ::DBus::Struct< uint16_t, uint16_t, uint16_t, std::string > GetVersion() @@ -146,28 +147,51 @@ class MapMatchedPosition GetPosition(const std::vector< int32_t >& valuesToReturn, int32_t& error, std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > >& position) { LOG_INFO_MSG(gCtx,"Get position"); - struct attr attr; - for (int i = 0 ; i < valuesToReturn.size() ; i++) { - switch (valuesToReturn[i]) { - case GENIVI_NAVIGATIONCORE_LATITUDE: - if (tracking_get_attr(tracking, attr_position_coord_geo, &attr, NULL)) - position[GENIVI_NAVIGATIONCORE_LATITUDE]._2=variant_double(attr.u.coord_geo->lat); - break; - case GENIVI_NAVIGATIONCORE_LONGITUDE: - if (tracking_get_attr(tracking, attr_position_coord_geo, &attr, NULL)) - position[GENIVI_NAVIGATIONCORE_LONGITUDE]._2=variant_double(attr.u.coord_geo->lng); - break; - case GENIVI_NAVIGATIONCORE_SPEED: - if (tracking_get_attr(tracking, attr_position_speed, &attr, NULL)) - position[GENIVI_NAVIGATIONCORE_SPEED]._2=variant_double(*attr.u.numd); - break; - case GENIVI_NAVIGATIONCORE_HEADING: - if (tracking_get_attr(tracking, attr_position_direction, &attr, NULL)) - position[GENIVI_NAVIGATIONCORE_HEADING]._2=variant_double(*attr.u.numd); - break; - } - } - error=0; //not implemented yet + if(simulationMode==GENIVI_NAVIGATIONCORE_SIMULATION_STATUS_FIXED_POSITION){ + if(m_position_set){ + for (int i = 0 ; i < valuesToReturn.size() ; i++) { + switch (valuesToReturn[i]) { + case GENIVI_NAVIGATIONCORE_LATITUDE: + position[GENIVI_NAVIGATIONCORE_LATITUDE]=m_position[GENIVI_NAVIGATIONCORE_LATITUDE]; + break; + case GENIVI_NAVIGATIONCORE_LONGITUDE: + position[GENIVI_NAVIGATIONCORE_LONGITUDE]=m_position[GENIVI_NAVIGATIONCORE_LONGITUDE]; + break; + case GENIVI_NAVIGATIONCORE_SPEED: + position[GENIVI_NAVIGATIONCORE_SPEED]=m_position[GENIVI_NAVIGATIONCORE_SPEED]; + break; + case GENIVI_NAVIGATIONCORE_HEADING: + position[GENIVI_NAVIGATIONCORE_HEADING]=m_position[GENIVI_NAVIGATIONCORE_HEADING]; + break; + } + } + error=GENIVI_NAVIGATIONCORE_OK; + } + else error=GENIVI_NAVIGATIONCORE_NO_POSITION; //setposition has not been invoked, so vehicle is nowhere + }else{ + struct attr attr; + for (int i = 0 ; i < valuesToReturn.size() ; i++) { + switch (valuesToReturn[i]) { + case GENIVI_NAVIGATIONCORE_LATITUDE: + if (tracking_get_attr(tracking, attr_position_coord_geo, &attr, NULL)) + position[GENIVI_NAVIGATIONCORE_LATITUDE]._2=variant_double(attr.u.coord_geo->lat); + break; + case GENIVI_NAVIGATIONCORE_LONGITUDE: + if (tracking_get_attr(tracking, attr_position_coord_geo, &attr, NULL)) + position[GENIVI_NAVIGATIONCORE_LONGITUDE]._2=variant_double(attr.u.coord_geo->lng); + break; + case GENIVI_NAVIGATIONCORE_SPEED: + if (tracking_get_attr(tracking, attr_position_speed, &attr, NULL)) + position[GENIVI_NAVIGATIONCORE_SPEED]._2=variant_double(*attr.u.numd); + break; + case GENIVI_NAVIGATIONCORE_HEADING: + if (tracking_get_attr(tracking, attr_position_direction, &attr, NULL)) + position[GENIVI_NAVIGATIONCORE_HEADING]._2=variant_double(*attr.u.numd); + break; + } + } + error=GENIVI_NAVIGATIONCORE_OK; + } } void @@ -223,8 +247,9 @@ class MapMatchedPosition void SetPosition(const uint32_t& sessionHandle, const std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > >& position) { - throw DBus::ErrorNotSupported("Not yet supported"); - } + m_position_set=true; + m_position=position; + } void StartSimulation(const uint32_t& sessionHandle) @@ -288,6 +313,8 @@ class MapMatchedPosition return vehicle_speed.u.num*4/40; } + bool m_position_set; + std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > m_position; }; static void diff --git a/src/navigation/update_third_party.sh b/src/navigation/update_third_party.sh index a8b0dab..784f8b6 100755 --- a/src/navigation/update_third_party.sh +++ b/src/navigation/update_third_party.sh @@ -1,6 +1,5 @@ #!/bin/bash -build_option="" positioning_version='9725fe1f553197042d6445997690d452a73490c0' navit_version='28478e7f26c1a0eedc06fb4765e2f736079c6f0c' |