1f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo/*
2f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo * Copyright (C) 2017 The Android Open Source Project
3f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo *
4f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo * Licensed under the Apache License, Version 2.0 (the "License");
5f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo * you may not use this file except in compliance with the License.
6f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo * You may obtain a copy of the License at
7f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo *
8f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo *      http://www.apache.org/licenses/LICENSE-2.0
9f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo *
10f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo * Unless required by applicable law or agreed to in writing, software
11f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo * distributed under the License is distributed on an "AS IS" BASIS,
12f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo * See the License for the specific language governing permissions and
14f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo * limitations under the License.
15f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo */
16f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo
17f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomopackage android.hardware.gnss@1.1;
18f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo
19f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomoimport @1.0::IGnssMeasurement;
20ed90e4dd9e1601702635412a048a7e77d3faec3fWyatt Rileyimport IGnssMeasurementCallback;
21f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo
22f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo/**
23f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo * Extended interface for GNSS Measurements support.
24f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo */
25f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomointerface IGnssMeasurement extends @1.0::IGnssMeasurement {
26f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo
27f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo    /**
28f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     * Initializes the interface and registers the callback routines with the HAL. After a
29f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     * successful call to 'setCallback_1_1' the HAL must begin to provide updates at an average
30f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     * output rate of 1Hz (occasional intra-measurement time offsets in the range from 0-2000msec
31f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     * can be tolerated.)
32f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     *
33f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     * @param callback Handle to GnssMeasurement callback interface.
34f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     * @param enableFullTracking If true, GNSS chipset must switch off duty cycling. In such mode
35f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     *     no clock discontinuities are expected and, when supported, carrier phase should be
365d21ab2cc162b4d4d23aa62faea2ec2148d888e0Yu-Han Yang     *     continuous in good signal conditions. All non-blacklisted, healthy constellations,
375d21ab2cc162b4d4d23aa62faea2ec2148d888e0Yu-Han Yang     *     satellites and frequency bands that the chipset supports must be reported in this mode.
385d21ab2cc162b4d4d23aa62faea2ec2148d888e0Yu-Han Yang     *     The GNSS chipset is allowed to consume more power in this mode. If false, API must behave
395d21ab2cc162b4d4d23aa62faea2ec2148d888e0Yu-Han Yang     *     as in HAL V1_0, optimizing power via duty cycling, constellations and frequency limits,
405d21ab2cc162b4d4d23aa62faea2ec2148d888e0Yu-Han Yang     *     etc.
41f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     *
42f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     * @return initRet Returns SUCCESS if successful. Returns ERROR_ALREADY_INIT if a callback has
43f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     *     already been registered without a corresponding call to 'close'. Returns ERROR_GENERIC
44f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     *     for any other error. The HAL must not generate any other updates upon returning this
45f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     *     error code.
46f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo     */
47f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo    setCallback_1_1(IGnssMeasurementCallback callback, bool enableFullTracking)
48f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo         generates (GnssMeasurementStatus initRet);
49f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo
50f0b070771b6a1f58b12d5d0d1117d1d6cb285ae5gomo};
51