1 <?xml version="1.0" standalone="no"?>
2 <?xml-stylesheet type="text/xml" href="protocol2html.xsl"?>
4 <interface name="policy table interface base" version="0.0"
7 <!-- Common parameters start -->
9 <element name="EMERGENCY" />
10 <element name="NAVIGATION" />
11 <element name="VOICECOM" />
12 <element name="COMMUNICATION" />
13 <element name="NORMAL" />
14 <element name="NONE" />
17 <enum name="HmiLevel">
18 <element name="BACKGROUND" />
19 <element name="FULL" />
20 <element name="LIMITED" />
21 <element name="NONE" />
24 <enum name="Parameter">
25 <element name="gps" />
26 <element name="speed" />
27 <element name="engineTorque" />
28 <element name="externalTemperature" />
29 <element name="fuelLevel" />
30 <element name="fuelLevel_State" />
31 <element name="headLampStatus" />
32 <element name="instantFuelConsumption" />
33 <element name="odometer" />
34 <element name="tirePressure" />
35 <element name="wiperStatus" />
36 <element name="vin" />
37 <element name="accPedalPosition" />
38 <element name="beltStatus" />
39 <element name="driverBraking" />
40 <element name="prndl" />
41 <element name="rpm" />
42 <element name="steeringWheelAngle" />
43 <element name="myKey" />
44 <element name="airbagStatus" />
45 <element name="bodyInformation" />
46 <element name="clusterModeStatus" />
47 <element name="deviceStatus" />
48 <element name="emergencyEvent" />
49 <element name="eCallInfo" />
52 <enum name="AppHMIType">
53 <element name="DEFAULT" />
54 <element name="COMMUNICATION" />
55 <element name="MEDIA" />
56 <element name="MESSAGING" />
57 <element name="NAVIGATION" />
58 <element name="INFORMATION" />
59 <element name="SOCIAL" />
60 <element name="BACKGROUND_PROCESS" />
61 <element name="TESTING" />
62 <element name="SYSTEM" />
64 <!-- Common parameters end -->
66 <!-- app_policies section start -->
68 <typedef name="Strings" type="String" maxlength="255" array="true"
71 <typedef name="AppHMITypes" type="AppHMIType" array="true"
74 <struct name="ApplicationParams">
75 <param name="groups" type="Strings" />
76 <param name="nicknames" type="Strings" mandatory="false" />
77 <param name="AppHMIType" type="AppHMITypes" mandatory="false" />
78 <param name="memory_kb" type="Integer" minvalue="1" maxvalue="65225" mandatory="false"/>
79 <param name="watchdog_timer_ms" type="Integer" minvalue="1"
80 maxvalue="65225" mandatory="false"/>
81 <param name="certificate" type="String" minlength="0" maxlength="255"
85 <typedef name="HmiLevels" type="HmiLevel" array="true"
87 <typedef name="Parameters" type="Parameter" array="true"
90 <struct name="RpcParameters">
91 <!-- maxsizes are equal to number of currently known elements of
93 <param name="hmi_levels" type="HmiLevels" />
94 <param name="parameters" type="Parameters" mandatory="false" />
97 <!-- maxsizes are equal to number of currently known elements of given
99 <typedef name="Rpc" type="RpcParameters" map="true" maxsize="50" />
102 <param name="user_consent_prompt" type="String" minlegth="1"
103 maxlength="255" mandatory="false"/>
104 <param name="rpcs" type="Rpc" null_values_allowed="true"/>
106 <!-- app_policies section end -->
108 <!-- module_config section start -->
109 <!-- minlenght="10" since minimum expected is "http://a.b" -->
110 <typedef name="URL" type="String" minlength="10" maxlength="255"
111 array="true" minsize="1" maxsize="255" />
113 <typedef name="URLList" type="URL" map="true" minsize="1"
116 <!-- max number of services is limited to 255 according to protocol specification -->
117 <typedef name="ServiceEndpoints" type="URLList" map="true"
118 minsize="1" maxsize="255" />
120 <typedef name="NumberOfNotificationsPerMinute" type="Integer"
121 map="true" maxsize="6" minvalue="0" maxvalue="255" />
123 <typedef name="SecondsBetweenRetries" type="Integer" array="true"
124 maxsize="10" minvalue="1" maxvalue="1000" />
126 <struct name="ModuleConfig">
127 <param name="device_certificates" type="String" minlength="1" maxlength="100" mandatory="false" map="true" minsize="1" maxsize="255" />
128 <param name="preloaded_pt" type="Boolean" mandatory="false" />
129 <param name="exchange_after_x_ignition_cycles" type="Integer"
131 <param name="exchange_after_x_kilometers" type="Integer"
132 maxvalue="4294967296" />
133 <param name="exchange_after_x_days" type="Integer"
135 <param name="timeout_after_x_seconds" type="Integer"
137 <param name="seconds_between_retries" type="SecondsBetweenRetries" />
138 <param name="endpoints" type="ServiceEndpoints" />
139 <param name="notifications_per_minute_by_priority" type="NumberOfNotificationsPerMinute" />
140 <param name="vehicle_make" type="String" maxlength="100"
142 <param name="vehicle_model" type="String" maxlength="100"
144 <param name="vehicle_year" type="String" minlength="4" maxlength="4"
147 <!-- module_config section end -->
149 <!-- consumer_friendly_messages section start -->
150 <struct name="MessageString">
151 <param name="line1" type="String" maxlength="255"
153 <param name="line2" type="String" maxlength="255"
155 <param name="tts" type="String" maxlength="65535" mandatory="false" />
156 <param name="label" type="String" maxlength="255"
158 <param name="textBody" type="String" maxlength="500"
162 <typedef name="Languages" map="true" type="MessageString"
163 maxsize="500" mandatory="false" />
165 <struct name="MessageLanguages">
166 <param name="languages" type="Languages" />
169 <typedef name="Messages" map="true" type="MessageLanguages"
172 <struct name="ConsumerFriendlyMessages">
173 <param name="version" type="String" maxlength="100" />
174 <param name="messages" type="Messages" mandatory="false" />
176 <!-- consumer_friendly_messages section end -->
178 <!-- module_meta section start -->
179 <struct name="ModuleMeta">
181 <!-- module_meta section end -->
183 <!-- usage_and_error_counts section start -->
184 <struct name="AppLevel">
187 <typedef name="AppLevels" type="AppLevel" map="true" maxsize="255" />
189 <struct name="UsageAndErrorCounts">
190 <param name="app_level" type="AppLevels" mandatory="false" />
192 <!-- usage_and_error_counts section end -->
194 <!-- device_data section start -->
195 <struct name="DeviceParams">
197 <!-- device_data section end -->
199 <!-- policy_table section start -->
200 <typedef name="ApplicationPolicies" map="true" type="ApplicationParams" null_values_allowed="true" minsize="1" maxsize="1000" />
202 <typedef name="FunctionalGroupings" map="true" type="Rpcs"
203 minsize="1" maxsize="255" />
205 <typedef name="DeviceData" map="true" type="DeviceParams"
208 <struct name="PolicyTable">
209 <!-- maxsize for app_policies can be changed, if necessary -->
210 <param name="app_policies" type="ApplicationPolicies" />
211 <param name="functional_groupings" type="FunctionalGroupings" />
212 <param name="consumer_friendly_messages" type="ConsumerFriendlyMessages" />
213 <param name="module_config" type="ModuleConfig" />
214 <param name="module_meta" type="ModuleMeta" mandatory="false"/>
215 <param name="usage_and_error_counts" type="UsageAndErrorCounts" mandatory="false" />
216 <param name="device_data" type="DeviceData" mandatory="false" />
218 <!-- policy_table section end -->
220 <!-- Root element -->
221 <struct name="Table">
222 <param name="policy_table" type="PolicyTable" />