diff options
author | Martin Schaller <martin.schaller@it-schaller.de> | 2014-04-17 14:10:01 +0200 |
---|---|---|
committer | Martin Schaller <martin.schaller@it-schaller.de> | 2014-04-17 14:10:01 +0200 |
commit | 87f28a7c318869eb11a1b45cf19e9839565331dc (patch) | |
tree | 9bdfaa883de2d6a26ebdb8e305ad20551ae0baf1 | |
parent | abba24be0b33de5bfe35acd20a5c40fd7d659b85 (diff) | |
parent | a045ddfb144262fbcb555a588c608b4d99a83b36 (diff) | |
download | poi-service-87f28a7c318869eb11a1b45cf19e9839565331dc.tar.gz |
Merge branch 'master' of http://git.projects.genivi.org/lbs/navigation
-rw-r--r-- | doc/poi-service/LICENSE | 2 | ||||
-rw-r--r-- | doc/poi-service/POIServiceAPI.pdf | bin | 0 -> 846934 bytes | |||
-rw-r--r-- | doc/poi-service/README | 11 | ||||
-rw-r--r-- | doc/poi-service/sequence-diagrams/poiCam_use_case_danger.sdx | 137 | ||||
-rw-r--r-- | doc/poi-service/sequence-diagrams/poiSearch_use_case_categories.sdx | 103 | ||||
-rw-r--r-- | doc/poi-service/sequence-diagrams/poiSearch_use_case_fuel.sdx | 122 | ||||
-rw-r--r-- | doc/poi-service/sequence-diagrams/poiSearch_use_case_parking.sdx | 136 | ||||
-rw-r--r-- | doc/poi-service/sequence-diagrams/poiSearch_use_case_restaurant.sdx | 121 |
8 files changed, 632 insertions, 0 deletions
diff --git a/doc/poi-service/LICENSE b/doc/poi-service/LICENSE new file mode 100644 index 0000000..2ece8e3 --- /dev/null +++ b/doc/poi-service/LICENSE @@ -0,0 +1,2 @@ +The documentation is published under the terms of the Creative Commons Attribution Share-Alike 3.0 License +See here for more details: http://creativecommons.org/ diff --git a/doc/poi-service/POIServiceAPI.pdf b/doc/poi-service/POIServiceAPI.pdf Binary files differnew file mode 100644 index 0000000..02125ac --- /dev/null +++ b/doc/poi-service/POIServiceAPI.pdf diff --git a/doc/poi-service/README b/doc/poi-service/README new file mode 100644 index 0000000..a2fbf64 --- /dev/null +++ b/doc/poi-service/README @@ -0,0 +1,11 @@ +Please find here: +- general documentation of the poi-service APIs (use cases, requirements ...) +- some sequence diagrams + +To view the sequence diagrams, please use the +Quick Sequence Diagram Editor +The code can be downloade here: +http://sdedit.sourceforge.net/ + +Thanks to Markus Strauch <markus-strauch@arcor.de> + diff --git a/doc/poi-service/sequence-diagrams/poiCam_use_case_danger.sdx b/doc/poi-service/sequence-diagrams/poiCam_use_case_danger.sdx new file mode 100644 index 0000000..7acb98b --- /dev/null +++ b/doc/poi-service/sequence-diagrams/poiCam_use_case_danger.sdx @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<diagram> +<source><![CDATA[hmi:HMISS[t] "HMI application" +pos:HMISS[t] "Enhanced Position" +logic:HMISS[t] "POI Service" +map:HMISS[t] "Map Data Access & Content Access Modules" + +*11 logic +a new CAM registers to propose fuel stations information +*11 +map:RegisterContentAccessModule(Id=camId)=logic.RegisterContentAccessModule(name=DangerAreaLive) +map:>logic.AddCategories(camId, cat=DANGEROUS_AREA, name="Dangerous Area", other attributes) & +map:>logic.RegisterPoiCategories(camId, cat=DANGEROUS_AREA) & +*6 hmi +HMI starts to configure for fuel stations alert around vehicle +*6 + +[c:Position] +*1 hmi +get position +*1 +hmi:Position(x=_, y=_, speed=_)=pos.Get_Position() & +[/c] + +[c:POIService] +*2 hmi +validate that category dangerous area is supported by POI service +*2 +hmi:ValidateCategories(status=OK)=logic.ValidateCategories(DANGEROUS_AREA) +hmi: +*5 hmi +select dangerous area for proximity alert if category is available +*5 +hmi:CreatePoiSearchHandle(LocationHandle=_)=logic.CreatePoiSearchHandle() +hmi: +*7 hmi +The HMI automatically configures the alert with relevant parameters +*7 +hmi:>logic.SetCenter(LocationHandle, x, y) & +hmi:>logic.SetCategories(LocationHandle, {DANGEROUS_AREA, 0}) & +hmi: +*8 hmi +The HMI starts the alert and display a status message to the user +*8 +hmi:StartPoiProximityAlert(Status=_, Error=_)=logic.StartPoiProximityAlert(LocationHandle,DANGEROUS_AREA, "", 15, SORT_BY_DISTANCE) +hmi: +logic:>hmi.PoiStatus(LocationHandle, SEARCHING) & +logic: +[c:POI_Alert] +*3 hmi +search for dangerous area with all available poi sources taht registered this category when positon changes +*3 +logic:PoiSearchStarted(Status=_, Error=_)=map.PoiSearchStarted(LocationHandle, DANGEROUS_AREA, "", 15, SORT_BY_DISTANCE) +logic: +logic:>hmi.PoiSearchStatus(LocationHandle, SEARCHING) & +logic:ResultListRequested(camId, LocationHandle, FINISHED, 3, {(source_id, name, x, y), ...})=map.ResultListRequested(camId, LocationHandle) +logic: +logic:>logic.BuildList(list(name, x, y, desc, distance)) & + +logic:>hmi.ResultListChanged(LocationHandle, 3) & +logic: +*9 hmi +The list of results with a short description is displayed so the user can select one +*9 +hmi:RequestResultList(LocationHandle, FINISHED, 3, {(id, name, x, y), ...})=logic.RequestResultList(0, 15) +hmi:GetPoiDetails(name, x, y, dangerousness, description))=logic.GetPoiDetails(LocationHandle, id) +logic:PoiDetailsRequested(name, x, y, dangerousness, description))=map.PoiDetailsRequested(source_id) +[/c] +hmi: +[/c] +*10 hmi +Once a dangerous area is selected by the user, the HMI can avoid it from current guidance +*10 +hmi: +]]></source> +<configuration> +<property name="activationBarBorderThickness" value="1"/> +<property name="actorWidth" value="25"/> +<property name="arrowColor" value="-14803256"/> +<property name="arrowSize" value="6"/> +<property name="arrowThickness" value="1"/> +<property name="colorizeThreads" value="true"/> +<property name="destructorWidth" value="30"/> +<property name="explicitReturns" value="false"/> +<property family="Dialog" name="font" size="12" style="0"/> +<property name="fragmentBorderThickness" value="2"/> +<property name="fragmentEdgeColor" value="-16751616"/> +<property name="fragmentLabelBgColor" value="-36"/> +<property name="fragmentMargin" value="8"/> +<property name="fragmentPadding" value="10"/> +<property name="fragmentTextPadding" value="3"/> +<property name="glue" value="10"/> +<property name="headHeight" value="35"/> +<property name="headLabelPadding" value="5"/> +<property name="headWidth" value="100"/> +<property name="initialSpace" value="10"/> +<property name="labeledBoxBgColor" value="-76"/> +<property name="leftMargin" value="5"/> +<property name="lifelineThickness" value="1"/> +<property name="lineWrap" value="false"/> +<property name="lowerMargin" value="5"/> +<property name="mainLifelineWidth" value="2"/> +<property name="messageLabelSpace" value="3"/> +<property name="messagePadding" value="6"/> +<property name="noteBgColor" value="-76"/> +<property name="noteBorderThickness" value="1"/> +<property name="noteMargin" value="6"/> +<property name="notePadding" value="6"/> +<property name="opaqueMessageText" value="false"/> +<property name="returnArrowVisible" value="true"/> +<property name="rightMargin" value="5"/> +<property name="selfMessageHorizontalSpace" value="15"/> +<property name="separatorBottomMargin" value="8"/> +<property name="separatorTopMargin" value="15"/> +<property name="shouldShadowParticipants" value="true"/> +<property name="slackMode" value="false"/> +<property name="spaceBeforeActivation" value="2"/> +<property name="spaceBeforeAnswerToSelf" value="10"/> +<property name="spaceBeforeConstruction" value="6"/> +<property name="spaceBeforeSelfMessage" value="7"/> +<property name="subLifelineWidth" value="2"/> +<property name="tc0" value="-1118482"/> +<property name="tc1" value="-256"/> +<property name="tc2" value="-65536"/> +<property name="tc3" value="-16776961"/> +<property name="tc4" value="-16711936"/> +<property name="tc5" value="-4144960"/> +<property name="tc6" value="-65281"/> +<property name="tc7" value="-14336"/> +<property name="tc8" value="-20561"/> +<property name="tc9" value="-12566464"/> +<property name="threadNumbersVisible" value="false"/> +<property name="threaded" value="true"/> +<property name="upperMargin" value="5"/> +<property name="verticallySplit" value="true"/> +</configuration> +</diagram> diff --git a/doc/poi-service/sequence-diagrams/poiSearch_use_case_categories.sdx b/doc/poi-service/sequence-diagrams/poiSearch_use_case_categories.sdx new file mode 100644 index 0000000..9589aa8 --- /dev/null +++ b/doc/poi-service/sequence-diagrams/poiSearch_use_case_categories.sdx @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<diagram> +<source><![CDATA[hmi:HMISS[t] "HMI application" +logic:HMISS[t] "POI Service" +map:HMISS[t] "Map Data Access & Content Access Modules" + +*6 hmi +HMI starts to search for available categories to build a tree to browse all parent and children categories +*6 +*5 logic +CAM registers their supported categories +*5 +map:>logic.RegisterPoiCategories(cat=_, attr=_) & +*2 hmi +first, get the root category +*2 +hmi:getRootCategory(ALL_CATEGORIES)=logic.getRootCategory() +hmi: +[c:Loop recursive until no more children categories] +hmi: +*5 hmi +check for children for all categories found +*5 +hmi:>logic.GetChildrenCategories(category=_id) & +logic:>logic.CheckCategories(_id) & +logic:>hmi.GetChildrenCategories(list_of_categories) & +hmi: +[c:alt list_of_categories IS empty] +hmi:GetCategoriesDetails(name_to_display)=logic.GetCategoriesDetails(id) +hmi: +*8 hmi +The HMI displays the category name as there no children +*8 +--[else go to loop] +*10 hmi +The HMI asks for the children of the categories found to continue building its tree +*10 +[/c] +[/c] +hmi: +]]></source> +<configuration> +<property name="activationBarBorderThickness" value="1"/> +<property name="actorWidth" value="25"/> +<property name="arrowColor" value="-14803256"/> +<property name="arrowSize" value="6"/> +<property name="arrowThickness" value="1"/> +<property name="colorizeThreads" value="true"/> +<property name="destructorWidth" value="30"/> +<property name="explicitReturns" value="false"/> +<property family="Dialog" name="font" size="12" style="0"/> +<property name="fragmentBorderThickness" value="2"/> +<property name="fragmentEdgeColor" value="-16751616"/> +<property name="fragmentLabelBgColor" value="-36"/> +<property name="fragmentMargin" value="8"/> +<property name="fragmentPadding" value="10"/> +<property name="fragmentTextPadding" value="3"/> +<property name="glue" value="10"/> +<property name="headHeight" value="35"/> +<property name="headLabelPadding" value="5"/> +<property name="headWidth" value="100"/> +<property name="initialSpace" value="10"/> +<property name="labeledBoxBgColor" value="-76"/> +<property name="leftMargin" value="5"/> +<property name="lifelineThickness" value="1"/> +<property name="lineWrap" value="false"/> +<property name="lowerMargin" value="5"/> +<property name="mainLifelineWidth" value="2"/> +<property name="messageLabelSpace" value="3"/> +<property name="messagePadding" value="6"/> +<property name="noteBgColor" value="-76"/> +<property name="noteBorderThickness" value="1"/> +<property name="noteMargin" value="6"/> +<property name="notePadding" value="6"/> +<property name="opaqueMessageText" value="false"/> +<property name="returnArrowVisible" value="true"/> +<property name="rightMargin" value="5"/> +<property name="selfMessageHorizontalSpace" value="15"/> +<property name="separatorBottomMargin" value="8"/> +<property name="separatorTopMargin" value="15"/> +<property name="shouldShadowParticipants" value="true"/> +<property name="slackMode" value="false"/> +<property name="spaceBeforeActivation" value="2"/> +<property name="spaceBeforeAnswerToSelf" value="10"/> +<property name="spaceBeforeConstruction" value="6"/> +<property name="spaceBeforeSelfMessage" value="7"/> +<property name="subLifelineWidth" value="2"/> +<property name="tc0" value="-1118482"/> +<property name="tc1" value="-256"/> +<property name="tc2" value="-65536"/> +<property name="tc3" value="-16776961"/> +<property name="tc4" value="-16711936"/> +<property name="tc5" value="-4144960"/> +<property name="tc6" value="-65281"/> +<property name="tc7" value="-14336"/> +<property name="tc8" value="-20561"/> +<property name="tc9" value="-12566464"/> +<property name="threadNumbersVisible" value="false"/> +<property name="threaded" value="true"/> +<property name="upperMargin" value="5"/> +<property name="verticallySplit" value="true"/> +</configuration> +</diagram> diff --git a/doc/poi-service/sequence-diagrams/poiSearch_use_case_fuel.sdx b/doc/poi-service/sequence-diagrams/poiSearch_use_case_fuel.sdx new file mode 100644 index 0000000..946e6d8 --- /dev/null +++ b/doc/poi-service/sequence-diagrams/poiSearch_use_case_fuel.sdx @@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<diagram> +<source><![CDATA[hmi:HMISS[t] "HMI application" +pos:HMISS[t] "Enhanced Position" +logic:HMISS[t] "POI Service" +map:HMISS[t] "Map Data Access & Content Access Modules" + +*6 hmi +HMI starts to configure for fuel stations alert around vehicle +*6 + +[c:Position] +*1 hmi +get position +*1 +hmi:Position(x=_, y=_, speed=_)=pos.Get_Position() & +[/c] + +[c:POIService] +*2 hmi +validate that category fuel sattionaurant is supported by POI service +*2 +hmi:ValidateCategories(status=OK)=logic.ValidateCategories(FUEL_STATION) +hmi: +*5 hmi +select fuel station for proximity alert if category is available +*5 +hmi:CreatePoiSearchHandle(LocationHandle=_)=logic.CreatePoiSearchHandle() +hmi: +*7 hmi +The HMI automatically configures the alert with relevant parameters +*7 +hmi:>logic.SetCenter(LocationHandle, x, y) & +hmi:>logic.SetCategories(LocationHandle, {FUEl_STATION, 0}) & +hmi: +*8 hmi +The HMI starts the alert and display a status message to the user +*8 +hmi:StartPoiProximityAlert(Status=_, Error=_)=logic.StartPoiProximityAlert(LocationHandle,FUEL_STATION, "", 15, SORT_BY_DISTANCE) +hmi: +logic:>hmi.PoiStatus(LocationHandle, SEARCHING) & +logic: +[c:POI_Alert] +logic:>hmi.PoiSearchStatus(LocationHandle, SEARCHING) & +logic:>logic.BuildList(list(name, x, y, desc, distance)) & + +logic:>hmi.ResultListChanged(LocationHandle, 35) & +logic: +*9 hmi +The list of results with a short description is displayed so the user can select one +*9 +hmi:RequestResultList(LocationHandle, FINISHED, 100, {(id, name, x, y), ...})=logic.RequestResultList(0, 15) +[/c] +hmi: +[/c] +*10 hmi +Once a fuel station is selected by the user, the HMI can use it to start a route calculation +*10 +hmi: +]]></source> +<configuration> +<property name="activationBarBorderThickness" value="1"/> +<property name="actorWidth" value="25"/> +<property name="arrowColor" value="-14803256"/> +<property name="arrowSize" value="6"/> +<property name="arrowThickness" value="1"/> +<property name="colorizeThreads" value="true"/> +<property name="destructorWidth" value="30"/> +<property name="explicitReturns" value="false"/> +<property family="Dialog" name="font" size="12" style="0"/> +<property name="fragmentBorderThickness" value="2"/> +<property name="fragmentEdgeColor" value="-16751616"/> +<property name="fragmentLabelBgColor" value="-36"/> +<property name="fragmentMargin" value="8"/> +<property name="fragmentPadding" value="10"/> +<property name="fragmentTextPadding" value="3"/> +<property name="glue" value="10"/> +<property name="headHeight" value="35"/> +<property name="headLabelPadding" value="5"/> +<property name="headWidth" value="100"/> +<property name="initialSpace" value="10"/> +<property name="labeledBoxBgColor" value="-76"/> +<property name="leftMargin" value="5"/> +<property name="lifelineThickness" value="1"/> +<property name="lineWrap" value="false"/> +<property name="lowerMargin" value="5"/> +<property name="mainLifelineWidth" value="2"/> +<property name="messageLabelSpace" value="3"/> +<property name="messagePadding" value="6"/> +<property name="noteBgColor" value="-76"/> +<property name="noteBorderThickness" value="1"/> +<property name="noteMargin" value="6"/> +<property name="notePadding" value="6"/> +<property name="opaqueMessageText" value="false"/> +<property name="returnArrowVisible" value="true"/> +<property name="rightMargin" value="5"/> +<property name="selfMessageHorizontalSpace" value="15"/> +<property name="separatorBottomMargin" value="8"/> +<property name="separatorTopMargin" value="15"/> +<property name="shouldShadowParticipants" value="true"/> +<property name="slackMode" value="false"/> +<property name="spaceBeforeActivation" value="2"/> +<property name="spaceBeforeAnswerToSelf" value="10"/> +<property name="spaceBeforeConstruction" value="6"/> +<property name="spaceBeforeSelfMessage" value="7"/> +<property name="subLifelineWidth" value="2"/> +<property name="tc0" value="-1118482"/> +<property name="tc1" value="-256"/> +<property name="tc2" value="-65536"/> +<property name="tc3" value="-16776961"/> +<property name="tc4" value="-16711936"/> +<property name="tc5" value="-4144960"/> +<property name="tc6" value="-65281"/> +<property name="tc7" value="-14336"/> +<property name="tc8" value="-20561"/> +<property name="tc9" value="-12566464"/> +<property name="threadNumbersVisible" value="false"/> +<property name="threaded" value="true"/> +<property name="upperMargin" value="5"/> +<property name="verticallySplit" value="true"/> +</configuration> +</diagram> diff --git a/doc/poi-service/sequence-diagrams/poiSearch_use_case_parking.sdx b/doc/poi-service/sequence-diagrams/poiSearch_use_case_parking.sdx new file mode 100644 index 0000000..094f602 --- /dev/null +++ b/doc/poi-service/sequence-diagrams/poiSearch_use_case_parking.sdx @@ -0,0 +1,136 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<diagram> +<source><![CDATA[hmi:HMISS[t] "HMI application" +pos:HMISS[t] "Enhanced Position" +logic:HMISS[t] "POI Service" +map:HMISS[t] "Map Data Access & Content Access Modules" + +*5 logic +a new CAM registers to propose car park with prices and places +*5 +map:RegisterContentAccessModule(Id=_)=logic.RegisterContentAccessModule(name=CarParkLive) +map:>logic.RegisterPoiCategories(cat=CAR_PARK, attr=PARK_PLACE, attr=PARK_PRICE, sort=SORT_BY_FREE_PLACES) & + +*6 hmi +HMI starts to search for car park around the vehicle +*6 + +[c] +*1 hmi +get position +*1 +hmi:Position(x=_, y=_)=pos.Get_Position() & +[/c] + +[c:POIService] +*7 hmi +validate that category car park is supported by POI service +*7 +hmi:ValidateCategories(status=OK)=logic.ValidateCategories(CAR_PARK) +hmi: +*2 hmi +search for car park with free places +*2 +hmi:CreatePoiSearchHandle(LocationHandle=_)=CreatePoiSearchHandle() +hmi: +*7 hmi +The HMI automatically configures the search with relevant parameters +*7 +hmi:>logic.SetCenter(LocationHandle, x, y) & +hmi:>logic.SetCategories(LocationHandle, {CAR_PARK, 100}) & +hmi:>logic.SetAttributes(LocationHandle, {"free places", PARK_PLACE, INTEGER, 0, MORE_THAN}) & +hmi: +*8 hmi +The HMI starts the search and display a status message to the user +*8 +hmi:PoiSearch(Status=_)=logic.StartPoiSearch(LocationHandle, "", 15, SORT_BY_PRICES) +hmi: +logic:>hmi.PoiStatus(LocationHandle, SEARCHING) & +logic: +*3 logic +search for car park with all available poi sources +*3 +logic:PoiSearchStarted(Status=_, Error=_)=map.PoiSearchStarted(LocationHandle, CAR_PARK, "", 15, SORT_BY_FREE_PLACES) +logic: +logic:>hmi.PoiSearchStatus(LocationHandle, SEARCHING) & +logic:ResultListRequested(camId, LocationHandle, FINISHED, 7, {(source_id, name, x, y), ...})=map.ResultListRequested(camId, LocationHandle) +logic:>hmi.PoiSearchStatus(LocationHandle, SEARCHING) & +logic:>logic.BuildList(if (places>0) add list(name, x, y, places, prices)) & +logic:>hmi.PoiSearchStatus(LocationHandle, FINISHED) & +logic: +*9 hmi +The list of results with free places is displayed so the user can select one +*9 +hmi:RequestResultList(LocationHandle, FINISHED, 100, {(id, name, x, y), ...})=logic.RequestResultList(0, 15) +logic: +hmi:GetPoiDetails(name, x, y, places, prices))=logic.GetPoiDetails(LocationHandle, id) +logic:PoiDetailsRequested(name, x, y, places, prices))=map.PoiDetailsRequested(source_id) +hmi: +[/c] +*10 hmi +Once a car park is selected by the user, the HMI can use it to start a route calculation +*10 +hmi: +]]></source> +<configuration> +<property name="activationBarBorderThickness" value="1"/> +<property name="actorWidth" value="25"/> +<property name="arrowColor" value="-14803256"/> +<property name="arrowSize" value="6"/> +<property name="arrowThickness" value="1"/> +<property name="colorizeThreads" value="true"/> +<property name="destructorWidth" value="30"/> +<property name="explicitReturns" value="false"/> +<property family="Dialog" name="font" size="12" style="0"/> +<property name="fragmentBorderThickness" value="2"/> +<property name="fragmentEdgeColor" value="-16751616"/> +<property name="fragmentLabelBgColor" value="-36"/> +<property name="fragmentMargin" value="8"/> +<property name="fragmentPadding" value="10"/> +<property name="fragmentTextPadding" value="3"/> +<property name="glue" value="10"/> +<property name="headHeight" value="35"/> +<property name="headLabelPadding" value="5"/> +<property name="headWidth" value="100"/> +<property name="initialSpace" value="10"/> +<property name="labeledBoxBgColor" value="-76"/> +<property name="leftMargin" value="5"/> +<property name="lifelineThickness" value="1"/> +<property name="lineWrap" value="false"/> +<property name="lowerMargin" value="5"/> +<property name="mainLifelineWidth" value="2"/> +<property name="messageLabelSpace" value="3"/> +<property name="messagePadding" value="6"/> +<property name="noteBgColor" value="-76"/> +<property name="noteBorderThickness" value="1"/> +<property name="noteMargin" value="6"/> +<property name="notePadding" value="6"/> +<property name="opaqueMessageText" value="false"/> +<property name="returnArrowVisible" value="true"/> +<property name="rightMargin" value="5"/> +<property name="selfMessageHorizontalSpace" value="15"/> +<property name="separatorBottomMargin" value="8"/> +<property name="separatorTopMargin" value="15"/> +<property name="shouldShadowParticipants" value="true"/> +<property name="slackMode" value="false"/> +<property name="spaceBeforeActivation" value="2"/> +<property name="spaceBeforeAnswerToSelf" value="10"/> +<property name="spaceBeforeConstruction" value="6"/> +<property name="spaceBeforeSelfMessage" value="7"/> +<property name="subLifelineWidth" value="2"/> +<property name="tc0" value="-1118482"/> +<property name="tc1" value="-256"/> +<property name="tc2" value="-65536"/> +<property name="tc3" value="-16776961"/> +<property name="tc4" value="-16711936"/> +<property name="tc5" value="-4144960"/> +<property name="tc6" value="-65281"/> +<property name="tc7" value="-14336"/> +<property name="tc8" value="-20561"/> +<property name="tc9" value="-12566464"/> +<property name="threadNumbersVisible" value="false"/> +<property name="threaded" value="true"/> +<property name="upperMargin" value="5"/> +<property name="verticallySplit" value="true"/> +</configuration> +</diagram> diff --git a/doc/poi-service/sequence-diagrams/poiSearch_use_case_restaurant.sdx b/doc/poi-service/sequence-diagrams/poiSearch_use_case_restaurant.sdx new file mode 100644 index 0000000..4c98517 --- /dev/null +++ b/doc/poi-service/sequence-diagrams/poiSearch_use_case_restaurant.sdx @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<diagram> +<source><![CDATA[hmi:HMISS[t] "HMI application" +pos:HMISS[t] "Enhanced Position" +logic:HMISS[t] "POI Service" +map:HMISS[t] "Map Data Access & Content Access Modules" + +*6 hmi +HMI starts to search for Restaurant around the vehicle +*6 + +[c] +*1 hmi +get vehicle position +*1 +hmi:Position(x=_, y=_)=pos.Get_Position() & +[/c] + +[c:POIService] +*2 hmi +validate that category Restaurant is supported by POI service +*2 +hmi:ValidateCategories(status=OK)=logic.ValidateCategories(RESTAURANT) +hmi: +*5 hmi +search for restaurant if category is available +*5 +hmi:CreatePoiSearchHandle(LocationHandle=_)=logic.CreatePoiSearchHandle() +hmi: +*7 hmi +The HMI automatically configures the search with relevant parameters +*7 +hmi:>logic.SetCenter(LocationHandle, x, y) & +hmi:>logic.SetCategories(LocationHandle, {RESTAURANT, 0}) & +hmi: +*8 hmi +The HMI starts the search and display a status message to the user +*8 +hmi:PoiSearch(Status=_)=logic.StartPoiSearch(LocationHandle, "", 15, SORT_BY_DISTANCE) +hmi: +logic:>hmi.PoiStatus(LocationHandle, SEARCHING) & +logic: +logic:>hmi.PoiSearchStatus(LocationHandle, SEARCHING) & +logic:>logic.BuildList(list(name, x, y, desc, distance)) & +logic:>hmi.PoiSearchStatus(LocationHandle, FINISHED) & +logic: +hmi:RequestResultList(LocationHandle, FINISHED, 100, {(id, name, x, y), ...})=logic.RequestResultList(0, 15) +logic: +*9 hmi +The list of results with a short description is displayed so the user can select one +*9 +hmi:GetPoiDetails(name, x, y, media, icons))=logic.GetPoiDetails(LocationHandle, id) +hmi: +[/c] +*10 hmi +Once a restaurant is selected by the user, the HMI can use it to start a route calculation +*10 +hmi: +]]></source> +<configuration> +<property name="activationBarBorderThickness" value="1"/> +<property name="actorWidth" value="25"/> +<property name="arrowColor" value="-14803256"/> +<property name="arrowSize" value="6"/> +<property name="arrowThickness" value="1"/> +<property name="colorizeThreads" value="true"/> +<property name="destructorWidth" value="30"/> +<property name="explicitReturns" value="false"/> +<property family="Dialog" name="font" size="12" style="0"/> +<property name="fragmentBorderThickness" value="2"/> +<property name="fragmentEdgeColor" value="-16751616"/> +<property name="fragmentLabelBgColor" value="-36"/> +<property name="fragmentMargin" value="8"/> +<property name="fragmentPadding" value="10"/> +<property name="fragmentTextPadding" value="3"/> +<property name="glue" value="10"/> +<property name="headHeight" value="35"/> +<property name="headLabelPadding" value="5"/> +<property name="headWidth" value="100"/> +<property name="initialSpace" value="10"/> +<property name="labeledBoxBgColor" value="-76"/> +<property name="leftMargin" value="5"/> +<property name="lifelineThickness" value="1"/> +<property name="lineWrap" value="false"/> +<property name="lowerMargin" value="5"/> +<property name="mainLifelineWidth" value="2"/> +<property name="messageLabelSpace" value="3"/> +<property name="messagePadding" value="6"/> +<property name="noteBgColor" value="-76"/> +<property name="noteBorderThickness" value="1"/> +<property name="noteMargin" value="6"/> +<property name="notePadding" value="6"/> +<property name="opaqueMessageText" value="false"/> +<property name="returnArrowVisible" value="true"/> +<property name="rightMargin" value="5"/> +<property name="selfMessageHorizontalSpace" value="15"/> +<property name="separatorBottomMargin" value="8"/> +<property name="separatorTopMargin" value="15"/> +<property name="shouldShadowParticipants" value="true"/> +<property name="slackMode" value="false"/> +<property name="spaceBeforeActivation" value="2"/> +<property name="spaceBeforeAnswerToSelf" value="10"/> +<property name="spaceBeforeConstruction" value="6"/> +<property name="spaceBeforeSelfMessage" value="7"/> +<property name="subLifelineWidth" value="2"/> +<property name="tc0" value="-1118482"/> +<property name="tc1" value="-256"/> +<property name="tc2" value="-65536"/> +<property name="tc3" value="-16776961"/> +<property name="tc4" value="-16711936"/> +<property name="tc5" value="-4144960"/> +<property name="tc6" value="-65281"/> +<property name="tc7" value="-14336"/> +<property name="tc8" value="-20561"/> +<property name="tc9" value="-12566464"/> +<property name="threadNumbersVisible" value="false"/> +<property name="threaded" value="true"/> +<property name="upperMargin" value="5"/> +<property name="verticallySplit" value="true"/> +</configuration> +</diagram> |