diff options
author | Shuo Qian <shuoq@google.com> | 2019-11-26 19:37:05 -0800 |
---|---|---|
committer | Shuo Qian <shuoq@google.com> | 2019-12-10 00:56:07 +0000 |
commit | 511264a5526580616a65d9728cb15f0e95737818 (patch) | |
tree | 10218693bcd159acdaac8e371adadbb4229db97c | |
parent | f78d7734d1b89bd028f05543f6ace36822655a09 (diff) |
Support isEnabled feature in reporting criteria for SignalStrenghth
Test: build
Bug: 135717625
Change-Id: Ia56b54f44345650117f884942ef917e3547277a9
Merged-In: Ia56b54f44345650117f884942ef917e3547277a9
(cherry picked from commit d5ae42e54009240bb244947ed2f5ccc386ffc6d0)
-rw-r--r-- | current.txt | 4 | ||||
-rw-r--r-- | radio/1.5/IRadio.hal | 12 | ||||
-rw-r--r-- | radio/1.5/types.hal | 9 | ||||
-rw-r--r-- | radio/1.5/vts/functional/radio_hidl_hal_api.cpp | 32 |
4 files changed, 51 insertions, 6 deletions
diff --git a/current.txt b/current.txt index e2f12edcfe..6ef2e71cdc 100644 --- a/current.txt +++ b/current.txt @@ -604,8 +604,8 @@ a64467bae843569f0d465c5be7f0c7a5b987985b55a3ef4794dd5afc68538650 android.hardwar 619fc9839ec6e369cfa9b28e3e9412e6885720ff8f9b5750c1b6ffb905120391 android.hardware.wifi.supplicant@1.3::ISupplicantStaIfaceCallback c9273429fcf98d797d3bb07fdba6f1be95bf960f9255cde169fd1ca4db85f856 android.hardware.wifi.supplicant@1.3::ISupplicantStaNetwork 9b0a3ab6f4f74b971ed094426d8a443e29b512ff03e1ab50c07156396cdb2483 android.hardware.wifi.supplicant@1.3::types -35cd6586225912718c599421606d69260707e43732d874f2064e28de45c87fac android.hardware.radio@1.5::types -3f1e2410d9bed4e7d41c6a589fe3a7943bc904b0066e40e0199a7c58427ac4e9 android.hardware.radio@1.5::IRadio +eaf870a7439838c66127a74e1896c4a2346979c116eb1931785ebb4d353230ae android.hardware.radio@1.5::types +584001c25a16e3a29d496cff28dee690833cd2bda5376febe01cecd476ce876f android.hardware.radio@1.5::IRadio 3afac66f21a33bc9c4b80481c7d5540038348651d9a7d8af64ea13610af138da android.hardware.radio@1.5::IRadioIndication caf00e0d942b77b17d7061b38de11e5b19e1da90d4818434cb4916ba89e30686 android.hardware.radio@1.5::IRadioResponse 55f0a15642869ec98a55ea0a5ac049d3e1a6245ff7750deb6bcb7182057eee83 android.hardware.radio.config@1.3::types diff --git a/radio/1.5/IRadio.hal b/radio/1.5/IRadio.hal index 6d422bed0b..aa93ef328d 100644 --- a/radio/1.5/IRadio.hal +++ b/radio/1.5/IRadio.hal @@ -42,16 +42,20 @@ interface IRadio extends @1.4::IRadio { * -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. + * Note: Reporting criteria must be individually set for each RAN. For each RAN, if none of + * reporting criteria of any measurement is set enabled + * (see @1.5::SignalThresholdInfo.isEnabled), the reporting criteria for this RAN is + * implementation-defined. For each RAN, if any of reporting criteria of any measure is set + * enabled, the reporting criteria of the other measures in this RAN are set disabled + * (see @1.5::SignalThresholdInfo.isEnabled) until they are set enabled. * * 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. + * hysteresisDb, hysteresisMs and isEnabled. + * 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, diff --git a/radio/1.5/types.hal b/radio/1.5/types.hal index 664ddc441b..04a9bcfeb8 100644 --- a/radio/1.5/types.hal +++ b/radio/1.5/types.hal @@ -113,6 +113,15 @@ struct SignalThresholdInfo { * A vector size of 0 disables the use of thresholds for reporting. */ vec<int32_t> thresholds; + + /** + * Indicates whether the reporting criteria of the corresponding measurement is enabled + * (isEnabled==true) or disabled (isEnabled==false). + * + * If enabled, modem must trigger the report based on the criteria. + * If disabled, modem must not trigger the report based on the criteria. + */ + bool isEnabled; }; enum AccessNetwork : @1.4::AccessNetwork { diff --git a/radio/1.5/vts/functional/radio_hidl_hal_api.cpp b/radio/1.5/vts/functional/radio_hidl_hal_api.cpp index 4df5b14b1c..6bf81704ca 100644 --- a/radio/1.5/vts/functional/radio_hidl_hal_api.cpp +++ b/radio/1.5/vts/functional/radio_hidl_hal_api.cpp @@ -29,6 +29,7 @@ TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_invalidHystere signalThresholdInfo.hysteresisMs = 5000; signalThresholdInfo.hysteresisDb = 10; // hysteresisDb too large given threshold list deltas signalThresholdInfo.thresholds = {-109, -103, -97, -89}; + signalThresholdInfo.isEnabled = true; Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5( serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::GERAN); @@ -52,6 +53,7 @@ TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_EmptyThreshold signalThresholdInfo.signalMeasurement = SignalMeasurementType::RSSI; signalThresholdInfo.hysteresisMs = 0; signalThresholdInfo.hysteresisDb = 0; + signalThresholdInfo.isEnabled = true; Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5( serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::GERAN); @@ -76,6 +78,7 @@ TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_Geran) { signalThresholdInfo.hysteresisMs = 5000; signalThresholdInfo.hysteresisDb = 2; signalThresholdInfo.thresholds = {-109, -103, -97, -89}; + signalThresholdInfo.isEnabled = true; Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5( serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::GERAN); @@ -100,6 +103,7 @@ TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_Utran) { signalThresholdInfo.hysteresisMs = 5000; signalThresholdInfo.hysteresisDb = 2; signalThresholdInfo.thresholds = {-110, -97, -73, -49, -25}; + signalThresholdInfo.isEnabled = true; Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5( serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::UTRAN); @@ -124,6 +128,7 @@ TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_Eutran_RSRP) { signalThresholdInfo.hysteresisMs = 5000; signalThresholdInfo.hysteresisDb = 2; signalThresholdInfo.thresholds = {-128, -108, -88, -68}; + signalThresholdInfo.isEnabled = true; Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5( serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::EUTRAN); @@ -148,6 +153,7 @@ TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_Eutran_RSRQ) { signalThresholdInfo.hysteresisMs = 5000; signalThresholdInfo.hysteresisDb = 2; signalThresholdInfo.thresholds = {-27, -20, -13, -6}; + signalThresholdInfo.isEnabled = true; Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5( serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::EUTRAN); @@ -172,6 +178,7 @@ TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_Eutran_RSSNR) signalThresholdInfo.hysteresisMs = 5000; signalThresholdInfo.hysteresisDb = 2; signalThresholdInfo.thresholds = {-10, 0, 10, 20}; + signalThresholdInfo.isEnabled = true; Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5( serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::EUTRAN); @@ -192,6 +199,7 @@ TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_Cdma2000) { signalThresholdInfo.hysteresisMs = 5000; signalThresholdInfo.hysteresisDb = 2; signalThresholdInfo.thresholds = {-105, -90, -75, -65}; + signalThresholdInfo.isEnabled = true; Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5( serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::CDMA2000); @@ -216,6 +224,7 @@ TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_NGRAN_SSRSRP) signalThresholdInfo.hysteresisMs = 5000; signalThresholdInfo.hysteresisDb = 0; signalThresholdInfo.thresholds = {-105, -90, -75, -65}; + signalThresholdInfo.isEnabled = true; Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5( serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::NGRAN); @@ -240,6 +249,7 @@ TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_NGRAN_SSRSRQ) signalThresholdInfo.hysteresisMs = 5000; signalThresholdInfo.hysteresisDb = 0; signalThresholdInfo.thresholds = {-15, -10, -5, -4}; + signalThresholdInfo.isEnabled = true; Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5( serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::NGRAN); @@ -254,6 +264,27 @@ TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_NGRAN_SSRSRQ) } /* + * Test IRadio.setSignalStrengthReportingCriteria_1_5() for EUTRAN + */ +TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_Disable_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}; + signalThresholdInfo.isEnabled = false; + + 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); +} + +/* * Test IRadio.setSignalStrengthReportingCriteria_1_5() for NGRAN_SSSINR */ TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_NGRAN_SSSINR) { @@ -264,6 +295,7 @@ TEST_F(RadioHidlTest_v1_5, setSignalStrengthReportingCriteria_1_5_NGRAN_SSSINR) signalThresholdInfo.hysteresisMs = 5000; signalThresholdInfo.hysteresisDb = 0; signalThresholdInfo.thresholds = {-10, 3, 16, 18}; + signalThresholdInfo.isEnabled = true; Return<void> res = radio_v1_5->setSignalStrengthReportingCriteria_1_5( serial, signalThresholdInfo, ::android::hardware::radio::V1_5::AccessNetwork::NGRAN); |