diff options
author | asanoaozora <fifitaneki@hotmail.com> | 2017-03-07 18:08:49 +0100 |
---|---|---|
committer | asanoaozora <fifitaneki@hotmail.com> | 2017-03-07 18:08:49 +0100 |
commit | f4eb180d82ff21f6a1074a3258cbe6a27298c193 (patch) | |
tree | dfa4136956881e6f5e218d376cc70d8159888d10 | |
parent | 8bd9324e5e9ad4b97ea26f066ec8aea20729a95c (diff) | |
download | navigation-f4eb180d82ff21f6a1074a3258cbe6a27298c193.tar.gz |
add service files for running code in GDP - fix some bugs
23 files changed, 320 insertions, 214 deletions
diff --git a/src/clone_and_build.sh b/src/clone_and_build.sh index 8158b46..01b6661 100755 --- a/src/clone_and_build.sh +++ b/src/clone_and_build.sh @@ -1,9 +1,9 @@ #!/bin/bash build_option="" -navigation_version='07095c495f1c088522e103846448651249d4c324' -positioning_version='57345f36fa6095ecb6d7f7998a06abafbcd90a87' -navit_version='5607f355e77250cebd5326a7c7959eb07c12adc2' +navigation_version='f7ab563cd23182dcedaa7509b1ae66774addf181' +positioning_version='9725fe1f553197042d6445997690d452a73490c0' +navit_version='995cec54c8682fbabfb4f912b6156ce0b5b43436' echo "version of navigation is: $navigation_version" echo "version of positioning is: $positioning_version" diff --git a/src/fuel-stop-advisor/fuel_stop_advisor.service b/src/fuel-stop-advisor/fuel_stop_advisor.service new file mode 100644 index 0000000..718023f --- /dev/null +++ b/src/fuel-stop-advisor/fuel_stop_advisor.service @@ -0,0 +1,14 @@ +# fuel_stop_advisor fsa systemd service unit file +# + +[Unit] +Description=Fuel Stop Advisor Service for FSA configuration file +Requires=dbus.service ambd_fsa.service +After=ambd_fsa.service + +[Service] +Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/dbus/user_bus_socket +ExecStart=/usr/bin/fuel-stop-advisor + +[Install] +WantedBy=default.target diff --git a/src/hmi/qml/Core/genivi-capi.js b/src/hmi/qml/Core/genivi-capi.js index 487961a..299e1d2 100644 --- a/src/hmi/qml/Core/genivi-capi.js +++ b/src/hmi/qml/Core/genivi-capi.js @@ -56,6 +56,7 @@ var translations=new Array; var simulationMode=false;// simulation mode off by default var showroom=false; //showroom off by default +var autoguidance=false; //no automatic display route on guidance by default var guidance_activated=false; var route_calculated=false; @@ -68,8 +69,6 @@ var entrydest=null; var entrycriterion; var entryselectedentry; -var entrycancel = false; //set to true when back button is pushed without any selection - var roadPreferenceList=new Object; roadPreferenceList[NAVIGATIONCORE_FERRY]=NAVIGATIONCORE_AVOID; roadPreferenceList[NAVIGATIONCORE_TOLL_ROADS]=NAVIGATIONCORE_AVOID; @@ -164,7 +163,7 @@ function dump(prefix,args) function hookContext() { - console.log("Routing: ",route_calculated," Guidance: ",guidance_activated); + console.log("Routing: ",route_calculated," Guidance: ",guidance_activated," Simulation: ",simulationMode); } //Manage the historyOfLastEnteredLocation @@ -419,7 +418,7 @@ function navigationcore_session(par) { function navigationcore_session_clear(par) { if (g_nav_session[1]) { - var res=navigationcore_session_message(par,"deleteSession", [g_nav_session]); + var res=navigationcore_session_message(par,"deleteSession", g_nav_session); g_nav_session[1]=0; } } diff --git a/src/hmi/qml/Core/genivi-origin.js b/src/hmi/qml/Core/genivi-origin.js index ea897b1..52c4f53 100644 --- a/src/hmi/qml/Core/genivi-origin.js +++ b/src/hmi/qml/Core/genivi-origin.js @@ -56,6 +56,7 @@ var translations=new Array; var simulationMode=false;// simulation mode off by default var showroom=false; //showroom off by default +var autoguidance=false; //no automatic display route on guidance by default var guidance_activated=false; var route_calculated=false; @@ -68,8 +69,6 @@ var entrydest=null; var entrycriterion; var entryselectedentry; -var entrycancel = false; //set to true when back button is pushed without any selection - var roadPreferenceList=new Object; roadPreferenceList[NAVIGATIONCORE_FERRY]=NAVIGATIONCORE_AVOID; roadPreferenceList[NAVIGATIONCORE_TOLL_ROADS]=NAVIGATIONCORE_AVOID; @@ -164,7 +163,7 @@ function dump(prefix,args) function hookContext() { - console.log("Routing: ",route_calculated," Guidance: ",guidance_activated); + console.log("Routing: ",route_calculated," Guidance: ",guidance_activated," Simulation: ",simulationMode); } //Manage the historyOfLastEnteredLocation @@ -419,7 +418,7 @@ function navigationcore_session(par) { function navigationcore_session_clear(par) { if (g_nav_session[1]) { - var res=navigationcore_session_message(par,"DeleteSession", [g_nav_session]); + var res=navigationcore_session_message(par,"DeleteSession", g_nav_session); g_nav_session[1]=0; } } diff --git a/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppBrowseMapSimulation.xcf b/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppBrowseMapSimulation.xcf Binary files differindex 41b1df3..5e3c8f1 100755 --- a/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppBrowseMapSimulation.xcf +++ b/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppBrowseMapSimulation.xcf diff --git a/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppPOI.xcf b/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppPOI.xcf Binary files differindex 6b52ab0..f3cd72a 100644 --- a/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppPOI.xcf +++ b/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppPOI.xcf diff --git a/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSearch.xcf b/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSearch.xcf Binary files differindex 1a9f346..6924589 100644 --- a/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSearch.xcf +++ b/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSearch.xcf diff --git a/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSettings.xcf b/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSettings.xcf Binary files differindex ccfcc5d..682d348 100644 --- a/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSettings.xcf +++ b/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSettings.xcf diff --git a/src/hmi/qml/Core/referenceHMI.tar.gz b/src/hmi/qml/Core/referenceHMI.tar.gz Binary files differindex 6ba5255..f54ba77 100644 --- a/src/hmi/qml/Core/referenceHMI.tar.gz +++ b/src/hmi/qml/Core/referenceHMI.tar.gz diff --git a/src/hmi/qml/Core/translations/deu_DEU.js b/src/hmi/qml/Core/translations/deu_DEU.js index 5d0c10a..309f12a 100644 --- a/src/hmi/qml/Core/translations/deu_DEU.js +++ b/src/hmi/qml/Core/translations/deu_DEU.js @@ -166,3 +166,4 @@ translations["Cancel"]="CANCEL"; translations["Quit"]="QUIT"; translations["Showroom"]="SHOWROOM"; +translations["Autoguidance"]="AUTOGUIDE"; diff --git a/src/hmi/qml/Core/translations/eng_USA.js b/src/hmi/qml/Core/translations/eng_USA.js index fbbedbb..7954a73 100644 --- a/src/hmi/qml/Core/translations/eng_USA.js +++ b/src/hmi/qml/Core/translations/eng_USA.js @@ -166,3 +166,4 @@ translations["Cancel"]="CANCEL"; translations["Quit"]="QUIT"; translations["Showroom"]="SHOWROOM"; +translations["Autoguidance"]="AUTOGUIDE"; diff --git a/src/hmi/qml/Core/translations/fra_FRA.js b/src/hmi/qml/Core/translations/fra_FRA.js index e61780d..4e7f240 100644 --- a/src/hmi/qml/Core/translations/fra_FRA.js +++ b/src/hmi/qml/Core/translations/fra_FRA.js @@ -167,3 +167,4 @@ translations["Cancel"]="ANNUL"; translations["Quit"]="QUITTER"; translations["Showroom"]="SHOWROOM"; +translations["Autoguidance"]="AUTOGUIDE"; diff --git a/src/hmi/qml/Core/translations/jpn_JPN.js b/src/hmi/qml/Core/translations/jpn_JPN.js index ae1bce0..b08d7d3 100644 --- a/src/hmi/qml/Core/translations/jpn_JPN.js +++ b/src/hmi/qml/Core/translations/jpn_JPN.js @@ -166,5 +166,6 @@ translations["Cancel"]="キャンセル"; translations["Quit"]="QUIT"; translations["Showroom"]="SHOWROOM"; +translations["Autoguidance"]="AUTOGUIDE"; diff --git a/src/hmi/qml/NavigationApp.qml b/src/hmi/qml/NavigationApp.qml index 96eee67..8df2a5d 100644 --- a/src/hmi/qml/NavigationApp.qml +++ b/src/hmi/qml/NavigationApp.qml @@ -57,10 +57,23 @@ ApplicationWindow { } Component.onCompleted: { + //set persistent data Genivi.setlang("eng","USA","Latn"); //set to english US Genivi.setDefaultPosition(46.202038,6.146845,19); // (rue Jean Calvin Genève) Genivi.setDefaultAddress("Switzerland","Lausanne","Rue de Midi","8"); // preferred address + + //configure the middleware Genivi.navigationcore_configuration_SetLocale(dbusIf,Genivi.g_language,Genivi.g_country,Genivi.g_script); + + //launch the map viewer + Genivi.mapviewer_handle(dbusIf,width,height,Genivi.MAPVIEWER_MAIN_MAP); + + //launch the HMI load("NavigationAppMain"); } + + Component.onDestruction: { + //release the map viewer + Genivi.mapviewer_handle_clear(dbusIf); + } } diff --git a/src/hmi/qml/NavigationAppBrowseMap.qml b/src/hmi/qml/NavigationAppBrowseMap.qml index 6b5fee9..1810bf2 100644 --- a/src/hmi/qml/NavigationAppBrowseMap.qml +++ b/src/hmi/qml/NavigationAppBrowseMap.qml @@ -192,25 +192,16 @@ NavigationAppHMIMenu { function simulationStatusChanged(args) { Genivi.hookSignal("simulationStatusChanged"); - if (args[1] != Genivi.NAVIGATIONCORE_SIMULATION_STATUS_NO_SIMULATION) + if (args[1] == Genivi.NAVIGATIONCORE_SIMULATION_STATUS_PAUSED || args[1] == Genivi.NAVIGATIONCORE_SIMULATION_STATUS_FIXED_POSITION) { - on_off.setState("ON"); - if (args[1] == Genivi.NAVIGATIONCORE_SIMULATION_STATUS_PAUSED || args[1] == Genivi.NAVIGATIONCORE_SIMULATION_STATUS_FIXED_POSITION) - { - simu_mode.setState("PAUSE"); - } - else - { - if (args[1] == Genivi.NAVIGATIONCORE_SIMULATION_STATUS_RUNNING) - { - simu_mode.setState("PLAY"); - } - } + simu_mode.setState("PAUSE"); } else { - on_off.setState("OFF"); - simu_mode.setState("FREE"); + if (args[1] == Genivi.NAVIGATIONCORE_SIMULATION_STATUS_RUNNING) + { + simu_mode.setState("PLAY"); + } } } @@ -446,7 +437,7 @@ NavigationAppHMIMenu { updateMapViewer(); } - function toggleSplit() + function toggleSplit() //split not tested yet { var displayedRoutes=Genivi.mapviewer_GetDisplayedRoutes(dbusIf); var mapViewTheme=Genivi.mapviewer_GetMapViewTheme(dbusIf); @@ -482,7 +473,7 @@ NavigationAppHMIMenu { updateMapViewer(); } - function disableSplit() + function disableSplit() //split not tested yet { if (Genivi.g_mapviewer_handle2) { toggleSplit(); @@ -517,8 +508,8 @@ NavigationAppHMIMenu { west.disabled=false; exitSettings.visible=true; exitSettings.disabled=false; - split.visible=true; - split.disabled=false; + split.visible=false; //split not tested yet + split.disabled=true; //split not tested yet perspective.visible=true; perspective.disabled=false; daynight.visible=true; @@ -567,25 +558,16 @@ NavigationAppHMIMenu { function updateSimulation() { var res=Genivi.mapmatchedposition_GetSimulationStatus(dbusIf); - if (res[1] != Genivi.NAVIGATIONCORE_SIMULATION_STATUS_NO_SIMULATION) + if (res[1] == Genivi.NAVIGATIONCORE_SIMULATION_STATUS_PAUSED || res[1] == Genivi.NAVIGATIONCORE_SIMULATION_STATUS_FIXED_POSITION) { - on_off.setState("ON"); - if (res[1] == Genivi.NAVIGATIONCORE_SIMULATION_STATUS_PAUSED || res[1] == Genivi.NAVIGATIONCORE_SIMULATION_STATUS_FIXED_POSITION) - { - simu_mode.setState("PAUSE"); - } - else - { - if (res[1] == Genivi.NAVIGATIONCORE_SIMULATION_STATUS_RUNNING) - { - simu_mode.setState("PLAY"); - } - } + simu_mode.setState("PAUSE"); } else { - on_off.setState("OFF"); - simu_mode.setState("FREE"); + if (res[1] == Genivi.NAVIGATIONCORE_SIMULATION_STATUS_RUNNING) + { + simu_mode.setState("PLAY"); + } } var res1=Genivi.mapmatchedposition_GetSimulationSpeed(dbusIf); @@ -773,12 +755,11 @@ NavigationAppHMIMenu { function stopSimulation() { - Genivi.mapmatchedposition_SetSimulationMode(dbusIf,false); + Genivi.mapmatchedposition_PauseSimulation(dbusIf); } function startSimulation() { - Genivi.mapmatchedposition_SetSimulationMode(dbusIf,true); Genivi.mapmatchedposition_StartSimulation(dbusIf); } @@ -812,8 +793,6 @@ NavigationAppHMIMenu { speed_down.disabled=false; speed_up.visible=true; speed_up.disabled=false; - on_off.visible=true; - on_off.disabled=false; simu_mode.visible=true; simu_mode.disabled=true; speedUnit.visible=true; @@ -828,8 +807,6 @@ NavigationAppHMIMenu { speed_down.disabled=true; speed_up.visible=false; speed_up.disabled=true; - on_off.visible=false; - on_off.disabled=true; simu_mode.visible=false; simu_mode.disabled=true; speedUnit.visible=false; @@ -1199,7 +1176,7 @@ NavigationAppHMIMenu { } StdButton { source:StyleSheetSimulation.speed_up_popup[Constants.SOURCE]; x:StyleSheetSimulation.speed_up_popup[Constants.X]; y:StyleSheetSimulation.speed_up_popup[Constants.Y]; width:StyleSheetSimulation.speed_up_popup[Constants.WIDTH]; height:StyleSheetSimulation.speed_up_popup[Constants.HEIGHT]; - id:speed_up; disabled:false; next:on_off; prev:speed_down; + id:speed_up; disabled:false; next:simu_mode; prev:speed_down; onClicked: { if (speedValueSent < 7) @@ -1210,40 +1187,8 @@ NavigationAppHMIMenu { } } StdButton { - x:StyleSheetSimulation.simulation_on_popup[Constants.X]; y:StyleSheetSimulation.simulation_on_popup[Constants.Y]; width:StyleSheetSimulation.simulation_on_popup[Constants.WIDTH]; height:StyleSheetSimulation.simulation_on_popup[Constants.HEIGHT]; - id:on_off; next:simu_mode; prev:speed_up; disabled:false; - property int status: 1; //by default simulation stopped - function setState(name) - { - if (name=="ON") - { - status=1; - source=StyleSheetSimulation.simulation_off_popup[Constants.SOURCE]; - } - else - { - status=0; - source=StyleSheetSimulation.simulation_on_popup[Constants.SOURCE]; - } - } - onClicked: - { - switch (status) - { - case 0: //start the simulation - startSimulation(); - break; - case 1: //stop the simulation - stopSimulation(); - break; - default: - break; - } - } - } - StdButton { x:StyleSheetSimulation.play_popup[Constants.X]; y:StyleSheetSimulation.play_popup[Constants.Y]; width:StyleSheetSimulation.play_popup[Constants.WIDTH]; height:StyleSheetSimulation.play_popup[Constants.HEIGHT]; - id:simu_mode; next:speed_down; prev:on_off; disabled:false; + id:simu_mode; next:speed_down; prev:speed_up; disabled:false; property int status: 0; function setState(name) { @@ -1440,7 +1385,7 @@ NavigationAppHMIMenu { StdButton { source:StyleSheetSettings.split[Constants.SOURCE]; x:StyleSheetSettings.split[StyleSheetSettings.X]; y:StyleSheetSettings.split[StyleSheetSettings.Y]; width:StyleSheetSettings.split[StyleSheetSettings.WIDTH]; height:StyleSheetSettings.split[StyleSheetSettings.HEIGHT];textColor:StyleSheetSettings.splitText[StyleSheetSettings.TEXTCOLOR]; pixelSize:StyleSheetSettings.splitText[StyleSheetSettings.PIXELSIZE]; id:split; text:Genivi.gettext("Split"); next:perspective; prev:west; - onClicked: {toggleSplit();} + onClicked: {toggleSplit();} //split not tested yet } StdButton { source:StyleSheetSettings.perspective[Constants.SOURCE]; x:StyleSheetSettings.perspective[StyleSheetSettings.X]; y:StyleSheetSettings.perspective[StyleSheetSettings.Y]; width:StyleSheetSettings.perspective[StyleSheetSettings.WIDTH]; height:StyleSheetSettings.perspective[StyleSheetSettings.HEIGHT];textColor:StyleSheetSettings.perspectiveText[StyleSheetSettings.TEXTCOLOR]; pixelSize:StyleSheetSettings.perspectiveText[StyleSheetSettings.PIXELSIZE]; @@ -1461,7 +1406,6 @@ NavigationAppHMIMenu { Component.onCompleted: { connectSignals(); - Genivi.mapviewer_handle(dbusIf,menu.width,menu.height,Genivi.MAPVIEWER_MAIN_MAP); hideMapSettings(); if (Genivi.data['display_on_map']==='show_route') { @@ -1490,6 +1434,7 @@ NavigationAppHMIMenu { showGuidance(); showRoute(); updateGuidance(); + Genivi.mapmatchedposition_SetSimulationMode(dbusIf,Genivi.simulationMode); if (Genivi.simulationMode===true) { showSimulation(); diff --git a/src/hmi/qml/NavigationAppPOI.qml b/src/hmi/qml/NavigationAppPOI.qml index 1caaea7..2fa5135 100644 --- a/src/hmi/qml/NavigationAppPOI.qml +++ b/src/hmi/qml/NavigationAppPOI.qml @@ -94,7 +94,7 @@ NavigationAppHMIMenu { function update() { - selectedValue.text="Name:\nID:\nLat:\nLon:\n" + selectedValue.text="Lat:\nLon:\nDist:\n"; } function spell(input) @@ -102,7 +102,7 @@ NavigationAppHMIMenu { keyboardArea.destination.text = input; } - function displayPOIList() + function displayCategoryList() { var model=view.model; for(var i=0;i<Genivi.categoriesIdNameList.length;i+=2) @@ -110,6 +110,7 @@ NavigationAppHMIMenu { if(Genivi.categoriesIdNameList[i+1][3]!==all_categories) model.append({"name":Genivi.categoriesIdNameList[i+1][3],"number":i/2}); } + categoryValue.text=model.get(0).name; } //------------------------------------------// @@ -138,11 +139,14 @@ NavigationAppHMIMenu { onClicked: { keyboardArea.destination=categoryValue; poiValue.text=""; + selectedValue.text="Lat:\nLon:\nDist:\n"; + poiName.visible=false; + selectedValueTitle.visible=false; categoryValue.text=poiCategoryName; poiFrame.visible=false; categoryFrame.visible=true; view.model.clear(); - displayPOIList(); + displayCategoryList(); } } Image { @@ -186,9 +190,18 @@ NavigationAppHMIMenu { onLeave:{} } + SmartText { + x:StyleSheet.poiName[Constants.X]; y:StyleSheet.poiName[Constants.Y]; width:StyleSheet.poiName[Constants.WIDTH]; height:StyleSheet.poiName[Constants.HEIGHT];color:StyleSheet.poiName[Constants.TEXTCOLOR];styleColor:StyleSheet.poiName[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.poiName[Constants.PIXELSIZE]; + id:poiName; + visible: false + style: Text.Sunken; + smooth: true + text: "" + } Text { x:StyleSheet.selectedValueTitle[Constants.X]; y:StyleSheet.selectedValueTitle[Constants.Y]; width:StyleSheet.selectedValueTitle[Constants.WIDTH]; height:StyleSheet.selectedValueTitle[Constants.HEIGHT];color:StyleSheet.selectedValueTitle[Constants.TEXTCOLOR];styleColor:StyleSheet.selectedValueTitle[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.selectedValueTitle[Constants.PIXELSIZE]; id:selectedValueTitle; + visible: false style: Text.Sunken; smooth: true text: Genivi.gettext("Selected") @@ -225,13 +238,17 @@ NavigationAppHMIMenu { if (what) { Genivi.poi_id=what.index; var poi_data=Genivi.poi_data[what.index]; - selectedValue.text="Name:"+poi_data.name+"\nID:"+poi_data.id+"\nLat:"+poi_data.lat+"\nLon:"+poi_data.lon; + poiName.text=poi_data.name; + poiName.visible=true; + selectedValue.text="Lat: "+poi_data.lat.toFixed(4)+"\nLon: "+poi_data.lon.toFixed(4)+"\nDist: "+poi_data.distance+" m"; + selectedValueTitle.visible=true; select_reroute.disabled=false; select_display_on_map.disabled=false; - keyboardArea.destination.text=poi_data.name; } else { Genivi.poi_id=null; + poiName.visible=false; selectedValue.text=""; + selectedValueTitle.visible=false; select_reroute.disabled=true; select_display_on_map.disabled=true; keyboardArea.destination.text="" @@ -322,7 +339,9 @@ NavigationAppHMIMenu { for (i = 0 ; i < ids.length ; i+=1) { id=ids[i]; var poi_data=Genivi.poi_data[id]; - model.append({"name":Genivi.distance(poi_data.distance)+" "+poi_data.name,"number":id}); + if((poi_data.name !== "") && (poi_data.name !== "?") ){ //filter empty and unknown names + model.append({"name":poi_data.name,"number":id}); + } } } } diff --git a/src/hmi/qml/NavigationAppSearch.qml b/src/hmi/qml/NavigationAppSearch.qml index 69d9247..30f81b9 100644 --- a/src/hmi/qml/NavigationAppSearch.qml +++ b/src/hmi/qml/NavigationAppSearch.qml @@ -61,25 +61,26 @@ NavigationAppHMIMenu { if(args[1]===Genivi.NAVIGATIONCORE_ACTIVE) { Genivi.guidance_activated = true; - if(Genivi.simulationMode){ - Genivi.mapmatchedposition_SetSimulationMode(dbusIf,true); - } + guidanceActive(); //Guidance active, so inform the trip computer (refresh) Genivi.fuelstopadvisor_SetFuelAdvisorSettings(dbusIf,1,50); - //Enter the map browser menu - disconnectSignals(); - Genivi.data['display_on_map']='show_current_position'; - Genivi.data["show_route_handle"]=Genivi.routing_handle(dbusIf); - entryMenu("NavigationAppBrowseMap",menu); + if(Genivi.autoguidance){ + //Enter the map browser menu + disconnectSignals(); + Genivi.data['display_on_map']='show_current_position'; + Genivi.data["show_route_handle"]=Genivi.routing_handle(dbusIf); + entryMenu("NavigationAppBrowseMap",menu); + }else{ + showGuidance(); + getManeuversList(); + } + } else { Genivi.guidance_activated = false; - Genivi.mapmatchedposition_SetSimulationMode(dbusIf,false); + guidanceInactive(); + hideGuidance(); //Guidance inactive, so inform the trip computer Genivi.fuelstopadvisor_SetFuelAdvisorSettings(dbusIf,0,0); - guidance_start.disabled=false; - guidance_stop.disabled=true; - guidance_start.visible=true; - guidance_stop.visible=false; } } @@ -146,7 +147,7 @@ NavigationAppHMIMenu { { if (Genivi.entrycriterion === streetValue.criterion) { - // no number managed for the moment + // no house number managed for the moment Genivi.preloadMode=false; } else @@ -154,6 +155,7 @@ NavigationAppHMIMenu { Genivi.preloadMode=false; console.log("Error when load a preloaded address"); } + Genivi.locationinput_handle_clear(dbusIf); //clear the handle } } } @@ -314,11 +316,13 @@ NavigationAppHMIMenu { // Give the route handle to the FSA Genivi.fuelstopadvisor_SetRouteHandle(dbusIf,Genivi.g_routing_handle); - updateStartStop(); show_route_on_map.disabled=false; showRoute(); - getRouteList(); + if(Genivi.guidance_activated) + guidanceActive(); + else + guidanceInactive(); } property Item routeCalculationFailedSignal; @@ -383,19 +387,28 @@ NavigationAppHMIMenu { spellResultSignal.destroy(); } - function getRouteList() + function getManeuversList() { - var res=Genivi.routing_GetRouteSegments(dbusIf,0,routeListSegments,0) - var array=res[3]; - var model=routeArea.model; - for (var i = 0 ; i < array.length ; i+=2) { - var map=array[i+1]; - var mapresult=Array; - for (var j = 0 ; j < map.length ; j+=4) { - mapresult[map[j+1]]=map[j+3][3][1]; + var res=Genivi.guidance_GetManeuversList(dbusIf,0xffff,0); + var maneuversList=res[5]; + var model=maneuverArea.model; + for (var i = 0 ; i < maneuversList.length ; i+=2) { + var roadNameAfterManeuver=maneuversList[i+1][9]; + var offsetOfNextManeuver=maneuversList[i+1][15]; + var items=maneuversList[i+1][17]; + + for (var j = 0 ; j < items.length ; j+=2) { + //multiple maneuvers are not managed ! + var offsetOfManeuver=items[j+1][1]; + var direction=items[j+1][5]; + var maneuver=items[j+1][7]; + var maneuverData=items[j+1][9]; + if (maneuverData[1] == Genivi.NAVIGATIONCORE_DIRECTION) + { + var text=Genivi.distance(offsetOfManeuver)+" "+Genivi.distance(offsetOfNextManeuver)+" "+Genivi.ManeuverType[maneuver]+":"+Genivi.ManeuverDirection[direction]+" "+roadNameAfterManeuver; + model.append({"name":text,"number":i}); + } } - var text=Genivi.distance(mapresult[Genivi.NAVIGATIONCORE_DISTANCE])+" "+Genivi.time(mapresult[Genivi.NAVIGATIONCORE_TIME])+" "+mapresult[Genivi.NAVIGATIONCORE_ROAD_NAME]; - model.append({"name":text,"number":i}); } } @@ -461,10 +474,11 @@ NavigationAppHMIMenu { //------------------------------------------// // Management of entered location //------------------------------------------// - function loadWithCountry() - { //load the field with saved values with test if it's guidable + function loadAddress() + { //load an address and test if it's guidable if (Genivi.address[Genivi.NAVIGATIONCORE_COUNTRY] !== "") {//need to test empty string + var res=Genivi.locationinput_handle(dbusIf); //get an handle for the location input countryValue.text=Genivi.address[Genivi.NAVIGATIONCORE_COUNTRY]; accept(countryValue); cityValue.disabled=false; @@ -473,8 +487,8 @@ NavigationAppHMIMenu { Genivi.preloadMode=false; // because preload needs first a country to be launched } - function reloadWithCountry() - { // load the field with saved values + function initAddress() + { // load the saved address if (Genivi.address[Genivi.NAVIGATIONCORE_COUNTRY] !== "") {//need to test empty string countryValue.text=Genivi.address[Genivi.NAVIGATIONCORE_COUNTRY]; @@ -563,6 +577,7 @@ NavigationAppHMIMenu { // when keyboard is activated, route is reset Genivi.route_calculated=false; hideRoute(); + hideGuidance(); listArea.forceActiveFocus(); if (Genivi.entrycriterion) { criterion=Genivi.entrycriterion; @@ -607,25 +622,6 @@ NavigationAppHMIMenu { statusTitle.visible=true; statusValue.visible=true; show_route_on_map.visible=true; - guidance_start.visible=false; - guidance_stop.visible=false; - if(Genivi.guidance_activated){ - guidance_start.disabled=true; - guidance_stop.disabled=false; - guidance_stop.visible=true; - }else{ - guidance_start.disabled=false; - guidance_stop.disabled=true; - guidance_start.visible=true; - } - routeArea.model.clear(); - routeArea.visible=true; - routeArea.forceActiveFocus(); - crossroadZoom.visible=false; - prev_maneuver.visible=true; - prev_maneuver.disabled=false; - next_maneuver.visible=true; - next_maneuver.disabled=false; } function hideRoute() @@ -641,9 +637,28 @@ NavigationAppHMIMenu { show_route_on_map.visible=false; guidance_start.visible=false; guidance_stop.visible=false; - guidance_start.disabled=false; + guidance_start.disabled=true; guidance_stop.disabled=true; - routeArea.visible=false; + } + + //------------------------------------------// + // Management of "guidance" configuration + //------------------------------------------// + function showGuidance() + { + maneuverArea.model.clear(); + maneuverArea.visible=true; + maneuverArea.forceActiveFocus(); + crossroadZoom.visible=false; + prev_maneuver.visible=true; + prev_maneuver.disabled=false; + next_maneuver.visible=true; + next_maneuver.disabled=false; + } + + function hideGuidance() + { + maneuverArea.visible=false; crossroadZoom.visible=true; prev_maneuver.visible=false; prev_maneuver.disabled=true; @@ -651,17 +666,20 @@ NavigationAppHMIMenu { next_maneuver.disabled=true; } + function guidanceActive() + { //active so display OFF + guidance_start.disabled=true; + guidance_start.visible=false; + guidance_stop.disabled=false; + guidance_stop.visible=true; + } - //------------------------------------------// - // Miscellaneous - //------------------------------------------// - function leave(toOtherMenu) - { - disconnectSignals(); - if (toOtherMenu) { - Genivi.locationinput_handle_clear(dbusIf); - } - //Genivi.navigationcore_session_clear(dbusIf); + function guidanceInactive() + { //inactive so display ON + guidance_start.disabled=false; + guidance_start.visible=true; + guidance_stop.disabled=true; + guidance_stop.visible=false; } //------------------------------------------// @@ -784,47 +802,6 @@ NavigationAppHMIMenu { onLeave:{} } - // enter a location by the keyboard menu - // keyboard - NavigationAppKeyboard { - x:StyleSheet.keyboardArea[Constants.X]; y:StyleSheet.keyboardArea[Constants.Y]; width:StyleSheet.keyboardArea[Constants.WIDTH]; height:StyleSheet.keyboardArea[Constants.HEIGHT]; - id: keyboardArea; - visible: false; - destination: countryValue; // by default - firstLayout: "ABC"; - secondLayout: "abc"; - next: listArea; - prev: numberKeyboard; - onKeypress: { spell(what); } - } - // list of items - Component { - id: listDelegate - Text { - property real index:number; - width:StyleSheet.list_delegate[Constants.WIDTH]; height:StyleSheet.list_delegate[Constants.HEIGHT];color:StyleSheet.list_delegate[Constants.TEXTCOLOR];styleColor:StyleSheet.list_delegate[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.list_delegate[Constants.PIXELSIZE]; - id:textItem; - text: name; - style: Text.Sunken; - smooth: true - } - } - NavigationAppHMIList { - property real selectedEntry - x:StyleSheet.listArea[Constants.X]; y:StyleSheet.listArea[Constants.Y]; width:StyleSheet.listArea[Constants.WIDTH]; height:StyleSheet.listArea[Constants.HEIGHT]; - id:listArea - visible: false; - delegate: listDelegate - next:cancel - prev:keyboardArea - onSelected:{ - Genivi.entryselectedentry=what.index; - // Set value of corresponding field and hide keyboard and list - Genivi.locationinput_SelectEntry(dbusIf,Genivi.entryselectedentry-1); - manageAddressItem(); - } - } - // route menu Text { x:StyleSheet.guidanceTitle[Constants.X]; y:StyleSheet.guidanceTitle[Constants.Y]; width:StyleSheet.guidanceTitle[Constants.WIDTH]; height:StyleSheet.guidanceTitle[Constants.HEIGHT];color:StyleSheet.guidanceTitle[Constants.TEXTCOLOR];styleColor:StyleSheet.guidanceTitle[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.guidanceTitle[Constants.PIXELSIZE]; @@ -937,12 +914,54 @@ NavigationAppHMIMenu { disabled:true; visible: false; } + + // enter a location by the keyboard menu + // keyboard (NB: this entity has to be on top of the crossroad zoom layer, for a layer order point of view) + NavigationAppKeyboard { + x:StyleSheet.keyboardArea[Constants.X]; y:StyleSheet.keyboardArea[Constants.Y]; width:StyleSheet.keyboardArea[Constants.WIDTH]; height:StyleSheet.keyboardArea[Constants.HEIGHT]; + id: keyboardArea; + visible: false; + destination: countryValue; // by default + firstLayout: "ABC"; + secondLayout: "abc"; + next: listArea; + prev: numberKeyboard; + onKeypress: { spell(what); } + } + // list of items + Component { + id: listDelegate + Text { + property real index:number; + width:StyleSheet.list_delegate[Constants.WIDTH]; height:StyleSheet.list_delegate[Constants.HEIGHT];color:StyleSheet.list_delegate[Constants.TEXTCOLOR];styleColor:StyleSheet.list_delegate[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.list_delegate[Constants.PIXELSIZE]; + id:textItem; + text: name; + style: Text.Sunken; + smooth: true + } + } + NavigationAppHMIList { + property real selectedEntry + x:StyleSheet.listArea[Constants.X]; y:StyleSheet.listArea[Constants.Y]; width:StyleSheet.listArea[Constants.WIDTH]; height:StyleSheet.listArea[Constants.HEIGHT]; + id:listArea + visible: false; + delegate: listDelegate + next:cancel + prev:keyboardArea + onSelected:{ + Genivi.entryselectedentry=what.index; + // Set value of corresponding field and hide keyboard and list + Genivi.locationinput_SelectEntry(dbusIf,Genivi.entryselectedentry-1); + manageAddressItem(); + } + } + // route list Component { - id: routeDelegate + id: maneuverDelegate Text { property real index:number; - width:StyleSheet.route_delegate[Constants.WIDTH]; height:StyleSheet.route_delegate[Constants.HEIGHT];color:StyleSheet.route_delegate[Constants.TEXTCOLOR];styleColor:StyleSheet.route_delegate[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.route_delegate[Constants.PIXELSIZE]; + width:StyleSheet.maneuver_delegate[Constants.WIDTH]; height:StyleSheet.maneuver_delegate[Constants.HEIGHT];color:StyleSheet.maneuver_delegate[Constants.TEXTCOLOR];styleColor:StyleSheet.maneuver_delegate[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.maneuver_delegate[Constants.PIXELSIZE]; id:routeItem; text: name; style: Text.Sunken; @@ -951,10 +970,10 @@ NavigationAppHMIMenu { } NavigationAppHMIList { property real selectedEntry - x:StyleSheet.routeArea[Constants.X]; y:StyleSheet.routeArea[Constants.Y]; width:StyleSheet.routeArea[Constants.WIDTH]; height:StyleSheet.routeArea[Constants.HEIGHT]; - id:routeArea + x:StyleSheet.maneuverArea[Constants.X]; y:StyleSheet.maneuverArea[Constants.Y]; width:StyleSheet.maneuverArea[Constants.WIDTH]; height:StyleSheet.maneuverArea[Constants.HEIGHT]; + id:maneuverArea visible: false; - delegate: routeDelegate + delegate: maneuverDelegate next:cancel prev:keyboardArea } @@ -965,6 +984,7 @@ NavigationAppHMIMenu { id:calculate_curr; text: Genivi.gettext("GoTo"); onClicked: { setAddress(); + Genivi.guidance_activated=false; launchRouteCalculation(); } disabled:!((vehicleLocated || Genivi.showroom ) && destinationValid && !(keyboardActivated)); @@ -975,10 +995,10 @@ NavigationAppHMIMenu { id:cancel; text: Genivi.gettext("Cancel"); disabled: !(keyboardActivated); onClicked: { - Genivi.entrycancel=true; - Genivi.preloadMode=true; + Genivi.preloadMode=false; + Genivi.locationinput_handle_clear(dbusIf); //clear the handle hideKeyboard(); - reloadWithCountry(); + initAddress(); } next:settings; prev:calculate_curr; } @@ -1020,23 +1040,37 @@ NavigationAppHMIMenu { hideKeyboard(); // no keyboard by default listArea.model.clear(); // clean lists - routeArea.model.clear(); + maneuverArea.model.clear(); if (Genivi.route_calculated || Genivi.reroute_requested) { Genivi.reroute_requested=false; + countryValue.text=Genivi.address[Genivi.NAVIGATIONCORE_COUNTRY]; + countryValue.disabled=false; + cityValue.text=Genivi.address[Genivi.NAVIGATIONCORE_CITY]; + cityValue.disabled=false; + streetValue.text=Genivi.address[Genivi.NAVIGATIONCORE_STREET]; + streetValue.disabled=false; + numberValue.text=Genivi.address[Genivi.NAVIGATIONCORE_HOUSENUMBER]; + numberValue.disabled=false; + launchRouteCalculation(); //relaunch route calculation to refresh data showRoute(); + if(Genivi.guidance_activated){ + guidanceActive(); + showGuidance(); + getManeuversList(); + }else{ + guidanceInactive(); + } } else { hideRoute(); - } - var res=Genivi.locationinput_handle(dbusIf); //get an handle for the location input - - // Preload address if activated - if (Genivi.preloadMode==true) - { - loadWithCountry(); + // Preload address if activated + if (Genivi.preloadMode==true) + { + loadAddress(); + } } updateCurrentPosition(); diff --git a/src/hmi/qml/NavigationAppSettings.qml b/src/hmi/qml/NavigationAppSettings.qml index a070c45..e50d76b 100644 --- a/src/hmi/qml/NavigationAppSettings.qml +++ b/src/hmi/qml/NavigationAppSettings.qml @@ -431,6 +431,54 @@ NavigationAppHMIMenu { } } + Text { + x:StyleSheet.autoguidanceTitle[Constants.X]; y:StyleSheet.autoguidanceTitle[Constants.Y]; width:StyleSheet.autoguidanceTitle[Constants.WIDTH]; height:StyleSheet.autoguidanceTitle[Constants.HEIGHT];color:StyleSheet.autoguidanceTitle[Constants.TEXTCOLOR];styleColor:StyleSheet.autoguidanceTitle[Constants.STYLECOLOR]; font.pixelSize:StyleSheet.autoguidanceTitle[Constants.PIXELSIZE]; + id:autoguidanceTitle; + style: Text.Sunken; + smooth: true + text: Genivi.gettext("Autoguidance") + } + StdButton { + x:StyleSheet.autoguidance_enable[Constants.X]; y:StyleSheet.autoguidance_enable[Constants.Y]; width:StyleSheet.autoguidance_enable[Constants.WIDTH]; height:StyleSheet.autoguidance_enable[Constants.HEIGHT]; + id:autoguidance; next:back; prev:back; disabled:false; + source: + { + if (Genivi.autoguidance==true) + { + source=StyleSheet.autoguidance_enable[Constants.SOURCE]; + } + else + { + source=StyleSheet.autoguidance_disable[Constants.SOURCE]; + } + } + + function setState(name) + { + if (name=="ENABLE") + { + source=StyleSheet.autoguidance_enable[Constants.SOURCE]; + } + else + { + source=StyleSheet.autoguidance_disable[Constants.SOURCE]; + } + } + onClicked: + { + if (Genivi.autoguidance ===true) + { + Genivi.autoguidance=false; + autoguidance.setState("DISABLE"); + } + else + { + Genivi.autoguidance=true; + autoguidance.setState("ENABLE"); + } + } + } + StdButton { source:StyleSheet.back[Constants.SOURCE]; x:StyleSheet.back[Constants.X]; y:StyleSheet.back[Constants.Y]; width:StyleSheet.back[Constants.WIDTH]; height:StyleSheet.back[Constants.HEIGHT];textColor:StyleSheet.backText[Constants.TEXTCOLOR]; pixelSize:StyleSheet.backText[Constants.PIXELSIZE]; id:back; text: Genivi.gettext("Back"); disabled:false; next:simu_mode; prev:showroom; @@ -444,6 +492,11 @@ NavigationAppHMIMenu { Component.onCompleted: { connectSignals(); + Genivi.mapmatchedposition_SetSimulationMode(dbusIf,Genivi.simulationMode); + if(Genivi.simulationMode===true) { + Genivi.mapmatchedposition_PauseSimulation(dbusIf); + } + var res=Genivi.routing_GetCostModel(dbusIf); var costmodel=res[1]; var costModelsList=Genivi.routing_GetSupportedCostModels(dbusIf); diff --git a/src/hmi/qml/NavigationAppTokyo.qml b/src/hmi/qml/NavigationAppTokyo.qml index 5bae13c..13beeb4 100644 --- a/src/hmi/qml/NavigationAppTokyo.qml +++ b/src/hmi/qml/NavigationAppTokyo.qml @@ -57,10 +57,23 @@ ApplicationWindow { } Component.onCompleted: { + //set persistent data Genivi.setlang("jpn","JPN","Hrkt"); //set to japanese Genivi.setDefaultPosition(35.758795,139.316533,19); // (1 Chome-1-5 Gonokami Hamura-shi, Tōkyō-to) + + //configure the middleware Genivi.setDefaultAddress("Japan","東京","井ノ頭通り","17"); // preferred address Genivi.navigationcore_configuration_SetLocale(dbusIf,Genivi.g_language,Genivi.g_country,Genivi.g_script); + + //launch the map viewer + Genivi.mapviewer_handle(dbusIf,width,height,Genivi.MAPVIEWER_MAIN_MAP); + + //launch the HMI load("NavigationAppMain"); } + + Component.onDestruction: { + //release the map viewer + Genivi.mapviewer_handle_clear(dbusIf); + } } diff --git a/src/hmi/qml/hmi-launcher/CMakeLists.txt b/src/hmi/qml/hmi-launcher/CMakeLists.txt index 5869ce0..d081a62 100644 --- a/src/hmi/qml/hmi-launcher/CMakeLists.txt +++ b/src/hmi/qml/hmi-launcher/CMakeLists.txt @@ -63,7 +63,11 @@ set(CMAKE_AUTOMOC ON) add_definitions(${QT5_CORE_DEFINITIONS}) add_definitions(-DQT_PLUGIN) add_definitions(-DQT_NO_DEBUG) -set(qt_moc moc -o) +if(QT_MOC) + set(qt_moc ${QT_MOC} -o) +else() + set(qt_moc moc -o) +endif() set(MOC moc) set(MOC_DIR ${CMAKE_CURRENT_BINARY_DIR}/${MOC}) diff --git a/src/hmi/qml/hmi-launcher/hmi-launcher_fsa.service b/src/hmi/qml/hmi-launcher/hmi-launcher_fsa.service new file mode 100644 index 0000000..ab8618c --- /dev/null +++ b/src/hmi/qml/hmi-launcher/hmi-launcher_fsa.service @@ -0,0 +1,7 @@ +[Unit] +Description=HMI Launcher Service for FSA configuration file +Requires=navit_genivi_mapviewer_fsa.service + +[Service] +Environment=LD_PRELOAD=/usr/lib/libEGL.so +ExecStart=/usr/bin/hmi-launcher -platform wayland /usr/bin/navigation-application/qml/NavigationApp.qml @@ -114,7 +114,6 @@ SRC_DIR=$CUR_DIR SCRIPT_DIR=$SRC_DIR/script HMI_QML_DIR=$SRC_DIR/hmi/qml app=$HMI_QML_DIR/NavigationApp.qml # hmi panel launched by default -poidatabase=$SCRIPT_DIR/empty.db # empty poi database by default STYLE_SHEETS_GENERATED_INDICATOR=$HMI_QML_DIR/Core/style-sheets/the-style-sheets-have-been-generated-css.js REPLAYER_LOG_FILE=none export REPLAYER_LOG_FILE @@ -137,6 +136,9 @@ NAVIT_BIN_DIR=$NAVIGATION_BIN_DIR/navit/navit POI_SERVER=poi-server POI_SERVER_SRC_DIR=$SRC_DIR/$NAVIGATION/src/poi-service/$POI_SERVER POI_SERVER_BIN_DIR=$SRC_DIR/$NAVIGATION/src/poi-service/bin +POI_SERVER_RESOURCE_DIR=$SRC_DIR/$NAVIGATION/src/poi-service/resource + +poidatabase=$POI_SERVER_RESOURCE_DIR/empty.db # empty poi database by default LOG_REPLAYER=log-replayer LOG_REPLAYER_SRC_DIR=$NAVIGATION_SRC_DIR/positioning/$LOG_REPLAYER diff --git a/src/script/empty.db b/src/script/empty.db Binary files differdeleted file mode 100644 index 2ea39bc..0000000 --- a/src/script/empty.db +++ /dev/null |