Merge "SIM slot related interface changes"

This commit is contained in:
Treehugger Robot 2018-01-02 22:17:21 +00:00 committed by Gerrit Code Review
commit 384fa7b6dc
5 changed files with 163 additions and 9 deletions

View file

@ -19,6 +19,7 @@ hidl_interface {
"android.hidl.base@1.0",
],
types: [
"CardStatus",
"CellIdentityCdma",
"CellIdentityGsm",
"CellIdentityLte",
@ -35,6 +36,8 @@ hidl_interface {
"NetworkScanResult",
"RadioConst",
"ScanIntervalRange",
"SimSlotStatus",
"SlotState",
],
gen_java: true,
}

View file

@ -37,4 +37,46 @@ interface IRadio extends @1.1::IRadio {
* Response function is IRadioResponse.startNetworkScanResponse()
*/
oneway startNetworkScan_1_2(int32_t serial, NetworkScanRequest request);
/**
* Get SIM Slot status.
*
* Request provides the slot status of all active and inactive SIM slots and whether card is
* present in the slots or not.
*
* @param serial Serial number of request.
*
* Response callback is IRadioResponse.getSimSlotsStatusResponse()
*/
oneway getSimSlotsStatus(int32_t serial);
/**
* Set SIM Slot mapping.
* Maps the logical slots to the physical slots. Logical slot is the slot that is seen by modem.
* Physical slot is the actual physical slot. Request maps the physical slot to logical slot.
* Logical slots that are already mapped to the requested physical slot are not impacted.
*
* Example no. of logical slots 1 and physical slots 2:
* The only logical slot (index 0) can be mapped to first physical slot (value 0) or second
* physical slot(value 1), while the other physical slot remains unmapped and inactive.
* slotMap[0] = 1 or slotMap[0] = 0
*
* Example no. of logical slots 2 and physical slots 2:
* First logical slot (index 0) can be mapped to physical slot 1 or 2 and other logical slot
* can be mapped to other physical slot. Each logical slot must be mapped to a physical slot.
* slotMap[0] = 0 and slotMap[1] = 1 or slotMap[0] = 1 and slotMap[1] = 0
*
* @param serial Serial number of request
* @param slotMap Logical to physical slot mapping, size == no. of radio instances. Index is
* mapping to logical slot and value to physical slot, need to provide all the slots
* mapping when sending request in case of multi slot device.
* EX: uint32_t slotMap[logical slot] = physical slot
* index 0 is the first logical_slot number of logical slots is equal to number of Radio
* instances and number of physical slots is equal to size of slotStatus in
* getSimSlotsStatusResponse
*
* Response callback is IRadioResponse.setSimSlotsMappingResponse()
*/
oneway setSimSlotsMapping(int32_t serial, vec<uint32_t> slotMap);
};

View file

@ -28,4 +28,13 @@ interface IRadioIndication extends @1.1::IRadioIndication {
* Incremental network scan results
*/
oneway networkScanResult_1_2(RadioIndicationType type, NetworkScanResult result);
};
/**
* Indicates SIM slot status change.
*
* @param type Type of radio indication
* @param slotStatus new slot status info with size equals to the number of physical slots on
* the device
*/
oneway simSlotsStatusChanged(RadioIndicationType type, vec<SimSlotStatus> slotStatus);
};

View file

@ -41,4 +41,42 @@ interface IRadioResponse extends @1.1::IRadioResponse {
* RadioError:CANCELLED
*/
oneway getCellInfoListResponse_1_2(RadioResponseInfo info, vec<CellInfo> cellInfo);
/**
* @param info Response info struct containing response type, serial no. and error
* @param cardStatus ICC card status as defined by CardStatus in types.hal
*
* Valid errors returned:
* RadioError:NONE
*/
oneway getIccCardStatusResponse_1_2(RadioResponseInfo info, CardStatus cardStatus);
/**
* @param info Response info struct containing response type, serial no. and error
* @param slotStatus Sim slot struct containing all the physical SIM slots info with size
* equals to the number of physical slots on the device
*
* Valid errors returned:
* RadioError:NONE
* RadioError:RADIO_NOT_AVAILABLE
* RadioError:REQUEST_NOT_SUPPORTED
* RadioError:NO_MEMORY
* RadioError:INTERNAL_ERR
* RadioError:MODEM_ERR
* RadioError:INVALID_ARGUMENTS
*/
oneway getSimSlotsStatusResponse(RadioResponseInfo info, vec<SimSlotStatus> slotStatus);
/**
* @param info Response info struct containing response type, serial no. and error
*
* Valid errors returned:
* RadioError:NONE
* RadioError:RADIO_NOT_AVAILABLE
* RadioError:REQUEST_NOT_SUPPORTED
* RadioError:NO_MEMORY
* RadioError:INTERNAL_ERR
* RadioError:MODEM_ERR
*/
oneway setSimSlotsMappingResponse(RadioResponseInfo info);
};

