Tham chiếu cấu trúc GnssClock
#include <
gps.h
>
Trường dữ liệu |
|
size_t | size |
GnssClockFlags | cờ |
int16_t | leap_second |
int64_t | time_ns |
double | time_uncertainty_ns |
int64_t | full_bias_ns |
double | bias_ns |
double | bias_uncertainty_ns |
double | drift_nsps |
double | drift_uncertainty_nsps |
uint32_t | hw_clock_discontinuity_count |
Nội dung mô tả chi tiết
Tài liệu về trường
bias_ns kép |
Độ lệch dưới nano giây. Giá trị ước tính sai số cho tổng của giá trị này và full_bias_ns là bias_uncertainty_ns
Nếu có dữ liệu, "cờ" phải chứa GNSS_CLOCK_HAS_BIAS. Nếu GPS đã tính toán một thông tin sửa lỗi vị trí. Giá trị này là bắt buộc nếu bộ thu có thời gian GPS ước tính.
double bias_uncertainty_ns |
Độ không chắc chắn 1-Sigma liên quan đến thời gian GPS ước tính cục bộ (sai số đồng hồ) tính bằng nano giây. Độ không chắc chắn được biểu thị dưới dạng một giá trị tuyệt đối (một bên).
Nếu có dữ liệu, "cờ" phải chứa GNSS_CLOCK_HAS_BIAS_UNCERTAINTY. Giá trị này là bắt buộc nếu bộ thu có thời gian GPS ước tính.
drift_nsps đôi |
Độ lệch của đồng hồ tính bằng nano giây (mỗi giây).
Giá trị dương có nghĩa là tần số cao hơn tần số danh nghĩa và (full_bias_ns + bias_ns) đang tăng lên theo thời gian.
Giá trị này chứa "mức độ không chắc chắn về độ lệch". Nếu có dữ liệu, "cờ" phải chứa GNSS_CLOCK_HAS_DRIFT.
Giá trị này là bắt buộc nếu bộ thu có thời gian GNSS ước tính
double drift_uncertainty_nsps |
Độ không chắc chắn 1-Sigma liên quan đến độ trễ của đồng hồ tính bằng nano giây (mỗi giây). Độ không chắc chắn được biểu thị dưới dạng một giá trị tuyệt đối (một bên).
Nếu có dữ liệu, "cờ" phải chứa GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY. Nếu GPS đã tính toán một thông tin sửa lỗi vị trí, thì trường này là bắt buộc và phải được điền sẵn.
int64_t full_bias_ns |
Sự khác biệt giữa đồng hồ phần cứng (trường "time") bên trong bộ thu GPS và thời gian GPS thực kể từ 00:00Z ngày 6 tháng 1 năm 1980, tính bằng nano giây.
Dấu của giá trị được xác định bằng phương trình sau: thời gian GPS ước tính cục bộ = time_ns - (full_bias_ns + bias_ns)
Giá trị này là bắt buộc nếu bộ thu có thời gian GPS ước tính. Nếu thời gian được tính toán là cho một chòm sao không phải GPS, thì bạn phải áp dụng độ lệch thời gian của chòm sao đó so với GPS để điền giá trị này. Ước tính lỗi cho tổng của giá trị này và bias_ns là bias_uncertainty_ns và phương thức gọi chịu trách nhiệm sử dụng độ không chắc chắn này (giá trị này có thể rất lớn trước khi thời gian GPS được giải quyết). Nếu có dữ liệu, "cờ" phải chứa GNSS_CLOCK_HAS_FULL_BIAS.
uint32_t hw_clock_discontinuity_count |
Trường này là bắt buộc khi có bất kỳ giá trị gián đoạn nào trong đồng hồ phần cứng.
"Đứt đoạn" dùng để chỉ trường hợp chuyển đổi từ nguồn xung nhịp này sang nguồn xung nhịp khác. Một bộ dao động tinh thể chạy tự do (XO) thường không được có bất kỳ giá trị gián đoạn nào và bạn có thể đặt và để giá trị này ở mức 0.
Tuy nhiên, nếu giá trị time_ns (đồng hồ phần cứng) bắt nguồn từ một tổ hợp các nguồn không mượt mà như XO thông thường hoặc bị dừng và khởi động lại, thì giá trị này sẽ được tăng lên mỗi khi xảy ra sự gián đoạn. (Ví dụ: giá trị này có thể bắt đầu từ 0 khi khởi động thiết bị và tăng lên mỗi khi có sự thay đổi về tính liên tục của xung nhịp. Trong trường hợp hiếm gặp giá trị này đạt đến toàn bộ thang đo, bạn phải thực hiện tính năng chuyển tiếp (không phải kẹp) để giá trị này tiếp tục thay đổi trong các sự kiện không liên tục tiếp theo.)
Mặc dù con số này không thay đổi giữa các báo cáo GnssClock , nhưng bạn có thể giả định rằng giá trị time_ns đã chạy liên tục, ví dụ: bắt nguồn từ một đồng hồ chất lượng cao (tương tự như XO hoặc tốt hơn, thường được dùng trong quá trình lấy mẫu tín hiệu GNSS liên tục).
Theo dự kiến, đặc biệt là trong những khoảng thời gian có ít tín hiệu GNSS, đồng hồ phần cứng sẽ không bị gián đoạn càng lâu càng tốt, vì điều này giúp tránh việc sử dụng (lãng phí) một phép đo GNSS để giải quyết lại hoàn toàn độ lệch và độ trễ của đồng hồ GPS, khi sử dụng các phép đo đi kèm, từ các báo cáo GnssData liên tiếp.
int16_t leap_second |
int64_t time_ns |
Giá trị đồng hồ nội bộ của bộ thu GNSS. Đây là giá trị đồng hồ phần cứng cục bộ.
Đối với đồng hồ phần cứng cục bộ, giá trị này dự kiến sẽ tăng dần trong khi đồng hồ phần cứng vẫn bật nguồn. (Đối với trường hợp đồng hồ phần cứng không bật liên tục, hãy xem trường hw_clock_discontinuity_count). Bạn có thể lấy giá trị ước tính thời gian GPS của bộ thu bằng cách trừ tổng full_bias_ns và bias_ns (nếu có) khỏi giá trị này.
Thời gian GPS này dự kiến là thời gian GPS hiện tại được ước tính chính xác nhất mà bộ thu GNSS có thể đạt được.
Bạn có thể cung cấp độ chính xác dưới nano giây thông qua trường "bias_ns". Giá trị này chứa "mức độ không chắc chắn về thời gian".
Đây là trường bắt buộc.
double time_uncertainty_ns |
Độ không chắc chắn 1-Sigma liên kết với thời gian của đồng hồ tính bằng nano giây. Độ không chắc chắn được biểu thị dưới dạng một giá trị tuyệt đối (một bên).
Nếu có dữ liệu, "cờ" phải chứa GNSS_CLOCK_HAS_TIME_UNCERTAINTY. Giá trị này thực tế bằng 0 (đây là đồng hồ cục bộ tham chiếu, theo đó tất cả các thời gian khác và độ không chắc chắn về thời gian được đo lường). (Do đó, trường này có thể không được cung cấp, theo cờ GNSS_CLOCK_HAS_TIME_UNCERTAINTY hoặc được cung cấp và đặt thành 0.)
Tài liệu cho cấu trúc này được tạo từ tệp sau:
- hardware/libhardware/include/hardware/ gps.h