การอ้างอิง GnssClock Struct

การอ้างอิง GnssClock Struct

#include < gps.h >

ฟิลด์ข้อมูล

size_t  size
 
GnssClockFlags   flags
 
int16_t  leap_second
 
int64_t  time_ns
 
คู่  time_uncertainty_ns
 
int64_t  full_bias_ns
 
คู่  bias_ns
 
คู่  bias_uncertainty_ns
 
คู่  drift_nsps
 
คู่  drift_uncertainty_nsps
 
uint32_t  hw_clock_discontinuity_count
 

คำอธิบายโดยละเอียด

แสดงเวลาโดยประมาณของนาฬิกา GPS

คําจํากัดความที่บรรทัด 1455 ของไฟล์ gps.h .

เอกสารประกอบในสนาม

double bias_ns

ความคลาดเคลื่อนระดับนาโนวินาที ค่าประมาณความคลาดเคลื่อนของผลรวมของค่านี้และ full_bias_ns คือ bias_uncertainty_ns

หากมีข้อมูล "flags" ต้องมี GNSS_CLOCK_HAS_BIAS หาก GPS คำนวณการแก้ไขตำแหน่งแล้ว ต้องระบุค่านี้หากเครื่องรับมีเวลา GPS โดยประมาณ

คําจํากัดความที่บรรทัด 1534 ของไฟล์ gps.h .

double bias_uncertainty_ns

ความคลาดเคลื่อน 1-ซิกมาที่เกี่ยวข้องกับการประมาณเวลา GPS ในพื้นที่ (ความเบี่ยงเบนของนาฬิกา) เป็นนาโนวินาที ความไม่แน่นอนจะแสดงเป็นค่าสัมบูรณ์ (แบบด้านเดียว)

หากมีข้อมูล "flags" ต้องมี GNSS_CLOCK_HAS_BIAS_UNCERTAINTY ต้องระบุค่านี้หากเครื่องรับมีเวลา GPS โดยประมาณ

คําจํากัดความที่บรรทัด 1545 ของไฟล์ gps.h .

double drift_nsps

ความคลาดเคลื่อนของนาฬิกาเป็นนาโนวินาที (ต่อวินาที)

ค่าบวกหมายความว่าความถี่สูงกว่าความถี่ที่ระบุ และ (full_bias_ns + bias_ns) มีค่าเป็นบวกมากขึ้นเมื่อเวลาผ่านไป

ค่ามี "ความคลาดเคลื่อนของค่าเฉลี่ย" อยู่ หากมีข้อมูล "flags" ต้องมี GNSS_CLOCK_HAS_DRIFT

ค่านี้เป็นค่าที่ต้องระบุหากเครื่องรับมีเวลา GNSS โดยประมาณ

คําจํากัดความที่บรรทัด 1559 ของไฟล์ gps.h .

double drift_uncertainty_nsps

ความคลาดเคลื่อน 1-Sigma ที่เชื่อมโยงกับการเลื่อนเวลาของนาฬิกาเป็นนาโนวินาที (ต่อวินาที) ความไม่แน่นอนจะแสดงเป็นค่าสัมบูรณ์ (แบบด้านเดียว)

หากมีข้อมูล "flags" ต้องมี GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY หาก GPS คำนวณการแก้ไขตำแหน่งแล้ว ช่องนี้จะเป็นแบบบังคับและต้องป้อนข้อมูล

คําจํากัดความที่บรรทัด 1569 ของไฟล์ gps.h .

ชุด Flag ที่ระบุความถูกต้องของฟิลด์ในโครงสร้างข้อมูลนี้

คําจํากัดความที่บรรทัด 1463 ของไฟล์ gps.h .

int64_t full_bias_ns

ความแตกต่างระหว่างนาฬิกาฮาร์ดแวร์ (ช่อง "time") ภายในเครื่องรับสัญญาณ GPS กับเวลา GPS ที่แท้จริงนับตั้งแต่ 0000Z วันที่ 6 มกราคม 1980 เป็นนาโนวินาที

เครื่องหมายของค่าจะกำหนดโดยสมการต่อไปนี้ ค่าประมาณเวลา GPS ในพื้นที่ = time_ns - (full_bias_ns + bias_ns)

ต้องระบุค่านี้หากเครื่องรับมีเวลา GPS โดยประมาณ หากเวลาที่คำนวณไว้เป็นของกลุ่มดาวที่ไม่ใช่ GPS คุณต้องใช้การเลื่อนเวลาของกลุ่มดาวนั้นเทียบกับ GPS เพื่อป้อนค่านี้ ค่าประมาณความคลาดเคลื่อนของผลรวมของค่านี้และ bias_ns คือ bias_uncertainty_ns และผู้เรียกใช้มีหน้าที่รับผิดชอบในการใช้ค่าความไม่แน่นอนนี้ (ค่านี้อาจสูงมากก่อนที่จะมีการแก้เวลา GPS) หากมีข้อมูล "flags" ต้องมี GNSS_CLOCK_HAS_FULL_BIAS

คําจํากัดความที่บรรทัด 1523 ของไฟล์ gps.h .

uint32_t hw_clock_discontinuity_count

ต้องกรอกข้อมูลในช่องนี้เมื่อมีความไม่ต่อเนื่องของนาฬิกา HW

