mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Merge "Add gnssSetSignalTypeCapabilitiesCb()"
This commit is contained in:
committed by
Android (Google) Code Review
commit
6f71eea54c
@@ -230,7 +230,7 @@
|
||||
</hal>
|
||||
<hal format="aidl" optional="true">
|
||||
<name>android.hardware.gnss</name>
|
||||
<version>2</version>
|
||||
<version>3</version>
|
||||
<interface>
|
||||
<name>IGnss</name>
|
||||
<instance>default</instance>
|
||||
|
||||
@@ -27,7 +27,7 @@ cc_binary {
|
||||
"android.hardware.gnss@2.0",
|
||||
"android.hardware.gnss@1.1",
|
||||
"android.hardware.gnss@1.0",
|
||||
"android.hardware.gnss-V2-ndk",
|
||||
"android.hardware.gnss-V3-ndk",
|
||||
],
|
||||
static_libs: [
|
||||
"android.hardware.gnss@common-default-lib",
|
||||
|
||||
@@ -36,7 +36,7 @@ cc_test {
|
||||
"android.hardware.gnss@1.1",
|
||||
"android.hardware.gnss@2.0",
|
||||
"android.hardware.gnss@common-vts-lib",
|
||||
"android.hardware.gnss-V2-cpp",
|
||||
"android.hardware.gnss-V3-cpp",
|
||||
],
|
||||
shared_libs: [
|
||||
"android.hardware.gnss.measurement_corrections@1.0",
|
||||
|
||||
@@ -50,7 +50,7 @@ cc_binary {
|
||||
"android.hardware.gnss@2.0",
|
||||
"android.hardware.gnss@1.1",
|
||||
"android.hardware.gnss@1.0",
|
||||
"android.hardware.gnss-V2-ndk",
|
||||
"android.hardware.gnss-V3-ndk",
|
||||
],
|
||||
static_libs: [
|
||||
"android.hardware.gnss@common-default-lib",
|
||||
|
||||
@@ -39,7 +39,7 @@ cc_test {
|
||||
"android.hardware.gnss@2.0",
|
||||
"android.hardware.gnss@2.1",
|
||||
"android.hardware.gnss@common-vts-lib",
|
||||
"android.hardware.gnss-V2-cpp",
|
||||
"android.hardware.gnss-V3-cpp",
|
||||
],
|
||||
test_suites: [
|
||||
"general-tests",
|
||||
|
||||
@@ -44,7 +44,7 @@ cc_binary {
|
||||
"android.hardware.gnss@1.0",
|
||||
"android.hardware.gnss@1.1",
|
||||
"android.hardware.gnss@2.0",
|
||||
"android.hardware.gnss-V2-ndk",
|
||||
"android.hardware.gnss-V3-ndk",
|
||||
],
|
||||
static_libs: [
|
||||
"android.hardware.gnss@common-default-lib",
|
||||
|
||||
@@ -40,7 +40,7 @@ cc_test {
|
||||
"android.hardware.gnss@2.0",
|
||||
"android.hardware.gnss@2.1",
|
||||
"android.hardware.gnss@common-vts-lib",
|
||||
"android.hardware.gnss-V2-cpp",
|
||||
"android.hardware.gnss-V3-cpp",
|
||||
],
|
||||
shared_libs: [
|
||||
"libvintf",
|
||||
|
||||
@@ -45,6 +45,7 @@ interface IGnssCallback {
|
||||
void gnssSetSystemInfoCb(in android.hardware.gnss.IGnssCallback.GnssSystemInfo info);
|
||||
void gnssRequestTimeCb();
|
||||
void gnssRequestLocationCb(in boolean independentFromGnss, in boolean isUserEmergency);
|
||||
void gnssSetSignalTypeCapabilitiesCb(in android.hardware.gnss.GnssSignalType[] gnssSignalTypes);
|
||||
const int CAPABILITY_SCHEDULING = 1;
|
||||
const int CAPABILITY_MSB = 2;
|
||||
const int CAPABILITY_MSA = 4;
|
||||
|
||||
@@ -18,6 +18,7 @@ package android.hardware.gnss;
|
||||
|
||||
import android.hardware.gnss.GnssConstellationType;
|
||||
import android.hardware.gnss.GnssLocation;
|
||||
import android.hardware.gnss.GnssSignalType;
|
||||
import android.hardware.gnss.IGnssConfiguration;
|
||||
import android.hardware.gnss.IGnssPsds;
|
||||
|
||||
@@ -308,4 +309,18 @@ interface IGnssCallback {
|
||||
* during-call to E911, or up to 5 minutes after end-of-call or text to E911).
|
||||
*/
|
||||
void gnssRequestLocationCb(in boolean independentFromGnss, in boolean isUserEmergency);
|
||||
|
||||
/**
|
||||
* Callback to inform the framework of the list of GnssSignalTypes the GNSS HAL implementation
|
||||
* supports.
|
||||
*
|
||||
* These capabilities are static at runtime, i.e., they represent the signal types the
|
||||
* GNSS implementation supports without considering the temporary disabled signal types such as
|
||||
* the blocklisted satellites/constellations or the constellations disabled by regional
|
||||
* restrictions.
|
||||
*
|
||||
* @param gnssSignalTypes a list of GnssSignalTypes specifying the constellations, carrier
|
||||
* frequencies, and the code types the GNSS HAL implementation supports.
|
||||
*/
|
||||
void gnssSetSignalTypeCapabilitiesCb(in GnssSignalType[] gnssSignalTypes);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ cc_binary {
|
||||
"android.hardware.gnss.measurement_corrections@1.1",
|
||||
"android.hardware.gnss.measurement_corrections@1.0",
|
||||
"android.hardware.gnss.visibility_control@1.0",
|
||||
"android.hardware.gnss-V2-ndk",
|
||||
"android.hardware.gnss-V3-ndk",
|
||||
],
|
||||
srcs: [
|
||||
"AGnssRil.cpp",
|
||||
|
||||
@@ -74,7 +74,21 @@ ScopedAStatus Gnss::setCallback(const std::shared_ptr<IGnssCallback>& callback)
|
||||
if (!status.isOk()) {
|
||||
ALOGE("%s: Unable to invoke callback.gnssSetSystemInfoCb", __func__);
|
||||
}
|
||||
|
||||
GnssSignalType signalType1 = {
|
||||
.constellation = GnssConstellationType::GPS,
|
||||
.carrierFrequencyHz = 1.59975e+09,
|
||||
.codeType = GnssSignalType::CODE_TYPE_C,
|
||||
};
|
||||
GnssSignalType signalType2 = {
|
||||
.constellation = GnssConstellationType::GLONASS,
|
||||
.carrierFrequencyHz = 1.59975e+09,
|
||||
.codeType = GnssSignalType::CODE_TYPE_C,
|
||||
};
|
||||
status = sGnssCallback->gnssSetSignalTypeCapabilitiesCb(
|
||||
std::vector<GnssSignalType>({signalType1, signalType2}));
|
||||
if (!status.isOk()) {
|
||||
ALOGE("%s: Unable to invoke callback.gnssSetSignalTypeCapabilitiesCb", __func__);
|
||||
}
|
||||
return ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.gnss</name>
|
||||
<version>2</version>
|
||||
<version>3</version>
|
||||
<interface>
|
||||
<name>IGnss</name>
|
||||
<instance>default</instance>
|
||||
|
||||
@@ -51,7 +51,7 @@ cc_test {
|
||||
"libbinder",
|
||||
],
|
||||
static_libs: [
|
||||
"android.hardware.gnss-V2-cpp",
|
||||
"android.hardware.gnss-V3-cpp",
|
||||
"android.hardware.gnss@common-vts-lib",
|
||||
],
|
||||
test_suites: [
|
||||
|
||||
@@ -23,6 +23,7 @@ using android::binder::Status;
|
||||
using android::hardware::gnss::GnssLocation;
|
||||
using GnssSvInfo = android::hardware::gnss::IGnssCallback::GnssSvInfo;
|
||||
using GnssSystemInfo = android::hardware::gnss::IGnssCallback::GnssSystemInfo;
|
||||
using GnssSignalType = android::hardware::gnss::GnssSignalType;
|
||||
|
||||
Status GnssCallbackAidl::gnssSetCapabilitiesCb(const int capabilities) {
|
||||
ALOGI("Capabilities received %#08x", capabilities);
|
||||
@@ -30,6 +31,20 @@ Status GnssCallbackAidl::gnssSetCapabilitiesCb(const int capabilities) {
|
||||
return Status::ok();
|
||||
}
|
||||
|
||||
Status GnssCallbackAidl::gnssSetSignalTypeCapabilitiesCb(
|
||||
const std::vector<GnssSignalType>& signalTypes) {
|
||||
ALOGI("SignalTypeCapabilities received");
|
||||
std::ostringstream ss;
|
||||
for (auto& signalType : signalTypes) {
|
||||
ss << "[constellation=" << (int)signalType.constellation
|
||||
<< ", carrierFrequencyHz=" << signalType.carrierFrequencyHz
|
||||
<< ", codeType=" << signalType.codeType << "], ";
|
||||
}
|
||||
ALOGI("%s", ss.str().c_str());
|
||||
signal_type_capabilities_cbq_.store(signalTypes);
|
||||
return Status::ok();
|
||||
}
|
||||
|
||||
Status GnssCallbackAidl::gnssStatusCb(const GnssStatusValue /* status */) {
|
||||
ALOGI("gnssStatusCb");
|
||||
return Status::ok();
|
||||
|
||||
@@ -25,6 +25,7 @@ class GnssCallbackAidl : public android::hardware::gnss::BnGnssCallback {
|
||||
public:
|
||||
GnssCallbackAidl()
|
||||
: capabilities_cbq_("capabilities"),
|
||||
signal_type_capabilities_cbq_("signal_type_capabilities"),
|
||||
info_cbq_("system_info"),
|
||||
location_cbq_("location"),
|
||||
sv_info_list_cbq_("sv_info"),
|
||||
@@ -32,6 +33,8 @@ class GnssCallbackAidl : public android::hardware::gnss::BnGnssCallback {
|
||||
~GnssCallbackAidl(){};
|
||||
|
||||
android::binder::Status gnssSetCapabilitiesCb(const int capabilities) override;
|
||||
android::binder::Status gnssSetSignalTypeCapabilitiesCb(
|
||||
const std::vector<android::hardware::gnss::GnssSignalType>& signalTypes) override;
|
||||
android::binder::Status gnssStatusCb(const GnssStatusValue status) override;
|
||||
android::binder::Status gnssSvStatusCb(const std::vector<GnssSvInfo>& svInfoList) override;
|
||||
android::binder::Status gnssLocationCb(
|
||||
@@ -45,10 +48,14 @@ class GnssCallbackAidl : public android::hardware::gnss::BnGnssCallback {
|
||||
const bool isUserEmergency) override;
|
||||
|
||||
int last_capabilities_;
|
||||
std::vector<android::hardware::gnss::GnssSignalType> last_signal_type_capabilities;
|
||||
android::hardware::gnss::IGnssCallback::GnssSystemInfo last_info_;
|
||||
android::hardware::gnss::GnssLocation last_location_;
|
||||
|
||||
android::hardware::gnss::common::GnssCallbackEventQueue<int> capabilities_cbq_;
|
||||
android::hardware::gnss::common::GnssCallbackEventQueue<
|
||||
std::vector<android::hardware::gnss::GnssSignalType>>
|
||||
signal_type_capabilities_cbq_;
|
||||
android::hardware::gnss::common::GnssCallbackEventQueue<
|
||||
android::hardware::gnss::IGnssCallback::GnssSystemInfo>
|
||||
info_cbq_;
|
||||
|
||||
@@ -105,6 +105,15 @@ void GnssHalTest::SetUpGnssCallback() {
|
||||
EXPECT_TRUE(aidl_gnss_cb_->info_cbq_.retrieve(aidl_gnss_cb_->last_info_, TIMEOUT_SEC));
|
||||
EXPECT_EQ(aidl_gnss_cb_->info_cbq_.calledCount(), 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* SignalTypeCapabilities callback should trigger.
|
||||
*/
|
||||
if (aidl_gnss_hal_->getInterfaceVersion() >= 3) {
|
||||
EXPECT_TRUE(aidl_gnss_cb_->signal_type_capabilities_cbq_.retrieve(
|
||||
aidl_gnss_cb_->last_signal_type_capabilities, TIMEOUT_SEC));
|
||||
EXPECT_EQ(aidl_gnss_cb_->signal_type_capabilities_cbq_.calledCount(), 1);
|
||||
}
|
||||
}
|
||||
|
||||
void GnssHalTest::TearDown() {
|
||||
|
||||
@@ -57,6 +57,6 @@ cc_library_static {
|
||||
"android.hardware.gnss@2.1",
|
||||
"android.hardware.gnss.measurement_corrections@1.1",
|
||||
"android.hardware.gnss.measurement_corrections@1.0",
|
||||
"android.hardware.gnss-V2-ndk",
|
||||
"android.hardware.gnss-V3-ndk",
|
||||
],
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ cc_library_static {
|
||||
"android.hardware.gnss@2.1",
|
||||
"android.hardware.gnss.measurement_corrections@1.0",
|
||||
"android.hardware.gnss.measurement_corrections@1.1",
|
||||
"android.hardware.gnss-V2-cpp",
|
||||
"android.hardware.gnss-V3-cpp",
|
||||
],
|
||||
static_libs: [
|
||||
"libgtest",
|
||||
|
||||
Reference in New Issue
Block a user