Fixed the hasCarrierFrequency flag in GnssStatus(part 2)

Bug: 37757180
Fixes: 37757180
Test: cts-tradefed run cts -m CtsLocationTestCases --test
android.location.cts.GnssStatusTest

Change-Id: I817931ee2c19d0a770c4d7cedfbd69bc85db6978
Chang-Id: Icf4240ccad7ff367d96001973c0be36308ffd9b3
This commit is contained in:
Yipeng Cao
2017-04-27 18:29:25 -07:00
parent 02b745ff40
commit a36f51a127

View File

@@ -129,16 +129,19 @@ void Gnss::gnssSvStatusCb(GnssSvStatus* status) {
auto svInfo = status->gnss_sv_list[i];
IGnssCallback::GnssSvInfo gnssSvInfo = {
.svid = svInfo.svid,
.constellation = static_cast<android::hardware::gnss::V1_0::GnssConstellationType>(
svInfo.constellation),
.constellation = static_cast<
android::hardware::gnss::V1_0::GnssConstellationType>(
svInfo.constellation),
.cN0Dbhz = svInfo.c_n0_dbhz,
.elevationDegrees = svInfo.elevation,
.azimuthDegrees = svInfo.azimuth,
.svFlag = svInfo.flags,
// Older chipsets do not provide carrier frequency, hence HAS_CARRIER_FREQUENCY flag
// is not set and the carrierFrequencyHz field is set to zero
.carrierFrequencyHz = 0
};
// Older chipsets do not provide carrier frequency, hence
// HAS_CARRIER_FREQUENCY flag and the carrierFrequencyHz fields
// are not set. So we are resetting both fields here.
.svFlag = static_cast<uint8_t>(
svInfo.flags &= ~(static_cast<uint8_t>(
IGnssCallback::GnssSvFlags::HAS_CARRIER_FREQUENCY))),
.carrierFrequencyHz = 0};
svStatus.gnssSvList[i] = gnssSvInfo;
}