การอ้างอิง GnssMeasurement Struct
#include <
gps.h
>
คำอธิบายโดยละเอียด
แสดงการวัด GNSS ซึ่งมีข้อมูลดิบและข้อมูลที่คำนวณแล้ว
ความเป็นอิสระ - ข้อมูลการวัดสัญญาณทั้งหมด (เช่น sv_time, pseudorange_rate, multipath_indicator) ที่รายงานในโครงสร้างนี้ควรอิงตามการวัดสัญญาณ GNSS เท่านั้น คุณไม่สามารถสังเคราะห์การวัดผลโดยการคํานวณหรือรายงานการวัดผลที่คาดไว้ตามตําแหน่ง ความเร็ว หรือเวลาที่ทราบหรือประมาณ
เอกสารประกอบในสนาม
double accumulated_delta_range_m |
ช่วงเดลต้าที่สะสมตั้งแต่การรีเซ็ตแชแนลครั้งล่าสุดเป็นเมตร ค่าบวกบ่งบอกว่า SV กำลังเคลื่อนที่ออกจากเครื่องรับ
เครื่องหมายของ "ช่วงเดลต้าสะสม" และความสัมพันธ์กับเครื่องหมายของ "เฟสของสัญญาณ" ได้จากสมการช่วงเดลต้าสะสม = -k * เฟสของสัญญาณ (โดยที่ k คือค่าคงที่)
ต้องป้อนค่านี้หาก "สถานะช่วงเดลต้าที่สะสม" != GPS_ADR_STATE_UNKNOWN อย่างไรก็ตาม ข้อมูลจะถูกต้องก็ต่อเมื่อ "สถานะช่วงเดลต้าที่สะสม" == GPS_ADR_STATE_VALID
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
double accumulated_delta_range_uncertainty_m |
double c_n0_dbhz |
int64_t carrier_cycles |
จำนวนรอบของสัญญาณเต็มรูปแบบระหว่างดาวเทียมกับเครื่องรับ ความถี่อ้างอิงได้จากช่อง "carrier_frequency_hz" คุณสามารถอนุมานได้จาก Flag accumulated_delta_range_state ว่ามีการเลื่อนรอบและการรีเซ็ตที่เป็นไปได้ในการรวบรวมค่านี้
หากมีข้อมูล "flags" ต้องมี GNSS_MEASUREMENT_HAS_CARRIER_CYCLES
float carrier_frequency_hz |
double carrier_phase |
double carrier_phase_uncertainty |
GnssConstellationType constellation |
GnssMeasurementFlags flags |
GnssMultipathIndicator multipath_indicator |
การแจกแจงที่ระบุสถานะ "หลายเส้นทาง" ของเหตุการณ์
ตัวบ่งชี้หลายเส้นทางมีไว้เพื่อรายงานการมีอยู่ของสัญญาณที่ทับซ้อนกันซึ่งปรากฏเป็นจุดสูงสุดของความสัมพันธ์ที่บิดเบี้ยว
- หากมีรูปร่างของจุดสูงสุดของการเชื่อมโยงที่บิดเบี้ยว ให้รายงานว่าระบบหลายเส้นทางคือ GNSS_MULTIPATH_INDICATOR_PRESENT
- หากไม่มีรูปร่างยอดการเชื่อมโยงที่บิดเบี้ยว ให้รายงาน GNSS_MULTIPATH_INDICATOR_NOT_PRESENT
- หากสัญญาณอ่อนเกินกว่าที่จะแยกแยะข้อมูลนี้ได้ ให้รายงาน GNSS_MULTIPATH_INDICATOR_UNKNOWN
ตัวอย่างเช่น เมื่อทำการทดสอบประสิทธิภาพของสัญญาณหลายเส้นทางที่ซ้อนทับตามมาตรฐาน (3GPP TS 34.171) ตัวบ่งชี้หลายเส้นทางควรรายงาน GNSS_MULTIPATH_INDICATOR_PRESENT สำหรับสัญญาณที่มีการติดตามและมีหลายเส้นทาง และ GNSS_MULTIPATH_INDICATOR_NOT_PRESENT สำหรับสัญญาณที่มีการติดตามและไม่มีหลายเส้นทาง
double pseudorange_rate_mps |
อัตราพิกัดเสมือน ณ การประทับเวลาเป็น m/s การแก้ไขค่าอัตราสัญญาณจำลองที่ระบุจะรวมการแก้ไขความคลาดเคลื่อนของความถี่นาฬิกาของดาวเทียมและเครื่องรับ ตรวจสอบว่าช่องนี้อิสระ (ดูความคิดเห็นที่ด้านบนของ GnssMeasurement struct)
คุณต้องระบุ "อัตราพิกัดตำแหน่งเสมือน" ที่ "ไม่ได้แก้ไข" และระบุช่อง "ความคลาดเคลื่อน" ของ GpsClock ด้วย (เมื่อระบุอัตราพิกัดตำแหน่งเสมือนที่ "ไม่ได้แก้ไข" อย่าใช้การแก้ไขที่อธิบายไว้ข้างต้น)
ค่านี้รวม "ความคลาดเคลื่อนของอัตราสัญญาณจำลอง" ไว้ด้วย ค่า "ไม่ได้รับการแก้ไข" ที่เป็นบวกบ่งบอกว่า SV กำลังเคลื่อนที่ออกจากเครื่องรับ
เครื่องหมายของ "อัตราพิกัดเสมือน" "ที่ไม่มีการแก้ไข" และความสัมพันธ์กับเครื่องหมายของ "ความคลาดเคลื่อนของ Doppler" ได้จากสมการอัตราพิกัดเสมือน = -k * ความคลาดเคลื่อนของ Doppler (โดยที่ k คือค่าคงที่)
ซึ่งควรเป็นอัตราพิสัยเสมือนที่แม่นยำที่สุดที่มีอยู่ โดยอิงตามการวัดสัญญาณใหม่จากช่องนี้
คุณต้องระบุค่านี้ที่คุณภาพ PRR ของเฟสสัญญาณที่ใช้งานจริง (ความคลาดเคลื่อน 2-3 ซม./วินาทีต่อวินาที หรือดีกว่า) เมื่อสัญญาณมีความแรงและเสถียรเพียงพอ เช่น สัญญาณจากเครื่องจำลอง GPS ที่ความแรงสัญญาณมากกว่าหรือเท่ากับ 35 dB-Hz
double pseudorange_rate_uncertainty_mps |
int64_t received_sv_time_in_ns |
เวลาของสัปดาห์ GNSS ที่ได้รับ ณ เวลาทำการวัดเป็นนาโนวินาที ตรวจสอบว่าช่องนี้อิสระ (ดูความคิดเห็นที่ด้านบนของ GnssMeasurement struct)
สำหรับ GPS และ QZSS จะเป็นค่าเวลาของสัปดาห์ที่ได้รับจาก GPS ณ เวลาทำการวัดเป็นนาโนวินาที ค่านี้สัมพันธ์กับจุดเริ่มต้นของสัปดาห์ GPS ปัจจุบัน
เมื่อพิจารณาสถานะการซิงค์สูงสุดที่ทำได้ต่อดาวเทียมแต่ละดวง ช่วงที่ใช้ได้สำหรับช่องนี้คือ กำลังค้นหา : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN การล็อกโค้ด C/A : [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK is set การซิงค์บิต : [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC is set การซิงค์เฟรมย่อย : [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC is set TOW ที่ถอดรหัสแล้ว : [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED is set
โปรดทราบว่าหากมีความคลุมเครือในจำนวนเต็มมิลลิวินาที คุณควรตั้งค่า GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS ตามความเหมาะสมในช่อง "state"
ต้องป้อนค่านี้หาก "state" != GNSS_MEASUREMENT_STATE_UNKNOWN
สำหรับ Glonass จะเป็นค่าเวลาของวันที่ได้รับจาก Glonass ณ เวลาทำการวัดเป็นนาโนวินาที
เมื่อพิจารณาสถานะการซิงค์สูงสุดที่ทำได้ต่อดาวเทียมแต่ละดวง ช่วงข้อมูลที่ถูกต้องสำหรับช่องนี้จะเป็นดังนี้ กำลังค้นหา : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN การล็อกโค้ด C/A : [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK is set การซิงค์สัญลักษณ์ : [ 0 10ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC is set การซิงค์บิต : [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC is set การซิงค์สตริง : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC is set เวลาของวัน : [ 0 1day ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED is set
สำหรับ Beidou จะเป็น: เวลาของสัปดาห์ที่ได้รับ Beidou ณ เวลาการวัดเป็นนาโนวินาที
เมื่อพิจารณาสถานะการซิงค์สูงสุดที่ทำได้ต่อดาวเทียมแต่ละดวง ช่วงข้อมูลที่ถูกต้องสำหรับช่องนี้จะเป็นดังนี้ กำลังค้นหา : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN การล็อกโค้ด C/A: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK is set การซิงค์บิต (D2): [ 0 2ms ] : GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC is set การซิงค์บิต (D1): [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC is set เฟรมย่อย (D2): [ 0 0.6s ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC is set เฟรมย่อย (D1): [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC is set เวลาของสัปดาห์ : [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED is set
สำหรับ Galileo จะเป็นค่าเวลาของสัปดาห์ที่ได้รับจาก Galileo ณ เวลาการวัดเป็นนาโนวินาที
การล็อกรหัส E1BC : [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK is set การล็อกรหัส E1C ลำดับที่ 2: [ 0 100ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK is set
หน้า E1B : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC is set เวลาของสัปดาห์: [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED is set
สำหรับ SBAS จะเป็นเวลา SBAS ที่รับ ณ เวลาการวัดเป็นนาโนวินาที
เมื่อพิจารณาสถานะการซิงค์สูงสุดที่ทำได้ต่อดาวเทียมแต่ละดวง ช่วงที่ใช้ได้สำหรับฟิลด์นี้จะเป็นดังนี้ กำลังค้นหา : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN การล็อกโค้ด C/A: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK is set การซิงค์สัญลักษณ์ : [ 0 2ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC is set ข้อความ : [ 0 1s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC is set
int64_t received_sv_time_uncertainty_in_ns |
snr_db ที่เป็นประเภท double |
GnssMeasurementState state |
int16_t svid |
หมายเลขประจำตัวยานพาหนะดาวเทียมตามที่ระบุไว้ใน GnssSvInfo::svid ค่านี้เป็นค่าที่ต้องระบุ
double time_offset_ns |
ระยะห่างของเวลาที่ทำการวัดเป็นนาโนวินาที เวลาของผู้รับสัญญาณอ้างอิงจะระบุโดย GpsData::clock::time_ns และควรตีความในลักษณะเดียวกับที่ระบุโดย GpsClock::type
เครื่องหมายของ time_offset_ns ได้จากสมการต่อไปนี้ เวลาการวัด = GpsClock::time_ns + time_offset_ns
โดยจะประทับเวลาการวัดแต่ละรายการและมีความแม่นยำระดับนาโนวินาที ค่านี้เป็นค่าที่ต้องระบุ
เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้
- hardware/libhardware/include/hardware/ gps.h