mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-02 13:49:45 +00:00
Merge "Add Signal Strength Threshold HAL for 4G and 5G"
am: 9854f58ede
Change-Id: I63ef1302b5f18b47a28fe96cd859a10ce2814f68
This commit is contained in:
@@ -591,8 +591,7 @@ ce8dbe76eb9ee94b46ef98f725be992e760a5751073d4f4912484026541371f3 android.hardwar
|
||||
db47f4ceceb1f06c656f39caa70c557b0f8471ef59fd58611bea667ffca20101 android.hardware.health@2.1::types
|
||||
34515afa2bb792d3c6d8495a5f5d907d179c8507ca5e55c10050d02ae1d516ef android.hardware.neuralnetworks@1.3::IDevice
|
||||
b74fe72cfe438f50e772e6a307657ff449d5bde83c15dd1f140ff2edbe73499c android.hardware.neuralnetworks@1.3::types
|
||||
41c602462ccd1b19cfd645994be4de4c07fc197ff58a54e84476b31908e61e21 android.hardware.radio@1.5::types
|
||||
a8691c71747c3f14f7a043598e856425077f755e55990507a9132ad62f8ab3f7 android.hardware.radio@1.5::IRadio
|
||||
d3636ff9d5fef59f59f678887209156b2608d29f676fb1e600fe33b7e57a8a61 android.hardware.radio@1.5::types
|
||||
c8e81d912827a5d49b2ddcdc4eb4556c5d231a899a1dca879309e04210daa4a0 android.hardware.radio@1.5::IRadio
|
||||
a62a93faf173b14a6175b683ebf61ffa568dc61f81e369d2dce7b1265e86cf2f android.hardware.radio@1.5::IRadioIndication
|
||||
15daf260aaf6781b911450bc94e1a164901f9c0fe0bda68f8434f0a903f66e05 android.hardware.radio@1.5::IRadioResponse
|
||||
|
||||
260ce05806d753d728f844d405e832179ed7d9b65986ec18fef3d21cf7285587 android.hardware.radio@1.5::IRadioResponse
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
package android.hardware.radio@1.5;
|
||||
|
||||
import @1.4::IRadio;
|
||||
import @1.5::AccessNetwork;
|
||||
import @1.5::SignalThresholdInfo;
|
||||
|
||||
/**
|
||||
* This interface is used by telephony and telecom to talk to cellular radio.
|
||||
@@ -27,4 +29,30 @@ import @1.4::IRadio;
|
||||
* setResponseFunctions must work with @1.5::IRadioResponse and @1.5::IRadioIndication.
|
||||
*/
|
||||
interface IRadio extends @1.4::IRadio {
|
||||
|
||||
/**
|
||||
* Sets the signal strength reporting criteria.
|
||||
*
|
||||
* The resulting reporting rules are the AND of all the supplied criteria. For each RAN
|
||||
* The hysteresisDb and thresholds apply to only the following measured quantities:
|
||||
* -GERAN - RSSI
|
||||
* -CDMA2000 - RSSI
|
||||
* -UTRAN - RSCP
|
||||
* -EUTRAN - RSRP/RSRQ/RSSNR
|
||||
* -NGRAN - SSRSRP/SSRSRQ/SSSINR
|
||||
*
|
||||
* Note: Reporting criteria must be individually set for each RAN. For any unset reporting
|
||||
* criteria, the value is implementation-defined.
|
||||
*
|
||||
* Response callback is
|
||||
* IRadioResponse.setSignalStrengthReportingCriteriaResponse_1_5()
|
||||
*
|
||||
* @param serial Serial number of request.
|
||||
* @param signalThresholdInfo Signal threshold info including the threshold values,
|
||||
* hysteresisDb, and hysteresisMs. See @1.5::SignalThresholdInfo
|
||||
* for details.
|
||||
* @param accessNetwork The type of network for which to apply these thresholds.
|
||||
*/
|
||||
oneway setSignalStrengthReportingCriteria_1_5(int32_t serial,
|
||||
SignalThresholdInfo signalThresholdInfo, AccessNetwork accessNetwork);
|
||||
};
|
||||
|
||||
@@ -23,4 +23,13 @@ import @1.4::IRadioResponse;
|
||||
* Interface declaring response functions to solicited radio requests.
|
||||
*/
|
||||
interface IRadioResponse extends @1.4::IRadioResponse {
|
||||
/**
|
||||
* @param info Response info struct containing response type, serial no. and error
|
||||
*
|
||||
* Valid errors returned:
|
||||
* RadioError:NONE
|
||||
* RadioError:INVALID_ARGUMENTS
|
||||
* RadioError:RADIO_NOT_AVAILABLE
|
||||
*/
|
||||
oneway setSignalStrengthReportingCriteriaResponse_1_5(RadioResponseInfo info);
|
||||
};
|
||||
|
||||
@@ -15,3 +15,100 @@
|
||||
*/
|
||||
|
||||
package android.hardware.radio@1.5;
|
||||
|
||||
import @1.4::AccessNetwork;
|
||||
|
||||
/**
|
||||
* Defining signal strength type.
|
||||
*/
|
||||
enum SignalMeasurementType : int32_t {
|
||||
/**
|
||||
* Received Signal Strength Indication.
|
||||
* Range: -113 dBm and -51 dBm
|
||||
* Used RAN: GERAN, CDMA2000
|
||||
* Reference: 3GPP TS 27.007 section 8.5.
|
||||
*/
|
||||
RSSI = 1,
|
||||
/**
|
||||
* Received Signal Code Power.
|
||||
* Range: -120 dBm to -25 dBm;
|
||||
* Used RAN: UTRAN
|
||||
* Reference: 3GPP TS 25.123, section 9.1.1.1
|
||||
*/
|
||||
RSCP = 2,
|
||||
/**
|
||||
* Reference Signal Received Power.
|
||||
* Range: -140 dBm to -44 dBm;
|
||||
* Used RAN: EUTRAN
|
||||
* Reference: 3GPP TS 36.133 9.1.4
|
||||
*/
|
||||
RSRP = 3,
|
||||
/**
|
||||
* Reference Signal Received Quality
|
||||
* Range: -20 dB to -3 dB;
|
||||
* Used RAN: EUTRAN
|
||||
* Reference: 3GPP TS 36.133 9.1.7
|
||||
*/
|
||||
RSRQ = 4,
|
||||
/**
|
||||
* Reference Signal Signal to Noise Ratio
|
||||
* Range: -20 dB to -30 dB;
|
||||
* Used RAN: EUTRAN
|
||||
* Reference: 3GPP TS 36.101 8.1.1
|
||||
*/
|
||||
RSSNR = 5,
|
||||
/**
|
||||
* 5G SS reference signal received power.
|
||||
* Range: -140 dBm to -44 dBm.
|
||||
* Used RAN: NGRAN
|
||||
* Reference: 3GPP TS 38.215.
|
||||
*/
|
||||
SSRSRP = 6,
|
||||
/**
|
||||
* 5G SS reference signal received quality.
|
||||
* Range: -20 dB to -3 dB.
|
||||
* Used RAN: NGRAN
|
||||
* Reference: 3GPP TS 38.215.
|
||||
*/
|
||||
SSRSRQ = 7,
|
||||
/**
|
||||
* 5G SS signal-to-noise and interference ratio.
|
||||
* Range: -23 dB to 40 dB
|
||||
* Used RAN: NGRAN
|
||||
* Reference: 3GPP TS 38.215 section 5.1.*, 3GPP TS 38.133 section 10.1.16.1.
|
||||
*/
|
||||
SSSINR = 8,
|
||||
};
|
||||
|
||||
/**
|
||||
* Contains the threshold values of each signal measurement type.
|
||||
*/
|
||||
struct SignalThresholdInfo {
|
||||
/** Signal Measurement Type */
|
||||
SignalMeasurementType signalMeasurement;
|
||||
|
||||
/** A hysteresis time in milliseconds to prevent flapping. A value of 0 disables hysteresis */
|
||||
int32_t hysteresisMs;
|
||||
|
||||
/**
|
||||
* An interval in dB defining the required magnitude change between reports.
|
||||
* hysteresisDb must be smaller than the smallest threshold delta.
|
||||
* An interval value of 0 disables hysteresis.
|
||||
*/
|
||||
int32_t hysteresisDb;
|
||||
|
||||
/**
|
||||
* List of threshold values.
|
||||
* Range and unit must reference specific @1.5::SignalMeasurementType.
|
||||
* The threshold values for which to apply criteria.
|
||||
* A vector size of 0 disables the use of thresholds for reporting.
|
||||
*/
|
||||
vec<int32_t> thresholds;
|
||||
};
|
||||
|
||||
enum AccessNetwork : @1.4::AccessNetwork {
|
||||
/**
|
||||
* Next-Generation Radio Access Network (NGRAN)
|
||||
*/
|
||||
NGRAN = 6,
|
||||
};
|
||||
@@ -17,3 +17,266 @@
|
||||
#include <radio_hidl_hal_utils_v1_5.h>
|
||||
|
||||
#define ASSERT_OK(ret) ASSERT_TRUE(ret.isOk())
|
||||
|
||||
/*
|
||||
* Test IRadio.setSignalStrengthReportingCriteria_1_5() with invalid hysteresisDb
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_invalidHysteresisDb) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_5::SignalThresholdInfo signalThresholdInfo;
|
||||
signalThresholdInfo.signalMeasurement = SignalMeasurementType::RSSI;
|
||||
signalThresholdInfo.hysteresisMs = 5000;
|
||||
signalThresholdInfo.hysteresisDb = 10; // hysteresisDb too large given threshold list deltas
|
||||
signalThresholdInfo.thresholds = {-109, -103, -97, -89};
|
||||
|
||||
Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5(
|
||||
serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::GERAN);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_5->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_5->rspInfo.serial);
|
||||
|
||||
ALOGI("setSignalStrengthReportingCriteria_1_5_invalidHysteresisDb, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_5->rspInfo.error).c_str());
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, {RadioError::INVALID_ARGUMENTS}));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.setSignalStrengthReportingCriteria_1_5() with empty thresholds
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_EmptyThresholds) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_5::SignalThresholdInfo signalThresholdInfo;
|
||||
signalThresholdInfo.signalMeasurement = SignalMeasurementType::RSSI;
|
||||
signalThresholdInfo.hysteresisMs = 0;
|
||||
signalThresholdInfo.hysteresisDb = 0;
|
||||
|
||||
Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5(
|
||||
serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::GERAN);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_5->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_5->rspInfo.serial);
|
||||
|
||||
ALOGI("setSignalStrengthReportingCriteria_1_5_EmptyParams, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_5->rspInfo.error).c_str());
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, {RadioError::NONE}));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.setSignalStrengthReportingCriteria_1_5() for GERAN
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_Geran) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_5::SignalThresholdInfo signalThresholdInfo;
|
||||
signalThresholdInfo.signalMeasurement = SignalMeasurementType::RSSI;
|
||||
signalThresholdInfo.hysteresisMs = 5000;
|
||||
signalThresholdInfo.hysteresisDb = 2;
|
||||
signalThresholdInfo.thresholds = {-109, -103, -97, -89};
|
||||
|
||||
Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5(
|
||||
serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::GERAN);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_5->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_5->rspInfo.serial);
|
||||
|
||||
ALOGI("setSignalStrengthReportingCriteria_1_5_Geran, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_5->rspInfo.error).c_str());
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, {RadioError::NONE}));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.setSignalStrengthReportingCriteria_1_5() for UTRAN
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_Utran) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_5::SignalThresholdInfo signalThresholdInfo;
|
||||
signalThresholdInfo.signalMeasurement = SignalMeasurementType::RSCP;
|
||||
signalThresholdInfo.hysteresisMs = 5000;
|
||||
signalThresholdInfo.hysteresisDb = 2;
|
||||
signalThresholdInfo.thresholds = {-110, -97, -73, -49, -25};
|
||||
|
||||
Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5(
|
||||
serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::UTRAN);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_5->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_5->rspInfo.serial);
|
||||
|
||||
ALOGI("setSignalStrengthReportingCriteria_1_5_Utran, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_5->rspInfo.error).c_str());
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, {RadioError::NONE}));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.setSignalStrengthReportingCriteria_1_5() for EUTRAN
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_Eutran_RSRP) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_5::SignalThresholdInfo signalThresholdInfo;
|
||||
signalThresholdInfo.signalMeasurement = SignalMeasurementType::RSRP;
|
||||
signalThresholdInfo.hysteresisMs = 5000;
|
||||
signalThresholdInfo.hysteresisDb = 2;
|
||||
signalThresholdInfo.thresholds = {-128, -108, -88, -68};
|
||||
|
||||
Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5(
|
||||
serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::EUTRAN);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_5->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_5->rspInfo.serial);
|
||||
|
||||
ALOGI("setSignalStrengthReportingCriteria_1_5_Eutran, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_5->rspInfo.error).c_str());
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, {RadioError::NONE}));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.setSignalStrengthReportingCriteria_1_5() for EUTRAN
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_Eutran_RSRQ) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_5::SignalThresholdInfo signalThresholdInfo;
|
||||
signalThresholdInfo.signalMeasurement = SignalMeasurementType::RSRQ;
|
||||
signalThresholdInfo.hysteresisMs = 5000;
|
||||
signalThresholdInfo.hysteresisDb = 2;
|
||||
signalThresholdInfo.thresholds = {-27, -20, -13, -6};
|
||||
|
||||
Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5(
|
||||
serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::EUTRAN);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_5->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_5->rspInfo.serial);
|
||||
|
||||
ALOGI("setSignalStrengthReportingCriteria_1_5_Eutran, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_5->rspInfo.error).c_str());
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, {RadioError::NONE}));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.setSignalStrengthReportingCriteria_1_5() for EUTRAN
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_Eutran_RSSNR) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_5::SignalThresholdInfo signalThresholdInfo;
|
||||
signalThresholdInfo.signalMeasurement = SignalMeasurementType::RSSNR;
|
||||
signalThresholdInfo.hysteresisMs = 5000;
|
||||
signalThresholdInfo.hysteresisDb = 2;
|
||||
signalThresholdInfo.thresholds = {-10, 0, 10, 20};
|
||||
|
||||
Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5(
|
||||
serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::EUTRAN);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_5->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_5->rspInfo.serial);
|
||||
|
||||
ALOGI("setSignalStrengthReportingCriteria_1_5_Eutran, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_5->rspInfo.error).c_str());
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, {RadioError::NONE}));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.setSignalStrengthReportingCriteria_1_5() for CDMA2000
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_Cdma2000) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_5::SignalThresholdInfo signalThresholdInfo;
|
||||
signalThresholdInfo.signalMeasurement = SignalMeasurementType::RSSI;
|
||||
signalThresholdInfo.hysteresisMs = 5000;
|
||||
signalThresholdInfo.hysteresisDb = 2;
|
||||
signalThresholdInfo.thresholds = {-105, -90, -75, -65};
|
||||
|
||||
Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5(
|
||||
serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::CDMA2000);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_5->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_5->rspInfo.serial);
|
||||
|
||||
ALOGI("setSignalStrengthReportingCriteria_1_5_Cdma2000, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_5->rspInfo.error).c_str());
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, {RadioError::NONE}));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.setSignalStrengthReportingCriteria_1_5() for NGRAN_SSRSRP
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_NGRAN_SSRSRP) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_5::SignalThresholdInfo signalThresholdInfo;
|
||||
signalThresholdInfo.signalMeasurement = SignalMeasurementType::SSRSRP;
|
||||
signalThresholdInfo.hysteresisMs = 5000;
|
||||
signalThresholdInfo.hysteresisDb = 0;
|
||||
signalThresholdInfo.thresholds = {-105, -90, -75, -65};
|
||||
|
||||
Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5(
|
||||
serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::NGRAN);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_5->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_5->rspInfo.serial);
|
||||
|
||||
ALOGI("setSignalStrengthReportingCriteria_1_5_NGRAN_SSRSRP, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_5->rspInfo.error).c_str());
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, {RadioError::NONE}));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.setSignalStrengthReportingCriteria_1_5() for NGRAN_SSRSRQ
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_NGRAN_SSRSRQ) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_5::SignalThresholdInfo signalThresholdInfo;
|
||||
signalThresholdInfo.signalMeasurement = SignalMeasurementType::SSRSRQ;
|
||||
signalThresholdInfo.hysteresisMs = 5000;
|
||||
signalThresholdInfo.hysteresisDb = 0;
|
||||
signalThresholdInfo.thresholds = {-15, -10, -5, -4};
|
||||
|
||||
Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5(
|
||||
serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::NGRAN);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_5->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_5->rspInfo.serial);
|
||||
|
||||
ALOGI("setSignalStrengthReportingCriteria_1_5_NGRAN_SSRSRQ, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_5->rspInfo.error).c_str());
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, {RadioError::NONE}));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.setSignalStrengthReportingCriteria_1_5() for NGRAN_SSSINR
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_NGRAN_SSSINR) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
::android::hardware::radio::V1_5::SignalThresholdInfo signalThresholdInfo;
|
||||
signalThresholdInfo.signalMeasurement = SignalMeasurementType::SSSINR;
|
||||
signalThresholdInfo.hysteresisMs = 5000;
|
||||
signalThresholdInfo.hysteresisDb = 0;
|
||||
signalThresholdInfo.thresholds = {-10, 3, 16, 18};
|
||||
|
||||
Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5(
|
||||
serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::NGRAN);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_5->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_5->rspInfo.serial);
|
||||
|
||||
ALOGI("setSignalStrengthReportingCriteria_1_5_NGRAN_SSSINR, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_5->rspInfo.error).c_str());
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, {RadioError::NONE}));
|
||||
}
|
||||
@@ -521,6 +521,9 @@ class RadioResponse_v1_5 : public ::android::hardware::radio::V1_5::IRadioRespon
|
||||
Return<void> getAllowedCarriersResponse_1_4(const RadioResponseInfo& info,
|
||||
const CarrierRestrictionsWithPriority& carriers,
|
||||
SimLockMultiSimPolicy multiSimPolicy);
|
||||
|
||||
/* 1.5 Api */
|
||||
Return<void> setSignalStrengthReportingCriteriaResponse_1_5(const RadioResponseInfo& info);
|
||||
};
|
||||
|
||||
/* Callback class for radio indication */
|
||||
|
||||
@@ -885,3 +885,11 @@ Return<void> RadioResponse_v1_5::getAllowedCarriersResponse_1_4(
|
||||
parent_v1_5.notify(info.serial);
|
||||
return Void();
|
||||
}
|
||||
|
||||
/* 1.5 Apis */
|
||||
Return<void> RadioResponse_v1_5::setSignalStrengthReportingCriteriaResponse_1_5(
|
||||
const RadioResponseInfo& info) {
|
||||
rspInfo = info;
|
||||
parent_v1_5.notify(info.serial);
|
||||
return Void();
|
||||
}
|
||||
Reference in New Issue
Block a user