View file

@ -17,6 +17,8 @@
package android.hardware.radio@1.2;
import @1.0::CdmaSignalStrength;
import @1.0::CardState;
import @1.0::CardStatus;
import @1.0::CellIdentityCdma;
import @1.0::CellIdentityGsm;
import @1.0::CellIdentityLte;
@ -187,37 +189,97 @@ struct CellInfo {
* Cell type for selecting from union CellInfo.
*/
CellInfoType cellInfoType;
/*
/**
* True if this cell is registered false if not registered.
*/
bool registered;
/*
/**
* Type of time stamp represented by timeStamp.
*/
TimeStampType timeStampType;
/*
/**
* Time in nanos as returned by ril_nano_time.
*/
uint64_t timeStamp;
/*
/**
* Only one of the below vectors must be of size 1 based on the CellInfoType and others must be
* of size 0.
*/
vec<CellInfoGsm> gsm;
/*
/**
* Valid only if type = cdma and size = 1 else must be empty.
*/
vec<CellInfoCdma> cdma;
/*
/**
* Valid only if type = lte and size = 1 else must be empty.
*/
vec<CellInfoLte> lte;
/*
/**
* Valid only if type = wcdma and size = 1 else must be empty.
*/
vec<CellInfoWcdma> wcdma;
/*
/**
* Valid only if type = tdscdma and size = 1 else must be empty.
*/
vec<CellInfoTdscdma> tdscdma;
};
enum SlotState : int32_t {
/**
* Physical slot is inactive
*/
INACTIVE = 0x00,
/**
* Physical slot is active
*/
ACTIVE = 0x01,
};
struct CardStatus {
@1.0::CardStatus base;
uint32_t physicalSlotId;
/**
* An Answer To Reset (ATR) is a message output by a Smart Card conforming to ISO/IEC 7816
* standards, following electrical reset of the card's chip. The ATR conveys information about
* the communication parameters proposed by the card, and the card's nature and state.
*
* This data is applicable only when cardState is CardState:PRESENT.
*/
string atr;
/**
* Integrated Circuit Card IDentifier (ICCID) is Unique Identifier of the SIM CARD. File is
* located in the SIM card at EFiccid (0x2FE2) as per ETSI 102.221. The ICCID is defined by
* the ITU-T recommendation E.118 ISO/IEC 7816.
*
* This data is applicable only when cardState is CardState:PRESENT.
*/
string iccid;
};
struct SimSlotStatus {
/**
* Card state in the physical slot
*/
CardState cardState;
/**
* Slot state Active/Inactive
*/
SlotState slotState;
/**
* An Answer To Reset (ATR) is a message output by a Smart Card conforming to ISO/IEC 7816
* standards, following electrical reset of the card's chip. The ATR conveys information about
* the communication parameters proposed by the card, and the card's nature and state.
*
* This data is applicable only when cardState is CardState:PRESENT.
*/
string atr;
uint32_t logicalSlotId;
/**
* Integrated Circuit Card IDentifier (ICCID) is Unique Identifier of the SIM CARD. File is
* located in the SIM card at EFiccid (0x2FE2) as per ETSI 102.221. The ICCID is defined by
* the ITU-T recommendation E.118 ISO/IEC 7816.
*
* This data is applicable only when cardState is CardState:PRESENT.
*/
string iccid;
};