summaryrefslogtreecommitdiff
path: root/api/franca/POIService/POIServiceContentAccessModule.fidl
blob: dd6da9de0a168c5d199869fe8137b4cf4cfee41e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package org.genivi.lbs.POIService

import org.genivi.lbs.CommonTypes.* from "../CommonTypes.fidl"
import org.genivi.lbs.POIServiceTypes.* from "POIServiceTypes.fidl"


<** @description : This interface offers methods that implement the POI search functionality of a navigation system.**>
interface POIContentAccessModule {
	version {
		major 1 
		minor 0
	}
	<**	@description : This method returns the API version implemented by the content access module.**>
	method GetVersion {
		out {
			<** @description: .**>
			CommonTypes.version_t ^version				
		}	
	}		
	<**	@description : Set the current language set for the search by poi provider module.
        The language defines the poi and categories name and details language. If the language is not supported, the default details will be returned in the native language.**>
	method SetLanguage {
		in {
			<** @description : The language to be used.**>
			String languageCode				
			<** @description : The country specific variant for the language to be used.**>
			String countryCode				
		}	
	}	

	<**	@description : This method is sent by the POI service component to inform all the CAM that a new POI search was started.
        It provides all the relevant search parameters. Of course the CAM will only be aware of the search if it registers one of the search categories.**>
	method PoiSearchStarted {
		in {
			<** @description : poi search unique handle. It must be used by the CAM to send the list of results to the component.**>
			UInt8 poiSearchHandle	
			<** @description : max size of the results list.**>
			UInt16 maxSize				
			<** @description: struct(lat,lon,alt).**>			
			CommonTypes.geoCoordinate3D_t location									
			<** @description: array[struct(id,radius)].**>						
			POIServiceTypes.categoryRadius_t[] poiCategories
			<** @description : array[struct(name, poiCategory, type, value, operator, mandatory)].**>
			POIServiceTypes.attributeDetails_t[] poiAttributes
			<** @description : contains the name of the poi that is searched. It could be a partial name or an empty string.**>
			String inputString				
			<** @description : enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... )
            If more than one category was defined for this search, the sort criteria should be compliant with all categories.**>
			UInt16 sortOption				
		}	
	}

	<**	@description : This method cancels the search for the current id.**>
	method PoiSearchCanceled {
		in {
			<** @description : poi search unique handle.**>
			UInt8 poiSearchHandle				
		}	
	}

	<**	@description : This method provides the poi results list found by the CAM.
        As the POI unique id is managed by the POI component, the CAM only provides the POI name, the category and coordinates as well as all the relevant detailed information.**>
	method ResultListRequested {
		in {
			<** @description : Content access module unique id as known by the POI service component.**>
			UInt8 camId				
			<** @description : poi search unique handle.**>
			UInt8 poiSearchHandle				
			<** @description : List of attributes name to retrieve. This is optional and the list could be empty.**>
			String[] attributes				
		}	
		out {
			<** @description : enum(INVALID,NOT_STARTED,SEARCHING,FINISHED, ... ).**>
			UInt16 statusValue
			<** @description : Number of items of the results list.**>
			UInt16 resultListSize
			<** @description : array[struct(source_id, name, category, location, distance, attributes)].**>
			POIServiceTypes.poiCAMDetails_t[] resultList
		}
	}
	
	<**	@description : This method retrieves the details associated to one or more POI.
        It contains the name, the parent categories, the list of attributes, the icons, ... .**>
	method PoiDetailsRequested {
		in {
			<** @description : array[unique_poi_id].**>
			UInt32[] source_id				
		}	
		out {
			<** @description : array[(details, categories, attributes)] .**>
			POIServiceTypes.searchResultDetails_t[] results				
		}	
	}
	
	}