blob: 7636543b1ea25bb9fdb3ef39f661c44eb7479a6c [file] [log] [blame]
#pragma once
#include <android/binder_interface_utils.h>
#include <android/binder_parcelable_utils.h>
#include <android/binder_to_string.h>
#include <cstdint>
#include <memory>
#include <optional>
#include <string>
#include <vector>
#ifdef BINDER_STABILITY_SUPPORT
#include <android/binder_stability.h>
#endif // BINDER_STABILITY_SUPPORT
#include <aidl/android/hardware/gnss/CorrelationVector.h>
#include <aidl/android/hardware/gnss/GnssMultipathIndicator.h>
#include <aidl/android/hardware/gnss/GnssSignalType.h>
#include <aidl/android/hardware/gnss/SatellitePvt.h>
namespace aidl {
namespace android {
namespace hardware {
namespace gnss {
class GnssMeasurement {
public:
typedef std::false_type fixed_size;
static const char* descriptor;
int32_t flags = 0;
int32_t svid = 0;
::aidl::android::hardware::gnss::GnssSignalType signalType;
double timeOffsetNs = 0.000000;
int32_t state = 0;
int64_t receivedSvTimeInNs = 0L;
int64_t receivedSvTimeUncertaintyInNs = 0L;
double antennaCN0DbHz = 0.000000;
double basebandCN0DbHz = 0.000000;
double pseudorangeRateMps = 0.000000;
double pseudorangeRateUncertaintyMps = 0.000000;
int32_t accumulatedDeltaRangeState = 0;
double accumulatedDeltaRangeM = 0.000000;
double accumulatedDeltaRangeUncertaintyM = 0.000000;
int64_t carrierCycles = 0L;
double carrierPhase = 0.000000;
double carrierPhaseUncertainty = 0.000000;
::aidl::android::hardware::gnss::GnssMultipathIndicator multipathIndicator = ::aidl::android::hardware::gnss::GnssMultipathIndicator::UNKNOWN;
double snrDb = 0.000000;
double agcLevelDb = 0.000000;
double fullInterSignalBiasNs = 0.000000;
double fullInterSignalBiasUncertaintyNs = 0.000000;
double satelliteInterSignalBiasNs = 0.000000;
double satelliteInterSignalBiasUncertaintyNs = 0.000000;
::aidl::android::hardware::gnss::SatellitePvt satellitePvt;
std::vector<::aidl::android::hardware::gnss::CorrelationVector> correlationVectors;
binder_status_t readFromParcel(const AParcel* parcel);
binder_status_t writeToParcel(AParcel* parcel) const;
inline bool operator!=(const GnssMeasurement& rhs) const {
return std::tie(flags, svid, signalType, timeOffsetNs, state, receivedSvTimeInNs, receivedSvTimeUncertaintyInNs, antennaCN0DbHz, basebandCN0DbHz, pseudorangeRateMps, pseudorangeRateUncertaintyMps, accumulatedDeltaRangeState, accumulatedDeltaRangeM, accumulatedDeltaRangeUncertaintyM, carrierCycles, carrierPhase, carrierPhaseUncertainty, multipathIndicator, snrDb, agcLevelDb, fullInterSignalBiasNs, fullInterSignalBiasUncertaintyNs, satelliteInterSignalBiasNs, satelliteInterSignalBiasUncertaintyNs, satellitePvt, correlationVectors) != std::tie(rhs.flags, rhs.svid, rhs.signalType, rhs.timeOffsetNs, rhs.state, rhs.receivedSvTimeInNs, rhs.receivedSvTimeUncertaintyInNs, rhs.antennaCN0DbHz, rhs.basebandCN0DbHz, rhs.pseudorangeRateMps, rhs.pseudorangeRateUncertaintyMps, rhs.accumulatedDeltaRangeState, rhs.accumulatedDeltaRangeM, rhs.accumulatedDeltaRangeUncertaintyM, rhs.carrierCycles, rhs.carrierPhase, rhs.carrierPhaseUncertainty, rhs.multipathIndicator, rhs.snrDb, rhs.agcLevelDb, rhs.fullInterSignalBiasNs, rhs.fullInterSignalBiasUncertaintyNs, rhs.satelliteInterSignalBiasNs, rhs.satelliteInterSignalBiasUncertaintyNs, rhs.satellitePvt, rhs.correlationVectors);
}
inline bool operator<(const GnssMeasurement& rhs) const {
return std::tie(flags, svid, signalType, timeOffsetNs, state, receivedSvTimeInNs, receivedSvTimeUncertaintyInNs, antennaCN0DbHz, basebandCN0DbHz, pseudorangeRateMps, pseudorangeRateUncertaintyMps, accumulatedDeltaRangeState, accumulatedDeltaRangeM, accumulatedDeltaRangeUncertaintyM, carrierCycles, carrierPhase, carrierPhaseUncertainty, multipathIndicator, snrDb, agcLevelDb, fullInterSignalBiasNs, fullInterSignalBiasUncertaintyNs, satelliteInterSignalBiasNs, satelliteInterSignalBiasUncertaintyNs, satellitePvt, correlationVectors) < std::tie(rhs.flags, rhs.svid, rhs.signalType, rhs.timeOffsetNs, rhs.state, rhs.receivedSvTimeInNs, rhs.receivedSvTimeUncertaintyInNs, rhs.antennaCN0DbHz, rhs.basebandCN0DbHz, rhs.pseudorangeRateMps, rhs.pseudorangeRateUncertaintyMps, rhs.accumulatedDeltaRangeState, rhs.accumulatedDeltaRangeM, rhs.accumulatedDeltaRangeUncertaintyM, rhs.carrierCycles, rhs.carrierPhase, rhs.carrierPhaseUncertainty, rhs.multipathIndicator, rhs.snrDb, rhs.agcLevelDb, rhs.fullInterSignalBiasNs, rhs.fullInterSignalBiasUncertaintyNs, rhs.satelliteInterSignalBiasNs, rhs.satelliteInterSignalBiasUncertaintyNs, rhs.satellitePvt, rhs.correlationVectors);
}
inline bool operator<=(const GnssMeasurement& rhs) const {
return std::tie(flags, svid, signalType, timeOffsetNs, state, receivedSvTimeInNs, receivedSvTimeUncertaintyInNs, antennaCN0DbHz, basebandCN0DbHz, pseudorangeRateMps, pseudorangeRateUncertaintyMps, accumulatedDeltaRangeState, accumulatedDeltaRangeM, accumulatedDeltaRangeUncertaintyM, carrierCycles, carrierPhase, carrierPhaseUncertainty, multipathIndicator, snrDb, agcLevelDb, fullInterSignalBiasNs, fullInterSignalBiasUncertaintyNs, satelliteInterSignalBiasNs, satelliteInterSignalBiasUncertaintyNs, satellitePvt, correlationVectors) <= std::tie(rhs.flags, rhs.svid, rhs.signalType, rhs.timeOffsetNs, rhs.state, rhs.receivedSvTimeInNs, rhs.receivedSvTimeUncertaintyInNs, rhs.antennaCN0DbHz, rhs.basebandCN0DbHz, rhs.pseudorangeRateMps, rhs.pseudorangeRateUncertaintyMps, rhs.accumulatedDeltaRangeState, rhs.accumulatedDeltaRangeM, rhs.accumulatedDeltaRangeUncertaintyM, rhs.carrierCycles, rhs.carrierPhase, rhs.carrierPhaseUncertainty, rhs.multipathIndicator, rhs.snrDb, rhs.agcLevelDb, rhs.fullInterSignalBiasNs, rhs.fullInterSignalBiasUncertaintyNs, rhs.satelliteInterSignalBiasNs, rhs.satelliteInterSignalBiasUncertaintyNs, rhs.satellitePvt, rhs.correlationVectors);
}
inline bool operator==(const GnssMeasurement& rhs) const {
return std::tie(flags, svid, signalType, timeOffsetNs, state, receivedSvTimeInNs, receivedSvTimeUncertaintyInNs, antennaCN0DbHz, basebandCN0DbHz, pseudorangeRateMps, pseudorangeRateUncertaintyMps, accumulatedDeltaRangeState, accumulatedDeltaRangeM, accumulatedDeltaRangeUncertaintyM, carrierCycles, carrierPhase, carrierPhaseUncertainty, multipathIndicator, snrDb, agcLevelDb, fullInterSignalBiasNs, fullInterSignalBiasUncertaintyNs, satelliteInterSignalBiasNs, satelliteInterSignalBiasUncertaintyNs, satellitePvt, correlationVectors) == std::tie(rhs.flags, rhs.svid, rhs.signalType, rhs.timeOffsetNs, rhs.state, rhs.receivedSvTimeInNs, rhs.receivedSvTimeUncertaintyInNs, rhs.antennaCN0DbHz, rhs.basebandCN0DbHz, rhs.pseudorangeRateMps, rhs.pseudorangeRateUncertaintyMps, rhs.accumulatedDeltaRangeState, rhs.accumulatedDeltaRangeM, rhs.accumulatedDeltaRangeUncertaintyM, rhs.carrierCycles, rhs.carrierPhase, rhs.carrierPhaseUncertainty, rhs.multipathIndicator, rhs.snrDb, rhs.agcLevelDb, rhs.fullInterSignalBiasNs, rhs.fullInterSignalBiasUncertaintyNs, rhs.satelliteInterSignalBiasNs, rhs.satelliteInterSignalBiasUncertaintyNs, rhs.satellitePvt, rhs.correlationVectors);
}
inline bool operator>(const GnssMeasurement& rhs) const {
return std::tie(flags, svid, signalType, timeOffsetNs, state, receivedSvTimeInNs, receivedSvTimeUncertaintyInNs, antennaCN0DbHz, basebandCN0DbHz, pseudorangeRateMps, pseudorangeRateUncertaintyMps, accumulatedDeltaRangeState, accumulatedDeltaRangeM, accumulatedDeltaRangeUncertaintyM, carrierCycles, carrierPhase, carrierPhaseUncertainty, multipathIndicator, snrDb, agcLevelDb, fullInterSignalBiasNs, fullInterSignalBiasUncertaintyNs, satelliteInterSignalBiasNs, satelliteInterSignalBiasUncertaintyNs, satellitePvt, correlationVectors) > std::tie(rhs.flags, rhs.svid, rhs.signalType, rhs.timeOffsetNs, rhs.state, rhs.receivedSvTimeInNs, rhs.receivedSvTimeUncertaintyInNs, rhs.antennaCN0DbHz, rhs.basebandCN0DbHz, rhs.pseudorangeRateMps, rhs.pseudorangeRateUncertaintyMps, rhs.accumulatedDeltaRangeState, rhs.accumulatedDeltaRangeM, rhs.accumulatedDeltaRangeUncertaintyM, rhs.carrierCycles, rhs.carrierPhase, rhs.carrierPhaseUncertainty, rhs.multipathIndicator, rhs.snrDb, rhs.agcLevelDb, rhs.fullInterSignalBiasNs, rhs.fullInterSignalBiasUncertaintyNs, rhs.satelliteInterSignalBiasNs, rhs.satelliteInterSignalBiasUncertaintyNs, rhs.satellitePvt, rhs.correlationVectors);
}
inline bool operator>=(const GnssMeasurement& rhs) const {
return std::tie(flags, svid, signalType, timeOffsetNs, state, receivedSvTimeInNs, receivedSvTimeUncertaintyInNs, antennaCN0DbHz, basebandCN0DbHz, pseudorangeRateMps, pseudorangeRateUncertaintyMps, accumulatedDeltaRangeState, accumulatedDeltaRangeM, accumulatedDeltaRangeUncertaintyM, carrierCycles, carrierPhase, carrierPhaseUncertainty, multipathIndicator, snrDb, agcLevelDb, fullInterSignalBiasNs, fullInterSignalBiasUncertaintyNs, satelliteInterSignalBiasNs, satelliteInterSignalBiasUncertaintyNs, satellitePvt, correlationVectors) >= std::tie(rhs.flags, rhs.svid, rhs.signalType, rhs.timeOffsetNs, rhs.state, rhs.receivedSvTimeInNs, rhs.receivedSvTimeUncertaintyInNs, rhs.antennaCN0DbHz, rhs.basebandCN0DbHz, rhs.pseudorangeRateMps, rhs.pseudorangeRateUncertaintyMps, rhs.accumulatedDeltaRangeState, rhs.accumulatedDeltaRangeM, rhs.accumulatedDeltaRangeUncertaintyM, rhs.carrierCycles, rhs.carrierPhase, rhs.carrierPhaseUncertainty, rhs.multipathIndicator, rhs.snrDb, rhs.agcLevelDb, rhs.fullInterSignalBiasNs, rhs.fullInterSignalBiasUncertaintyNs, rhs.satelliteInterSignalBiasNs, rhs.satelliteInterSignalBiasUncertaintyNs, rhs.satellitePvt, rhs.correlationVectors);
}
static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_VINTF;
enum : int32_t { HAS_SNR = 1 };
enum : int32_t { HAS_CARRIER_FREQUENCY = 512 };
enum : int32_t { HAS_CARRIER_CYCLES = 1024 };
enum : int32_t { HAS_CARRIER_PHASE = 2048 };
enum : int32_t { HAS_CARRIER_PHASE_UNCERTAINTY = 4096 };
enum : int32_t { HAS_AUTOMATIC_GAIN_CONTROL = 8192 };
enum : int32_t { HAS_FULL_ISB = 65536 };
enum : int32_t { HAS_FULL_ISB_UNCERTAINTY = 131072 };
enum : int32_t { HAS_SATELLITE_ISB = 262144 };
enum : int32_t { HAS_SATELLITE_ISB_UNCERTAINTY = 524288 };
enum : int32_t { HAS_SATELLITE_PVT = 1048576 };
enum : int32_t { HAS_CORRELATION_VECTOR = 2097152 };
enum : int32_t { STATE_UNKNOWN = 0 };
enum : int32_t { STATE_CODE_LOCK = 1 };
enum : int32_t { STATE_BIT_SYNC = 2 };
enum : int32_t { STATE_SUBFRAME_SYNC = 4 };
enum : int32_t { STATE_TOW_DECODED = 8 };
enum : int32_t { STATE_MSEC_AMBIGUOUS = 16 };
enum : int32_t { STATE_SYMBOL_SYNC = 32 };
enum : int32_t { STATE_GLO_STRING_SYNC = 64 };
enum : int32_t { STATE_GLO_TOD_DECODED = 128 };
enum : int32_t { STATE_BDS_D2_BIT_SYNC = 256 };
enum : int32_t { STATE_BDS_D2_SUBFRAME_SYNC = 512 };
enum : int32_t { STATE_GAL_E1BC_CODE_LOCK = 1024 };
enum : int32_t { STATE_GAL_E1C_2ND_CODE_LOCK = 2048 };
enum : int32_t { STATE_GAL_E1B_PAGE_SYNC = 4096 };
enum : int32_t { STATE_SBAS_SYNC = 8192 };
enum : int32_t { STATE_TOW_KNOWN = 16384 };
enum : int32_t { STATE_GLO_TOD_KNOWN = 32768 };
enum : int32_t { STATE_2ND_CODE_LOCK = 65536 };
enum : int32_t { ADR_STATE_UNKNOWN = 0 };
enum : int32_t { ADR_STATE_VALID = 1 };
enum : int32_t { ADR_STATE_RESET = 2 };
enum : int32_t { ADR_STATE_CYCLE_SLIP = 4 };
enum : int32_t { ADR_STATE_HALF_CYCLE_RESOLVED = 8 };
inline std::string toString() const {
std::ostringstream os;
os << "GnssMeasurement{";
os << "flags: " << ::android::internal::ToString(flags);
os << ", svid: " << ::android::internal::ToString(svid);
os << ", signalType: " << ::android::internal::ToString(signalType);
os << ", timeOffsetNs: " << ::android::internal::ToString(timeOffsetNs);
os << ", state: " << ::android::internal::ToString(state);
os << ", receivedSvTimeInNs: " << ::android::internal::ToString(receivedSvTimeInNs);
os << ", receivedSvTimeUncertaintyInNs: " << ::android::internal::ToString(receivedSvTimeUncertaintyInNs);
os << ", antennaCN0DbHz: " << ::android::internal::ToString(antennaCN0DbHz);
os << ", basebandCN0DbHz: " << ::android::internal::ToString(basebandCN0DbHz);
os << ", pseudorangeRateMps: " << ::android::internal::ToString(pseudorangeRateMps);
os << ", pseudorangeRateUncertaintyMps: " << ::android::internal::ToString(pseudorangeRateUncertaintyMps);
os << ", accumulatedDeltaRangeState: " << ::android::internal::ToString(accumulatedDeltaRangeState);
os << ", accumulatedDeltaRangeM: " << ::android::internal::ToString(accumulatedDeltaRangeM);
os << ", accumulatedDeltaRangeUncertaintyM: " << ::android::internal::ToString(accumulatedDeltaRangeUncertaintyM);
os << ", carrierCycles: " << ::android::internal::ToString(carrierCycles);
os << ", carrierPhase: " << ::android::internal::ToString(carrierPhase);
os << ", carrierPhaseUncertainty: " << ::android::internal::ToString(carrierPhaseUncertainty);
os << ", multipathIndicator: " << ::android::internal::ToString(multipathIndicator);
os << ", snrDb: " << ::android::internal::ToString(snrDb);
os << ", agcLevelDb: " << ::android::internal::ToString(agcLevelDb);
os << ", fullInterSignalBiasNs: " << ::android::internal::ToString(fullInterSignalBiasNs);
os << ", fullInterSignalBiasUncertaintyNs: " << ::android::internal::ToString(fullInterSignalBiasUncertaintyNs);
os << ", satelliteInterSignalBiasNs: " << ::android::internal::ToString(satelliteInterSignalBiasNs);
os << ", satelliteInterSignalBiasUncertaintyNs: " << ::android::internal::ToString(satelliteInterSignalBiasUncertaintyNs);
os << ", satellitePvt: " << ::android::internal::ToString(satellitePvt);
os << ", correlationVectors: " << ::android::internal::ToString(correlationVectors);
os << "}";
return os.str();
}
};
} // namespace gnss
} // namespace hardware
} // namespace android
} // namespace aidl