summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorphilippe colliot <philippe.colliot@mpsa.com>2014-04-15 17:15:50 +0200
committerphilippe colliot <philippe.colliot@mpsa.com>2014-04-15 17:15:50 +0200
commita045ddfb144262fbcb555a588c608b4d99a83b36 (patch)
tree307887f2cd5e028082308aa69129d1e993f9568e /doc
parente16cc3349e27c51d7d72b31d34bdc760df180d88 (diff)
downloadpoi-service-a045ddfb144262fbcb555a588c608b4d99a83b36.tar.gz
poi-service: add some documentation
Diffstat (limited to 'doc')
-rw-r--r--doc/poi-service/LICENSE2
-rw-r--r--doc/poi-service/POIServiceAPI.pdfbin0 -> 846934 bytes
-rw-r--r--doc/poi-service/README11
-rw-r--r--doc/poi-service/sequence-diagrams/poiCam_use_case_danger.sdx137
-rw-r--r--doc/poi-service/sequence-diagrams/poiSearch_use_case_categories.sdx103
-rw-r--r--doc/poi-service/sequence-diagrams/poiSearch_use_case_fuel.sdx122
-rw-r--r--doc/poi-service/sequence-diagrams/poiSearch_use_case_parking.sdx136
-rw-r--r--doc/poi-service/sequence-diagrams/poiSearch_use_case_restaurant.sdx121
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
new file mode 100644
index 0000000..02125ac
--- /dev/null
+++ b/doc/poi-service/POIServiceAPI.pdf
Binary files differ
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>