summaryrefslogtreecommitdiff
path: root/api/franca/navigation/poiservice/ContentAccessModule.fidl
blob: a9022d13c65f1e838d09d89c877b9779803fd35b (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
96
97
98
99
100
101
102
103
104
105
/* 
SPDX-License-Identifier: MPL-2.0
Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH,  Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD.,  Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH
This Source Code Form is subject to the terms of the
Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
this file, you can obtain one at http://mozilla.org/MPL/2.0/.
*/

package org.genivi.navigation.poiservice

import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl"
import org.genivi.navigation.poiservice.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: .**>
			Version ^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.**>
			Handle poiSearchHandle	
			<** @description : max size of the results list.**>
			UInt16 maxSize				
			<** @description: struct(lat,lon,alt).**>			
			Coordinate3D location									
			<** @description: array[struct(id,radius)].**>						
			CategoryAndRadius[] poiCategories
			<** @description : array[struct(name, poiCategory, type, value, operator, mandatory)].**>
			AttributeDetails[] 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.**>
			Handle 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.**>
			Handle poiSearchHandle				
			<** @description : List of attributes id to retrieve. This is optional and the list could be empty.**>
			AttributeID[] 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)].**>
			PoiCAMDetails[] 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].**>
			POI_ID[] source_id				
		}	
		out {
			<** @description : array[(details, categories, attributes)] .**>
			SearchResultDetails[] results				
		}	
	}
	
	}