/* * Copyright (C) 2019 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. */ #define LOG_TAG "GnssMeasurementCorrections" #include "GnssMeasurementCorrections.h" #include namespace android { namespace hardware { namespace gnss { namespace measurement_corrections { namespace V1_0 { namespace implementation { // Methods from V1_0::IMeasurementCorrections follow. Return GnssMeasurementCorrections::setCorrections(const MeasurementCorrections& corrections) { ALOGD("setCorrections"); ALOGD("corrections = lat: %f, lng: %f, alt: %f, hUnc: %f, vUnc: %f, toa: %llu, " "satCorrections.size: %d", corrections.latitudeDegrees, corrections.longitudeDegrees, corrections.altitudeMeters, corrections.horizontalPositionUncertaintyMeters, corrections.verticalPositionUncertaintyMeters, static_cast(corrections.toaGpsNanosecondsOfWeek), static_cast(corrections.satCorrections.size())); for (auto singleSatCorrection : corrections.satCorrections) { ALOGD("singleSatCorrection = flags: %d, constellation: %d, svid: %d, cfHz: %f, probLos: %f," " epl: %f, eplUnc: %f", static_cast(singleSatCorrection.singleSatCorrectionFlags), static_cast(singleSatCorrection.constellation), static_cast(singleSatCorrection.svid), singleSatCorrection.carrierFrequencyHz, singleSatCorrection.probSatIsLos, singleSatCorrection.excessPathLengthMeters, singleSatCorrection.excessPathLengthUncertaintyMeters); ALOGD("reflecting plane = lat: %f, lng: %f, alt: %f, azm: %f", singleSatCorrection.reflectingPlane.latitudeDegrees, singleSatCorrection.reflectingPlane.longitudeDegrees, singleSatCorrection.reflectingPlane.altitudeMeters, singleSatCorrection.reflectingPlane.azimuthDegrees); } return true; } Return GnssMeasurementCorrections::setCallback( const sp& callback) { using Capabilities = V1_0::IMeasurementCorrectionsCallback::Capabilities; auto ret = callback->setCapabilitiesCb(Capabilities::LOS_SATS | Capabilities::EXCESS_PATH_LENGTH | Capabilities::REFLECTING_PLANE); if (!ret.isOk()) { ALOGE("%s: Unable to invoke callback", __func__); return false; } return true; } } // namespace implementation } // namespace V1_0 } // namespace measurement_corrections } // namespace gnss } // namespace hardware } // namespace android