"การหยุดชะงัก" มีไว้สำหรับกรณีที่เปลี่ยนจากแหล่งที่มาของนาฬิกาหนึ่งไปยังอีกแหล่งหนึ่ง โดยทั่วไปแล้ว ตัวกำเนิดสัญญาณคริสตอลแบบทำงานต่อเนื่อง (XO) ตัวเดียวไม่ควรมีความไม่ต่อเนื่อง และสามารถตั้งค่าและปล่อยไว้ที่ 0 ได้

อย่างไรก็ตาม หากค่า time_ns (นาฬิกา HW) มาจากแหล่งที่มาแบบผสม ซึ่งไม่ราบรื่นเท่ากับ XO ทั่วไป หรือหยุดและเริ่มใหม่ ค่านี้จะเพิ่มขึ้นทุกครั้งที่เกิดความไม่ต่อเนื่อง (เช่น ค่านี้อาจเริ่มต้นที่ 0 เมื่ออุปกรณ์เปิดเครื่องและเพิ่มขึ้นทุกครั้งที่มีการเปลี่ยนแปลงความต่อเนื่องของนาฬิกา ในกรณีที่ค่านี้ถึงระดับเต็ม (ซึ่งไม่น่าจะเกิดขึ้น) จะต้องมีการเปลี่ยนรูปแบบ (ไม่ใช่การจำกัด) เพื่อให้ค่านี้เปลี่ยนแปลงต่อไปในระหว่างเหตุการณ์ที่ไม่ต่อเนื่องที่ตามมา)

เมื่อตัวเลขนี้ไม่เปลี่ยนแปลงระหว่างการรายงานของ GnssClock เราอาจสรุปได้ว่าค่า time_ns ทำงานอย่างต่อเนื่อง เช่น มาจากนาฬิกาคุณภาพสูงตัวเดียว (เช่น XO หรือดีกว่า ซึ่งมักใช้ในการสุ่มตัวอย่างสัญญาณ GNSS อย่างต่อเนื่อง)

โดยเฉพาะอย่างยิ่งในช่วงที่มีสัญญาณ GNSS เพียงไม่กี่สัญญาณ เราคาดหวังว่านาฬิกา HW จะทำงานอย่างต่อเนื่องให้ได้นานที่สุด เนื่องจากจะช่วยหลีกเลี่ยงความจำเป็นในการใช้ (การสิ้นเปลือง) การวัด GNSS เพื่อแก้ไขความเบี่ยงเบนและค่าความคลาดเคลื่อนของนาฬิกา GPS อีกครั้งอย่างเต็มรูปแบบเมื่อใช้การวัดที่มาพร้อมกับรายงาน GnssData ติดต่อกัน

คําจํากัดความที่บรรทัด 1600 ของไฟล์ gps.h .

int16_t leap_second

ข้อมูลเกี่ยวกับวินาทีของ leap เครื่องหมายของค่าจะกำหนดโดยสมการต่อไปนี้ utc_time_ns = time_ns - (full_bias_ns + bias_ns) - leap_second * 1,000,000,000

หากมีข้อมูล "flags" ต้องมี GNSS_CLOCK_HAS_LEAP_SECOND

คําจํากัดความที่บรรทัด 1473 ของไฟล์ gps.h .

size_t size

ตั้งค่าเป็น sizeof(GnssClock)

คําจํากัดความที่บรรทัด 1457 ของไฟล์ gps.h .

int64_t time_ns

ค่านาฬิกาภายในของอุปกรณ์รับสัญญาณ GNSS ค่านี้คือค่านาฬิกาฮาร์ดแวร์ในเครื่อง

สําหรับนาฬิกาฮาร์ดแวร์ในเครื่อง ค่านี้คาดว่าจะเพิ่มขึ้นอย่างต่อเนื่องขณะที่นาฬิกาฮาร์ดแวร์ยังคงเปิดอยู่ (สำหรับกรณีของนาฬิกา HW ที่ไม่ได้เปิดต่อเนื่อง โปรดดูช่อง hw_clock_discontinuity_count) เวลา GPS โดยประมาณของเครื่องรับจะคำนวณได้โดยลบผลรวมของ full_bias_ns และ bias_ns (หากมี) ออกจากค่านี้

เวลา GPS นี้คาดว่าจะเป็นค่าประมาณที่ดีที่สุดของเวลา GPS ปัจจุบันที่เครื่องรับ GNSS ทำได้

คุณสามารถระบุความแม่นยำระดับนาโนวินาทีได้โดยใช้ฟิลด์ "bias_ns" ค่ามี "ความไม่แน่นอนของเวลา" อยู่ด้วย

ต้องกรอกข้อมูลในช่องนี้

คําจํากัดความที่บรรทัด 1494 ของไฟล์ gps.h .

double time_uncertainty_ns

ความคลาดเคลื่อน 1-Sigma ที่เชื่อมโยงกับเวลาของนาฬิกาเป็นนาโนวินาที ความไม่แน่นอนจะแสดงเป็นค่าสัมบูรณ์ (แบบด้านเดียว)

หากมีข้อมูล "flags" ต้องมี GNSS_CLOCK_HAS_TIME_UNCERTAINTY ค่านี้เป็น 0 จริง (เป็นนาฬิกาท้องถิ่นอ้างอิงที่ใช้วัดเวลาอื่นๆ ทั้งหมดและความไม่แน่นอนของเวลา) (ดังนั้นจึงไม่ต้องระบุช่องนี้ตาม Flag GNSS_CLOCK_HAS_TIME_UNCERTAINTY หรือระบุและตั้งค่าเป็น 0)

คําจํากัดความที่บรรทัด 1506 ของไฟล์ gps.h .


เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้
  • hardware/libhardware/include/hardware/ gps.h