1*4d7e907cSAndroid Build Coastguard Worker/* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2016 The Android Open Source Project 3*4d7e907cSAndroid Build Coastguard Worker * 4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*4d7e907cSAndroid Build Coastguard Worker * 8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*4d7e907cSAndroid Build Coastguard Worker * 10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License. 15*4d7e907cSAndroid Build Coastguard Worker */ 16*4d7e907cSAndroid Build Coastguard Worker 17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected]; 18*4d7e907cSAndroid Build Coastguard Worker 19*4d7e907cSAndroid Build Coastguard Workerimport IGnssMeasurementCallback; 20*4d7e907cSAndroid Build Coastguard Worker 21*4d7e907cSAndroid Build Coastguard Worker/** 22*4d7e907cSAndroid Build Coastguard Worker * Extended interface for GNSS Measurements support. 23*4d7e907cSAndroid Build Coastguard Worker */ 24*4d7e907cSAndroid Build Coastguard Workerinterface IGnssMeasurement { 25*4d7e907cSAndroid Build Coastguard Worker @export(name="", value_prefix="GPS_MEASUREMENT_") 26*4d7e907cSAndroid Build Coastguard Worker enum GnssMeasurementStatus : int32_t { 27*4d7e907cSAndroid Build Coastguard Worker SUCCESS = 0, 28*4d7e907cSAndroid Build Coastguard Worker ERROR_ALREADY_INIT = -100, 29*4d7e907cSAndroid Build Coastguard Worker ERROR_GENERIC = -101 30*4d7e907cSAndroid Build Coastguard Worker }; 31*4d7e907cSAndroid Build Coastguard Worker 32*4d7e907cSAndroid Build Coastguard Worker /** 33*4d7e907cSAndroid Build Coastguard Worker * Initializes the interface and registers the callback routines with the HAL. 34*4d7e907cSAndroid Build Coastguard Worker * After a successful call to 'setCallback' the HAL must begin to provide updates at 35*4d7e907cSAndroid Build Coastguard Worker * an average output rate of 1Hz (occasional 36*4d7e907cSAndroid Build Coastguard Worker * intra-measurement time offsets in the range from 0-2000msec can be 37*4d7e907cSAndroid Build Coastguard Worker * tolerated.) 38*4d7e907cSAndroid Build Coastguard Worker * 39*4d7e907cSAndroid Build Coastguard Worker * @param callback Handle to GnssMeasurement callback interface. 40*4d7e907cSAndroid Build Coastguard Worker * 41*4d7e907cSAndroid Build Coastguard Worker * @return initRet Returns SUCCESS if successful. 42*4d7e907cSAndroid Build Coastguard Worker * Returns ERROR_ALREADY_INIT if a callback has already been 43*4d7e907cSAndroid Build Coastguard Worker * registered without a corresponding call to 'close'. 44*4d7e907cSAndroid Build Coastguard Worker * Returns ERROR_GENERIC for any other error. The HAL must 45*4d7e907cSAndroid Build Coastguard Worker * not generate any other updates upon returning this error code. 46*4d7e907cSAndroid Build Coastguard Worker */ 47*4d7e907cSAndroid Build Coastguard Worker setCallback(IGnssMeasurementCallback callback) generates (GnssMeasurementStatus initRet); 48*4d7e907cSAndroid Build Coastguard Worker 49*4d7e907cSAndroid Build Coastguard Worker /** 50*4d7e907cSAndroid Build Coastguard Worker * Stops updates from the HAL, and unregisters the callback routines. 51*4d7e907cSAndroid Build Coastguard Worker * After a call to close(), the previously registered callbacks must be 52*4d7e907cSAndroid Build Coastguard Worker * considered invalid by the HAL. 53*4d7e907cSAndroid Build Coastguard Worker * If close() is invoked without a previous setCallback, this function must perform 54*4d7e907cSAndroid Build Coastguard Worker * no work. 55*4d7e907cSAndroid Build Coastguard Worker */ 56*4d7e907cSAndroid Build Coastguard Worker close(); 57*4d7e907cSAndroid Build Coastguard Worker 58*4d7e907cSAndroid Build Coastguard Worker}; 59