[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-07-27 UTC"],[],[],null,["# Analyze raw measurements with GnssLogger\n\nWith GnssLogger v3.1, users can view and analyze raw GNSS data on the\n**Measurements** screen.\n\nHere is the **Measurements** screen, followed by a few tips\nand tricks to make the most out of this data:\n**Figure 1.** Measurements screen\n\nIn the top card:\n\n- The top left shows the GNSS clock data (corresponding to [`GnssClock`](/reference/android/location/GnssClock)).\n- The top right shows the count of GNSS hardware (HW) discontinuities (from [`GnssClock.getHardwareClockDiscontinuityCount`](/reference/android/location/GnssClock#getHardwareClockDiscontinuityCount%28%29)), which helps determine if duty-cycling is on or off. When this counter increments, it indicates that there was a disruption in the continuous observation of GNSS signals (e.g., [duty-cycling](https://barbeau.medium.com/gnss-interrupted-the-hidden-android-setting-you-need-to-know-d812d28a3821) is on). Further down, the card displays aggregate information for all measurements:\n - **# valid measurements** --- For a measurement to be considered valid, the [`STATE_CODE_LOCK`](/reference/android/location/GnssMeasurement#STATE_CODE_LOCK) and [`STATE_TOW_KNOWN`](/reference/android/location/GnssMeasurement#STATE_TOW_KNOWN) or [`STATE_TOW_DECODED`](/reference/android/location/GnssMeasurement#STATE_TOW_DECODED)) flags must be set in [`GnssMeasurement.getState`](/reference/android/location/GnssMeasurement#getState%28%29)().\n - **# usable accumulated delta range (ADR) --- For** ADR, or carrier phase, to be considered usable for positioning, the [`ADR_STATE_VALID`](/reference/android/location/GnssMeasurement#ADR_STATE_VALID) flag must be set and neither the [`ADR_STATE_RESET`](/reference/android/location/GnssMeasurement#ADR_STATE_RESET) nor the [`ADR_STATE_CYCLE_SLIP`](/reference/android/location/GnssMeasurement#ADR_STATE_CYCLE_SLIP) flags can be set in [`GnssMeasurement.getAccumulatedDeltaRangeState`](/reference/android/location/GnssMeasurement#getAccumulatedDeltaRangeState%28%29)().\n\nIf your device always reports 0 usable ADR, even when in open sky with\nduty-cycling disabled, that's a good indication that your\ndevice doesn't support carrier phase measurements that can be used for\nhigh-accuracy GNSS.\n\nIn the bottom card, each row represents an individual [`GnssMeasurement`](/reference/android/location/GnssMeasurement).\n\n- The **Code type** column shows the exact type of GNSS signal using the code types defined in [RINEX 4.01](https://www.igs.org/wg/rinex/). For example, the GPS L1 signals with code type \"C\", represent L1 C/A, as indicated by the last letter in the three character code in the RINEX tables. GPS L5 Q would similarly have a \"Q\" code type. See the tables for other GNSS constellations at the end of this document for reference.\n- In the **Rx SV Time (ns)** column, the text is green if the measurement is valid.\n- In the **State column** , the state is also green if the measurement is valid. State shows a human-readable version of the bitwise flags that are set in the [GnssMeasurement.getState()](/reference/android/location/GnssMeasurement#getState%28%29) field.\n\nProvide feedback on new features using our\n[public issue tracker](https://issuetracker.google.com/issues/new?component=313183&template=0).\n\n**Table 10 : RINEX Version 4.01 GPS Observation Codes**\n\nFor each measurement, the \"Code Type\" shown is the last letter of the \"Pseudo\nRange\" value defined in the RINEX 4.01 specification for the relevant GNSS\nsystem and carrier frequency. For example, \"C\" is used for GPS L1\n\\[C/A\\] while \"Q\" is used for GPS L5 Q.\n**Figure 2.** Table 10: RINEX Version 4.01 GPS Observation Codes\n\nUsers can scroll to the right to see additional columns for each measurement:\n**Figure 3.** Additional columns on the Measurements screen in Table 10.\n\n- **PRR** is the Pseudo Range Rate in meters per second from [GnssMeasurement.getPseudorangeRateMetersPerSecond()](/reference/android/location/GnssMeasurement#getPseudorangeRateMetersPerSecond())\n- The **ADR State** column shows the human-readable version of the bitwise flags set in the [GnssMeasurement.getAccumulatedDeltaRangeState()](/reference/android/location/GnssMeasurement#getAccumulatedDeltaRangeState%28%29) column. If the ADR is usable for positioning, the text in the **ADR (m)** and **ADR State** fields is green.\n\nRINEX 4.01 observation codes\n----------------------------\n\nThe last of the three letters in the RINEX observation codes in the Pseudo Range\ncolumn is the **Code type** value shown on the **Measurements** screen in\nGnssLogger.\n\nFollowing are tables from the [RINEX 4.01 spec](https://www.igs.org/wg/rinex/) for convenience.\nSee the full specification for details.\n**Figure 4.** Table 10: RINEX Version 4.01 GPS Observation Codes **Figure 5.** Table 11: RINEX Version 4.01 GLONASS Observation Codes **Figure 6.** Table 12: RINEX Version 4.01 Galileo Observation Codes **Figure 7.** Table 13: RINEX Version 4.01 SBAS Observation Codes **Figure 8.** Table 14: RINEX Version 4.01 QZSS Observation Codes **Figure 9.** Table 15: RINEX Version 4.01 BDS Observation Codes **Figure 10.** RINEX Version 4.01 NavIC Observation Codes"]]