การอ้างอิงโครงสร้าง GnssClock

การอ้างอิงโครงสร้าง GnssClock

#include < gps.h >

เขตข้อมูล

ขนาด_t ขนาด
GnssClockFlags ธง
int16_t ก้าวกระโดด_วินาที
int64_t เวลา_ns
สองเท่า เวลา_ความไม่แน่นอน_ns
int64_t เต็ม_bias_ns
สองเท่า อคติ_ns
สองเท่า อคติ_ความไม่แน่นอน_ns
สองเท่า drift_nsps
สองเท่า drift_uncertainty_nsps
uint32_t hw_clock_discontinuity_count

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

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

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

เอกสารภาคสนาม

อคติสองเท่า

อคติต่ำกว่านาโนวินาที ค่าประมาณข้อผิดพลาดสำหรับผลรวมของสิ่งนี้และ full_bias_ns คือ bias_uncertainty_ns

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

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

อคติสองเท่า_ความไม่แน่นอน_ns

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

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

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

drift_nsps สองเท่า

การดริฟท์ของนาฬิกามีหน่วยเป็นนาโนวินาที (ต่อวินาที)

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

ค่านี้มี 'ความไม่แน่นอนของการดริฟท์' อยู่ในนั้น หากมีข้อมูล 'ธง' จะต้องมี GNSS_CLOCK_HAS_DRIFT

ค่านี้เป็นค่าบังคับหากผู้รับมีเวลา GNSS โดยประมาณ

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

drift_uncertainty_nsps สองเท่า

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

หากมีข้อมูล 'ธง' จะต้องมี GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY หาก GPS ได้คำนวณตำแหน่งแก้ไขแล้ว ฟิลด์นี้จำเป็นต้องกรอกและต้องเติมข้อมูล

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

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

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

int64_t เต็ม_bias_ns

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

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

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

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

uint32_t hw_clock_discontinuity_count

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

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

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

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

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

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

int16_t ก้าวกระโดด_วินาที

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

หากมีข้อมูล 'ธง' จะต้องมี GNSS_CLOCK_HAS_LEAP_SECOND

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

ขนาด_ขนาดt

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

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

int64_t เวลา_ns

ค่านาฬิกาภายในของตัวรับ GNSS นี่คือค่านาฬิกาของฮาร์ดแวร์ภายในเครื่อง

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

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

สามารถให้ความแม่นยำต่ำกว่านาโนวินาทีได้โดยใช้ฟิลด์ 'bias_ns' ค่านี้มี 'ความไม่แน่นอนของเวลา' อยู่ในนั้น

ฟิลด์นี้เป็นฟิลด์บังคับ

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

สองครั้ง_ความไม่แน่นอน_ns

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

หากมีข้อมูล 'ธง' จะต้องมี GNSS_CLOCK_HAS_TIME_UNCERTAINTY ค่านี้เป็นศูนย์อย่างมีประสิทธิภาพ (เป็นนาฬิกาท้องถิ่นอ้างอิง ซึ่งใช้วัดความไม่แน่นอนของเวลาและเวลาอื่นๆ ทั้งหมด) (และด้วยเหตุนี้จึงไม่สามารถระบุฟิลด์นี้ได้ ตามการตั้งค่าสถานะ GNSS_CLOCK_HAS_TIME_UNCERTAINTY หรือระบุ & ตั้งค่าเป็น 0)

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


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