Merge "[IRadioConfig] Generating AIDL definitions"

This commit is contained in:
Treehugger Robot 2021-09-22 01:49:23 +00:00 committed by Gerrit Code Review
commit 3dc7a46c36
12 changed files with 699 additions and 0 deletions

View file

@ -452,6 +452,14 @@
<instance>default</instance>
</interface>
</hal>
<hal format="aidl" optional="true">
<name>android.hardware.radio.config</name>
<version>1</version>
<interface>
<name>IRadioConfig</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.radio.config</name>
<version>1.3</version>

View file

@ -0,0 +1,55 @@
package {
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "hardware_interfaces_license"
// to get the below license kinds:
// SPDX-license-identifier-Apache-2.0
default_applicable_licenses: ["hardware_interfaces_license"],
}
aidl_interface {
name: "android.hardware.radio.config",
vendor_available: true,
srcs: ["android/hardware/radio/config/*.aidl"],
stability: "vintf",
imports: ["android.hardware.radio"],
backend: {
cpp: {
enabled: false,
},
java: {
sdk_version: "module_current",
},
ndk: {
vndk: {
enabled: true,
},
},
},
}
cc_library {
name: "android.hardware.radio.config-translate-ndk",
vendor_available: true,
shared_libs: [
"libbinder_ndk",
"libhidlbase",
"android.hardware.radio.config-V1-ndk_platform",
"android.hardware.radio.config@1.0",
"android.hardware.radio.config@1.1",
"android.hardware.radio.config@1.2",
"android.hardware.radio.config@1.3",
],
}
java_library {
name: "android.hardware.radio.config-translate-java",
libs: [
"android.hardware.radio.config-V1-java",
"android.hardware.radio.config-V1.0-java",
"android.hardware.radio.config-V1.1-java",
"android.hardware.radio.config-V1.2-java",
"android.hardware.radio.config-V1.3-java",
],
sdk_version: "module_current",
}

View file

@ -0,0 +1,53 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*
* This interface is used by telephony and telecom to talk to cellular radio for the purpose of
* radio configuration, and it is not associated with any specific modem or slot.
* All the functions have minimum one parameter:
* serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the
* duration of a method call. If clients provide colliding serials (including passing the same
* serial to different methods), multiple responses (one for each method call) must still be served.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.hardware.radio.config;
@VintfStability
interface IRadioConfig {
oneway void getHalDeviceCapabilities(in int serial);
oneway void getNumOfLiveModems(in int serial);
oneway void getPhoneCapability(in int serial);
oneway void getSimSlotsStatus(in int serial);
oneway void setNumOfLiveModems(in int serial, in byte numOfLiveModems);
oneway void setPreferredDataModem(in int serial, in byte modemId);
oneway void setResponseFunctions(in android.hardware.radio.config.IRadioConfigResponse radioConfigResponse, in android.hardware.radio.config.IRadioConfigIndication radioConfigIndication);
oneway void setSimSlotsMapping(in int serial, in int[] slotMap);
}

View file

@ -0,0 +1,38 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.hardware.radio.config;
@VintfStability
interface IRadioConfigIndication {
oneway void simSlotsStatusChanged(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.config.SimSlotStatus[] slotStatus);
}

View file

@ -0,0 +1,44 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.hardware.radio.config;
@VintfStability
interface IRadioConfigResponse {
oneway void getHalDeviceCapabilitiesResponse(in android.hardware.radio.RadioResponseInfo info, in boolean modemReducedFeatureSet1);
oneway void getNumOfLiveModemsResponse(in android.hardware.radio.RadioResponseInfo info, in byte numOfLiveModems);
oneway void getPhoneCapabilityResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.config.PhoneCapability phoneCapability);
oneway void getSimSlotsStatusResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.config.SimSlotStatus[] slotStatus);
oneway void setNumOfLiveModemsResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void setPreferredDataModemResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void setSimSlotsMappingResponse(in android.hardware.radio.RadioResponseInfo info);
}

View file

@ -0,0 +1,41 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.hardware.radio.config;
@VintfStability
parcelable PhoneCapability {
byte maxActiveData;
byte maxActiveInternetData;
boolean isInternetLingeringSupported;
byte[] logicalModemIds;
}

View file

@ -0,0 +1,44 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.hardware.radio.config;
@VintfStability
parcelable SimSlotStatus {
boolean cardActive;
int cardState;
int slotState;
String atr;
int logicalSlotId;
String iccid;
String eid;
}

View file

