1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (C) 2021 The Android Open Source Project
3
4     Licensed under the Apache License, Version 2.0 (the "License");
5     you may not use this file except in compliance with the License.
6     You may obtain a copy of the License at
7
8          http://www.apache.org/licenses/LICENSE-2.0
9
10     Unless required by applicable law or agreed to in writing, software
11     distributed under the License is distributed on an "AS IS" BASIS,
12     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13     See the License for the specific language governing permissions and
14     limitations under the License.
15-->
16
17<!-- These resources are around just to allow their values to be customized
18     for different hardware and product builds.  Do not translate.
19
20     NOTE: The naming convention is "config_camelCaseValue". Some legacy
21     entries do not follow the convention, but all new entries should. -->
22
23<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
24    <!-- boolean indicating whether or not the system supports multiple UWB chips -->
25    <bool name="config_isMultichip">false</bool>
26
27    <!-- Filepath of multichip configuration file. This is an xml file that follows the format
28    specified in multichip-parser/uwbConfig.xsd. If config_isMultichip is false, this value will be
29    ignored. -->
30    <string translatable="false" name="config_multichipConfigPath"></string>
31
32    <!-- When true, the filter engine will alter UWB values to improve accuracy. -->
33    <bool name="enable_filters">true</bool>
34
35    <!-- Used to filter distance measurements. Determines percentage (0-100) of inliers within the
36    sliding window will be used to perform the average. At least one inlier will be used.
37    Therefore, a value of 0 is a true median, and a value  of 100 is a true average. -->
38    <integer name="filter_distance_inliers_percent">0</integer>
39
40    <!-- The size in samples of the sliding window for the distance filter. Note that this increases
41    latency to about half the window size. -->
42    <integer name="filter_distance_window">3</integer>
43
44    <!-- Used to filter AoA angle measurements. Determines percentage (1-100) of inliers within the
45    sliding window will be used to perform the average. At least one inlier will be used.
46    Therefore, a value of 0 is a true median, and a value  of 100 is a true average. -->
47    <integer name="filter_angle_inliers_percent">50</integer>
48
49    <!-- The size in samples of the sliding window for the AoA filters. Note that this increases
50    latency to about half the window size. -->
51    <integer name="filter_angle_window">5</integer>
52
53    <!-- Selects which pose source will be used by default to anticipate the next UWB measurement.
54    The pose source helps lower latency by shifting the filter states to reflect how the phone has
55    moved.
56    NONE = No pose source.
57    ROTATION_VECTOR = Requires gyro, accel and compass. Very accurate, rotation only.
58    GYRO = Gyro only. Less accurate, Saves a tiny bit of power.
59    SIXDOF = 6DOF sensor. Extremely accurate, accounts for position. Not available on most hardware.
60    DOUBLE_INTEGRATE = Double integration. Under development. Expect very bad motion drift.
61    -->
62    <string name="pose_source_type">ROTATION_VECTOR</string>
63
64    <!-- Enables elevation estimation. Strongly recommended for hardware that doesn't support
65    elevation. This helps produce better predictions from pose changes, and improves the quality
66    of the AoA primer. This will override elevation readings from hardware that supports it! -->
67    <bool name="enable_primer_est_elevation">false</bool>
68
69    <!-- Enables the AoA conversion primer. This is needed on hardware that does not convert AoA
70    to spherical coordinates, including hardware that does not support elevation.-->
71    <bool name="enable_primer_aoa">true</bool>
72
73    <!-- Sets the field of view, in degrees. Note that this is in degrees from 0 (straight ahead),
74    which is not the same as how camera FOV is represented.
75    UWB values outside the field of view will be replaced with predicted values based on pose
76    changes. The FOV is circular, so a value of 90 will only provide continuous azimuth values if
77    elevation is zero.
78    If <=0 or >=180, the primer will be disabled, allowing an unlimited field of view. -->
79    <integer name="primer_fov_degrees">60</integer>
80
81    <!-- Enables the back azimuth primer. This is needed on hardware that does not report azimuth
82    values beyond +/-90deg. This primer determines if azimuth values are likely to be coming from
83    behind the phone in three ways:
84    1. The prediction expects the next reading to come from behind the user because the user has
85       rotated away from the signal.
86    2. Predictions based on pose changes inversely correlate with azimuth readings.
87    3. UWB readings show very little relationship to pose changes because of non-line-of-sight
88       conditions.
89    This works best with an FOV primer setting below 90 degrees to ensure that predictions are being
90    used across the 90-degree threshold. -->
91    <bool name="enable_azimuth_mirroring">true</bool>
92
93    <!-- Azimuth values arriving from behind the user are often very unreliable due to interference
94    from the user and hardware design. Setting this to true forces predictions for all rear-azimuth
95    values. When false, the mirrored azimuth reading will be used. -->
96    <bool name="predict_rear_azimuths">true</bool>
97
98    <!-- The number of samples to consider when determining if the azimuth needs mirroring. -->
99    <integer name="mirror_detection_window">5</integer>
100
101    <!-- How much correlation is required to make the assumption that the azimuth is in front of the
102    phone. Correlation is defined as the user's rotation rate in degrees per second, multiplied by
103    how accurately the UWB readings follow that movement. The accuracy is scored on a bell curve
104    defined by mirror_score_std_degrees.
105    The user must rotate at least this many degrees per second before action is taken, and often
106    more if the readings aren't correlating well. -->
107    <integer name="front_mirror_dps">12</integer>
108
109    <!-- How much correlation is required to make the assumption that the azimuth is behind the
110    the phone. See front_mirror_dps setting for more detail. -->
111    <integer name="back_mirror_dps">10</integer>
112
113    <!-- Sets the size of the bell curve on which the correlation of azimuth and pose changes are
114    scored. It should be about one standard deviation of the hardware's azimuth jitter, in degrees.
115    -->
116    <integer name="mirror_score_std_degrees">8</integer>
117
118    <!-- Sets how much noise influences the decision to switch to the back azimuth, in percent. Back
119    values are more likely to be inconsistent with predictions due to non-line-of-sight effects.
120    The radians of typical inconsistency is multiplied by this percentage and added to the degrees
121    of rear azimuth correlation, to increase the odds of deciding rear correlation is the best fit.
122    -->
123    <integer name="back_noise_influence_percent">8</integer>
124
125    <!-- Sets how long reports with an error code will be replaced with predicted reports, in
126     seconds. This is measured from the time of the last non-error report. -->
127    <integer name="prediction_timeout_seconds">5</integer>
128
129    <!-- The Advertising Profile AoA Criteria Angle. This is the threshold with which the
130    Azimuth and Elevation values (from received OwrAoa measurements) are compared, to determine if
131    the IoT device is being pointed to by the phone. -->
132    <integer name="advertise_aoa_criteria_angle">10</integer>
133
134    <!-- The Advertising profile time threshold (for the received Owr Aoa Measurements). This
135    parameter controls the time window during which the received OwrAoa measurements are considered
136    to be valid (for determining if the IoT device is being pointed to). -->
137    <integer name="advertise_time_threshold_millis">5000</integer>
138
139    <!-- The Advertising profile array size. This controls the number of received Owr Aoa
140    measurements (or derived values), that will be stored. -->
141    <integer name="advertise_array_size_to_check">10</integer>
142
143    <!-- The Advertising profile array start index, for the stored values from Owr Aoa
144    measurements. Only the stored values at index >= the array start index will be used in the
145    Azimuth/Elevation variance calculation. -->
146    <integer name="advertise_array_start_index_to_cal_variance">2</integer>
147
148    <!-- The Advertising profile array end index, for the stored values from Owr Aoa
149    measurements. Only the stored values at index < the array end index will be used in the
150    Azimuth/Elevation variance calculation. -->
151    <integer name="advertise_array_end_index_to_cal_variance">8</integer>
152
153    <!-- The Advertising profile trusted variance value. This is the threshold within which the
154    computed Azimuth/Elevation variance values (from the received OwrAoa measurements)
155    is acceptable. -->
156    <integer name="advertise_trusted_variance_value">5</integer>
157
158    <!-- Max number of Rx data packets (for a UWB session) to be stored. This parameter defines the
159    storage capacity for a UWB session, for incoming packets from a remote UWB device. -->
160    <integer name = "rx_data_max_packets_to_store">10</integer>
161
162    <!-- Whether background ranging is enabled or not
163     If enabled:
164       * Background 3p apps are allowed to open new ranging sessions
165       * When previously foreground 3p apps moves to background, sessions are not terminated
166    -->
167    <bool name = "background_ranging_enabled">false</bool>
168
169    <!-- Whether ranging error streak timer is enabled or not.
170    If disabled, session would not be automatically stopped if there is no peer available.
171    -->
172    <bool name = "ranging_error_streak_timer_enabled">true</bool>
173
174    <!-- Whether to send ranging stopped params for CCC session stop or not.
175    If enabled, newly added `CccRangingStoppedParams` are sent in `onStopped()` callback.
176    -->
177    <bool name = "ccc_ranging_stopped_params_send_enabled">false</bool>
178
179    <!-- Returns whether an absolute UWB initiation time should be computed and configured for
180    CCC ranging session(s).
181    If disabled, a relative UWB initiation time (the value in CCCStartRangingParams), is
182    configured for the CCC ranging session. -->
183    <bool name = "ccc_absolute_uwb_initiation_time_enabled">false</bool>
184
185    <!-- Whether to use location APIs in the algorithm to determine country code or not.
186    If disabled, will use other sources (telephony, wifi, etc) to determine device location for
187    UWB regulatory purposes.
188    -->
189    <bool name = "location_use_for_country_code_enabled">true</bool>
190
191    <!-- Whether to disable uwb until first toggle or not.
192    If enabled, UWB will remain disabled on boot until the user toggles UWB on for the first time.
193    -->
194    <bool name = "uwb_disabled_until_first_toggle">false</bool>
195
196    <!-- Whether to interpret CCC supported sync codes value as little endian.
197    If enabled, CCC supported sync codes value will be interpreted as little endian.
198    -->
199    <bool name = "ccc_supported_sync_codes_little_endian">false</bool>
200
201    <!-- Whether to support (and configure) RANGE_DATA_NTF_CONFIG and related UWB configuration
202    parameters for a CCC ranging session.
203    If disabled, the RANGE_DATA_NTF_CONFIG parameter will be configured with the value DISABLED.
204    -->
205    <bool name = "ccc_supported_range_data_ntf_config">false</bool>
206
207    <!-- Whether to use a persistent cache in the algorithm to determine country code or not.
208    If enabled, will fallback to the cache to determine device location for
209    UWB regulatory purposes when  other sources (telephony, wifi, location, etc) is not available.
210    -->
211    <bool name = "persistent_cache_use_for_country_code_enabled">false</bool>
212
213    <!-- Whether hardware idle turn off is enabled or not.
214    If enabled, some clients must explicitly request UWB to be enabled on top of user setting.
215    -->
216    <bool name = "hw_idle_turn_off_enabled">false</bool>
217
218     <!-- Whether multicast list update notification v2 is supported or not.
219     If enabled, the notification will be parsed into version 2 if uci major version is 2.0. -->
220    <bool name = "is_multicast_list_update_ntf_v2_supported">false</bool>
221
222     <!-- Whether multicast list update response v2 is supported or not.
223     If enabled, the response will be parsed into version 2 if uci major version is 2.0. -->
224    <bool name = "is_multicast_list_update_rsp_v2_supported">false</bool>
225
226    <!-- Whether or not the antenna operation mode shall be configured by the ANTENNA_MODE vendor
227    config param. If false, the FiRa-specified AOA_RESULT_REQ param is used instead. -->
228    <bool name = "is_antenna_mode_config_supported">false</bool>
229</resources>
230