summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorasanoaozora <fifitaneki@hotmail.com>2017-03-07 18:08:49 +0100
committerasanoaozora <fifitaneki@hotmail.com>2017-03-07 18:08:49 +0100
commitf4eb180d82ff21f6a1074a3258cbe6a27298c193 (patch)
treedfa4136956881e6f5e218d376cc70d8159888d10
parent8bd9324e5e9ad4b97ea26f066ec8aea20729a95c (diff)
downloadnavigation-f4eb180d82ff21f6a1074a3258cbe6a27298c193.tar.gz
add service files for running code in GDP - fix some bugs
-rwxr-xr-xsrc/clone_and_build.sh6
-rw-r--r--src/fuel-stop-advisor/fuel_stop_advisor.service14
-rw-r--r--src/hmi/qml/Core/genivi-capi.js7
-rw-r--r--src/hmi/qml/Core/genivi-origin.js7
-rwxr-xr-xsrc/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppBrowseMapSimulation.xcfbin32880 -> 25563 bytes
-rw-r--r--src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppPOI.xcfbin192984 -> 217711 bytes
-rw-r--r--src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSearch.xcfbin317239 -> 317245 bytes
-rw-r--r--src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSettings.xcfbin218895 -> 226685 bytes
-rw-r--r--src/hmi/qml/Core/referenceHMI.tar.gzbin1199863 -> 1197953 bytes
-rw-r--r--src/hmi/qml/Core/translations/deu_DEU.js1
-rw-r--r--src/hmi/qml/Core/translations/eng_USA.js1
-rw-r--r--src/hmi/qml/Core/translations/fra_FRA.js1
-rw-r--r--src/hmi/qml/Core/translations/jpn_JPN.js1
-rw-r--r--src/hmi/qml/NavigationApp.qml13
-rw-r--r--src/hmi/qml/NavigationAppBrowseMap.qml97
-rw-r--r--src/hmi/qml/NavigationAppPOI.qml31
-rw-r--r--src/hmi/qml/NavigationAppSearch.qml272
-rw-r--r--src/hmi/qml/NavigationAppSettings.qml53
-rw-r--r--src/hmi/qml/NavigationAppTokyo.qml13
-rw-r--r--src/hmi/qml/hmi-launcher/CMakeLists.txt6
-rw-r--r--src/hmi/qml/hmi-launcher/hmi-launcher_fsa.service7
-rwxr-xr-xsrc/run4
-rw-r--r--src/script/empty.dbbin36864 -> 0 bytes
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
index 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
Binary files differ
diff --git a/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppPOI.xcf b/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppPOI.xcf
index 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
Binary files differ
diff --git a/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSearch.xcf b/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSearch.xcf
index 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
Binary files differ
diff --git a/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSettings.xcf b/src/hmi/qml/Core/gimp/gdp-theme/800x480/NavigationAppSettings.xcf
index 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
Binary files differ
diff --git a/src/hmi/qml/Core/referenceHMI.tar.gz b/src/hmi/qml/Core/referenceHMI.tar.gz
index 6ba5255..f54ba77 100644
--- a/src/hmi/qml/Core/referenceHMI.tar.gz
+++ b/src/hmi/qml/Core/referenceHMI.tar.gz
Binary files differ
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
diff --git a/src/run b/src/run
index 350f4dc..a53d1a8 100755
--- a/src/run
+++ b/src/run
@@ -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
deleted file mode 100644
index 2ea39bc..0000000
--- a/src/script/empty.db
+++ /dev/null
Binary files differ