@ -0,0 +1,149 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*
* This interface is used by telephony and telecom to talk to cellular radio for the purpose of
* radio configuration, and it is not associated with any specific modem or slot.
* All the functions have minimum one parameter:
* serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the
* duration of a method call. If clients provide colliding serials (including passing the same
* serial to different methods), multiple responses (one for each method call) must still be served.
*/
package android.hardware.radio.config;
import android.hardware.radio.config.IRadioConfigIndication;
import android.hardware.radio.config.IRadioConfigResponse;
@VintfStability
oneway interface IRadioConfig {
/**
* Gets the available Radio Hal capabilities on the current device.
*
* This is called once per device boot up.
*
* @param serial Serial number of request
*
* Response callback is
* IRadioConfigResponse.getHalDeviceCapabilitiesResponse()
*/
void getHalDeviceCapabilities(in int serial);
/**
* Get the number of live modems (i.e modems that are
* enabled and actively working as part of a working telephony stack)
*
* Note: in order to get the overall number of modems available on the phone,
* refer to getPhoneCapability API
*
* @param serial Serial number of request.
*
* Response callback is IRadioConfigResponse.getNumOfLiveModemsResponse() which
* will return <byte>.
*/
void getNumOfLiveModems(in int serial);
/**
* Request current phone capability.
*
* @param serial Serial number of request.
*
* Response callback is IRadioResponse.getPhoneCapabilityResponse() which
* will return <PhoneCapability>.
*/
void getPhoneCapability(in int serial);
/**
* 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 IRadioConfigResponse.getSimSlotsStatusResponse()
*/
void getSimSlotsStatus(in int serial);
/**
* Set modems configurations by specifying the number of live modems (i.e modems that are
* enabled and actively working as part of a working telephony stack).
*
* Example: this interface can be used to switch to single/multi sim mode by specifying
* the number of live modems as 1, 2, etc
*
* Note: by setting the number of live modems in this API, that number of modems will
* subsequently get enabled/disabled
*
* @param serial serial number of request.
* @param modemsConfig byte object including the number of live modems
*
* Response callback is IRadioResponse.setNumOfLiveModemsResponse()
*/
void setNumOfLiveModems(in int serial, in byte numOfLiveModems);
/**
* Set preferred data modem Id.
* In a multi-SIM device, notify modem layer which logical modem will be used primarily
* for data. It helps modem with resource optimization and decisions of what data connections
* should be satisfied.
*
* @param serial Serial number of request.
* @param modem Id the logical modem ID, which should match one of modem IDs returned
* from getPhoneCapability().
*
* Response callback is IRadioConfigResponse.setPreferredDataModemResponse()
*/
void setPreferredDataModem(in int serial, in byte modemId);
/**
* Set response functions for radio config requests & radio config indications.
*
* @param radioConfigResponse Object containing radio config response functions
* @param radioConfigIndication Object containing radio config indications
*/
void setResponseFunctions(in IRadioConfigResponse radioConfigResponse,
in IRadioConfigIndication radioConfigIndication);
/**
* 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 IRadioConfigResponse.setSimSlotsMappingResponse()
*/
void setSimSlotsMapping(in int serial, in int[] slotMap);
}

View file

@ -0,0 +1,39 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.radio.config;
import android.hardware.radio.config.SimSlotStatus;
/**
* Interface declaring unsolicited radio config indications.
*/
@VintfStability
oneway interface IRadioConfigIndication {
/**
* Indicates SIM slot status change.
*
* This indication must be sent by the modem whenever there is any slot status change, even the
* slot is inactive. For example, this indication must be triggered if a SIM card is inserted
* into an inactive slot.
*
* @param type Type of radio indication
* @param slotStatus new slot status info with size equals to the number of physical slots on
* the device
*/
void simSlotsStatusChanged(
in android.hardware.radio.RadioIndicationType type, in SimSlotStatus[] slotStatus);
}

View file

