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 IAGnssRilCallback; 20*4d7e907cSAndroid Build Coastguard Worker 21*4d7e907cSAndroid Build Coastguard Worker/** 22*4d7e907cSAndroid Build Coastguard Worker * Extended interface for AGNSS RIL support. An Assisted GNSS Radio Interface 23*4d7e907cSAndroid Build Coastguard Worker * Layer interface allows the GNSS chipset to request radio interface layer 24*4d7e907cSAndroid Build Coastguard Worker * information from Android platform. Examples of such information are reference 25*4d7e907cSAndroid Build Coastguard Worker * location, unique subscriber ID, phone number string and network availability changes. 26*4d7e907cSAndroid Build Coastguard Worker */ 27*4d7e907cSAndroid Build Coastguard Workerinterface IAGnssRil { 28*4d7e907cSAndroid Build Coastguard Worker @export(name="", value_prefix="AGPS_SETID_TYPE_") 29*4d7e907cSAndroid Build Coastguard Worker enum SetIDType : uint8_t { 30*4d7e907cSAndroid Build Coastguard Worker NONE = 0, 31*4d7e907cSAndroid Build Coastguard Worker IMSI = 1, 32*4d7e907cSAndroid Build Coastguard Worker MSISDM = 2 33*4d7e907cSAndroid Build Coastguard Worker }; 34*4d7e907cSAndroid Build Coastguard Worker 35*4d7e907cSAndroid Build Coastguard Worker @export(name="", value_prefix="AGPS_RIL_NETWORK_TYPE_") 36*4d7e907cSAndroid Build Coastguard Worker enum NetworkType : uint8_t { 37*4d7e907cSAndroid Build Coastguard Worker MOBILE = 0, 38*4d7e907cSAndroid Build Coastguard Worker WIFI = 1, 39*4d7e907cSAndroid Build Coastguard Worker MMS = 2, 40*4d7e907cSAndroid Build Coastguard Worker SUPL = 3, 41*4d7e907cSAndroid Build Coastguard Worker DUN = 4, 42*4d7e907cSAndroid Build Coastguard Worker HIPRI = 5, 43*4d7e907cSAndroid Build Coastguard Worker WIMAX = 6, 44*4d7e907cSAndroid Build Coastguard Worker }; 45*4d7e907cSAndroid Build Coastguard Worker 46*4d7e907cSAndroid Build Coastguard Worker @export(name="", value_prefix="AGPS_REF_LOCATION_TYPE_") 47*4d7e907cSAndroid Build Coastguard Worker enum AGnssRefLocationType : uint8_t { 48*4d7e907cSAndroid Build Coastguard Worker GSM_CELLID = 1, 49*4d7e907cSAndroid Build Coastguard Worker UMTS_CELLID = 2, 50*4d7e907cSAndroid Build Coastguard Worker LTE_CELLID = 4, 51*4d7e907cSAndroid Build Coastguard Worker }; 52*4d7e907cSAndroid Build Coastguard Worker 53*4d7e907cSAndroid Build Coastguard Worker /** CellID for 2G, 3G and LTE, used in AGNSS. */ 54*4d7e907cSAndroid Build Coastguard Worker struct AGnssRefLocationCellID { 55*4d7e907cSAndroid Build Coastguard Worker AGnssRefLocationType type; 56*4d7e907cSAndroid Build Coastguard Worker 57*4d7e907cSAndroid Build Coastguard Worker /** Mobile Country Code. */ 58*4d7e907cSAndroid Build Coastguard Worker uint16_t mcc; 59*4d7e907cSAndroid Build Coastguard Worker 60*4d7e907cSAndroid Build Coastguard Worker /** 61*4d7e907cSAndroid Build Coastguard Worker * Mobile Network Code .*/ 62*4d7e907cSAndroid Build Coastguard Worker uint16_t mnc; 63*4d7e907cSAndroid Build Coastguard Worker 64*4d7e907cSAndroid Build Coastguard Worker /** 65*4d7e907cSAndroid Build Coastguard Worker * Location Area Code in 2G, 3G and LTE. In 3G lac is discarded. In LTE, 66*4d7e907cSAndroid Build Coastguard Worker * lac is populated with tac, to ensure that we don't break old clients that 67*4d7e907cSAndroid Build Coastguard Worker * might rely in the old (wrong) behavior. 68*4d7e907cSAndroid Build Coastguard Worker */ 69*4d7e907cSAndroid Build Coastguard Worker uint16_t lac; 70*4d7e907cSAndroid Build Coastguard Worker 71*4d7e907cSAndroid Build Coastguard Worker /** Cell id in 2G. Utran Cell id in 3G. Cell Global Id EUTRA in LTE. */ 72*4d7e907cSAndroid Build Coastguard Worker uint32_t cid; 73*4d7e907cSAndroid Build Coastguard Worker 74*4d7e907cSAndroid Build Coastguard Worker /** Tracking Area Code in LTE. */ 75*4d7e907cSAndroid Build Coastguard Worker uint16_t tac; 76*4d7e907cSAndroid Build Coastguard Worker 77*4d7e907cSAndroid Build Coastguard Worker /** Physical Cell id in LTE (not used in 2G and 3G) */ 78*4d7e907cSAndroid Build Coastguard Worker uint16_t pcid; 79*4d7e907cSAndroid Build Coastguard Worker }; 80*4d7e907cSAndroid Build Coastguard Worker 81*4d7e907cSAndroid Build Coastguard Worker /** Represents ref locations */ 82*4d7e907cSAndroid Build Coastguard Worker struct AGnssRefLocation { 83*4d7e907cSAndroid Build Coastguard Worker AGnssRefLocationType type; 84*4d7e907cSAndroid Build Coastguard Worker 85*4d7e907cSAndroid Build Coastguard Worker AGnssRefLocationCellID cellID; 86*4d7e907cSAndroid Build Coastguard Worker }; 87*4d7e907cSAndroid Build Coastguard Worker 88*4d7e907cSAndroid Build Coastguard Worker /** 89*4d7e907cSAndroid Build Coastguard Worker * Opens the AGNSS interface and provides the callback routines 90*4d7e907cSAndroid Build Coastguard Worker * to the implementation of this interface. 91*4d7e907cSAndroid Build Coastguard Worker * 92*4d7e907cSAndroid Build Coastguard Worker * @param callback Interface for AGnssRil callbacks. 93*4d7e907cSAndroid Build Coastguard Worker */ 94*4d7e907cSAndroid Build Coastguard Worker setCallback(IAGnssRilCallback callback); 95*4d7e907cSAndroid Build Coastguard Worker 96*4d7e907cSAndroid Build Coastguard Worker /** 97*4d7e907cSAndroid Build Coastguard Worker * Sets the reference location. 98*4d7e907cSAndroid Build Coastguard Worker * 99*4d7e907cSAndroid Build Coastguard Worker * @param agnssReflocation AGNSS reference location CellID. 100*4d7e907cSAndroid Build Coastguard Worker */ 101*4d7e907cSAndroid Build Coastguard Worker setRefLocation(AGnssRefLocation agnssReflocation); 102*4d7e907cSAndroid Build Coastguard Worker 103*4d7e907cSAndroid Build Coastguard Worker /** 104*4d7e907cSAndroid Build Coastguard Worker * Sets the SET ID. 105*4d7e907cSAndroid Build Coastguard Worker * 106*4d7e907cSAndroid Build Coastguard Worker * @param type Must be populated with either IMSI or MSISDN or NONE. 107*4d7e907cSAndroid Build Coastguard Worker * @param setid If type is IMSI then setid is populated with 108*4d7e907cSAndroid Build Coastguard Worker * a string representing the unique Subscriber ID, for example, the IMSI for 109*4d7e907cSAndroid Build Coastguard Worker * a GMS phone. If type is MSISDN, then setid must contain 110*4d7e907cSAndroid Build Coastguard Worker * the phone number string for line 1. For example, the MSISDN for a GSM phone. 111*4d7e907cSAndroid Build Coastguard Worker * If the type is NONE, then the string must be empty. 112*4d7e907cSAndroid Build Coastguard Worker * 113*4d7e907cSAndroid Build Coastguard Worker * @return success True if all parameters were valid and operation was 114*4d7e907cSAndroid Build Coastguard Worker * successful. 115*4d7e907cSAndroid Build Coastguard Worker */ 116*4d7e907cSAndroid Build Coastguard Worker setSetId(SetIDType type, string setid) generates (bool success); 117*4d7e907cSAndroid Build Coastguard Worker 118*4d7e907cSAndroid Build Coastguard Worker /** 119*4d7e907cSAndroid Build Coastguard Worker * Notify GNSS of network status changes. 120*4d7e907cSAndroid Build Coastguard Worker * 121*4d7e907cSAndroid Build Coastguard Worker * @param connected Indicates whether network connectivity exists and 122*4d7e907cSAndroid Build Coastguard Worker * it is possible to establish connections and pass data. 123*4d7e907cSAndroid Build Coastguard Worker * @param type Indicates the kind of network, for eg. mobile, wifi etc. 124*4d7e907cSAndroid Build Coastguard Worker * @param roaming Indicates whether the device is currently roaming on 125*4d7e907cSAndroid Build Coastguard Worker * this network. 126*4d7e907cSAndroid Build Coastguard Worker * 127*4d7e907cSAndroid Build Coastguard Worker * @return success True is all parameters were valid and operation was 128*4d7e907cSAndroid Build Coastguard Worker * successful. 129*4d7e907cSAndroid Build Coastguard Worker */ 130*4d7e907cSAndroid Build Coastguard Worker updateNetworkState(bool connected, NetworkType type, bool roaming) 131*4d7e907cSAndroid Build Coastguard Worker generates (bool success); 132*4d7e907cSAndroid Build Coastguard Worker 133*4d7e907cSAndroid Build Coastguard Worker /** 134*4d7e907cSAndroid Build Coastguard Worker * Notify GNSS of network status changes and current APN. 135*4d7e907cSAndroid Build Coastguard Worker * 136*4d7e907cSAndroid Build Coastguard Worker * @param available Indicates whether network connectivity is available. 137*4d7e907cSAndroid Build Coastguard Worker * @param apn String containing the telephony preferred Access Point Name. 138*4d7e907cSAndroid Build Coastguard Worker * 139*4d7e907cSAndroid Build Coastguard Worker * @return success True if all parameters were valid and the operation was 140*4d7e907cSAndroid Build Coastguard Worker * successful. 141*4d7e907cSAndroid Build Coastguard Worker */ 142*4d7e907cSAndroid Build Coastguard Worker updateNetworkAvailability(bool available, string apn) generates (bool success); 143*4d7e907cSAndroid Build Coastguard Worker 144*4d7e907cSAndroid Build Coastguard Worker}; 145