@ -0,0 +1,124 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.radio.config;
import android.hardware.radio.config.PhoneCapability;
import android.hardware.radio.config.SimSlotStatus;
/**
* Interface declaring response functions to solicited radio config requests.
*/
@VintfStability
oneway interface IRadioConfigResponse {
/**
* @param info Response info struct containing response type, serial no. and error
* @param modemReducedFeatureSet1 True indicates that the modem does NOT support the following
* features.
* - Providing either LinkCapacityEstimate:secondaryDownlinkCapacityKbps
* or LinkCapacityEstimate:secondaryUplinkCapacityKbps when given from
* RadioIndication:currentLinkCapacityEstimate
* - Calling IRadio.setNrDualConnectivityState or querying
* IRadio.isNrDualConnectivityEnabled
* - Requesting IRadio.setDataThrottling()
* - Providing SlicingConfig through getSlicingConfig()
* - Providing PhysicalChannelConfig through
* IRadioIndication.currentPhysicalChannelConfigs_1_6()
*
* Valid errors returned:
* RadioError:NONE
* RadioError:RADIO_NOT_AVAILABLE
* RadioError:INTERNAL_ERR
*/
void getHalDeviceCapabilitiesResponse(
in android.hardware.radio.RadioResponseInfo info, in boolean modemReducedFeatureSet1);
/**
* @param info Response info struct containing response type, serial no. and error
* @param numOfLiveModems <byte> indicate the number of live modems i.e. modems that
* are enabled and actively working as part of a working connectivity stack
*
* Valid errors returned:
* RadioError:NONE
* RadioError:RADIO_NOT_AVAILABLE
* RadioError:REQUEST_NOT_SUPPORTED
*/
void getNumOfLiveModemsResponse(
in android.hardware.radio.RadioResponseInfo info, in byte numOfLiveModems);
/**
* @param info Response info struct containing response type, serial no. and error
* @param phoneCapability <PhoneCapability> it defines modem's capability for example
* how many logical modems it has, how many data connections it supports.
*
* Valid errors returned:
* RadioError:NONE
* RadioError:RADIO_NOT_AVAILABLE
* RadioError:INTERNAL_ERR
*/
void getPhoneCapabilityResponse(
in android.hardware.radio.RadioResponseInfo info, in PhoneCapability phoneCapability);
/**
* @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
* equal to the number of physical slots on the device
*
* Valid errors returned:
* RadioError:NONE
* RadioError:RADIO_NOT_AVAILABLE
* RadioError:NO_MEMORY
* RadioError:INTERNAL_ERR
* RadioError:MODEM_ERR
*/
void getSimSlotsStatusResponse(
in android.hardware.radio.RadioResponseInfo info, in 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:INVALID_ARGUMENTS
*/
void setNumOfLiveModemsResponse(in android.hardware.radio.RadioResponseInfo info);
/**
* @param info Response info struct containing response type, serial no. and error
*
* Valid errors returned:
* RadioError:NONE
* RadioError:RADIO_NOT_AVAILABLE
* RadioError:INTERNAL_ERR
* RadioError:INVALID_ARGUMENTS
*/
void setPreferredDataModemResponse(in android.hardware.radio.RadioResponseInfo info);
/**
* @param info Response info struct containing response type, serial no. and error
*
* Valid errors returned:
* RadioError:NONE
* RadioError:RADIO_NOT_AVAILABLE
* RadioError:NO_MEMORY
* RadioError:INTERNAL_ERR
* RadioError:MODEM_ERR
* RadioError:INVALID_ARGUMENTS
*/
void setSimSlotsMappingResponse(in android.hardware.radio.RadioResponseInfo info);
}

View file

@ -0,0 +1,48 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.radio.config;
/**
* Phone capability which describes the data connection capability of modem.
* It's used to evaluate possible phone config change, for example from single
* SIM device to multi-SIM device.
*/
@VintfStability
parcelable PhoneCapability {
/**
* maxActiveData defines how many logical modems can have
* PS attached simultaneously. For example, for L+L modem it
* should be 2.
*/
byte maxActiveData;
/**
* maxActiveData defines how many logical modems can have
* internet PDN connections simultaneously. For example, for L+L
* DSDS modem its 1, and for DSDA modem its 2.
*/
byte maxActiveInternetData;
/**
* Whether modem supports both internet PDN up so
* that we can do ping test before tearing down the
* other one.
*/
boolean isInternetLingeringSupported;
/**
* List of logical modem IDs.
*/
byte[] logicalModemIds;
}

View file

@ -0,0 +1,56 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.radio.config;
@VintfStability
parcelable SimSlotStatus {
boolean cardActive;
/**
* Card state in the physical slot. Values are CardStatus.[STATE_ABSENT, STATE_PRESENT,
* STATE_ERROR, STATE_RESTRICTED].
*/
int cardState;
/**
* Slot state Active/Inactive
*/
int 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 CardStatus.STATE_PRESENT.
*/
String atr;
int 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 CardStatus.STATE_PRESENT.
*/
String iccid;
/**
* The EID is the eUICC identifier. The EID shall be stored within the ECASD and can be
* retrieved by the Device at any time using the standard GlobalPlatform GET DATA command.
*
* This data is mandatory and applicable only when cardState is CardStatus.STATE_PRESENT and SIM
* card supports eUICC.
*/
String eid;
}