1syntax = "proto2";
2
3package android.location.cts;
4// RPC service for providing ephemeris data
5
6
7message GpsTimeProto {
8  optional int64 nanosecond = 1;
9}
10
11message GpsEphemerisProto {
12  // Time used for generating this data (typically, the queried time).
13  optional GpsTimeProto data_time = 1;
14
15  // PRN.
16  optional int32 prn = 2;
17
18  // GPS week number.
19  optional int32 week = 3;
20
21  // Code on L2.
22  optional int32 l2_code = 4;
23
24  // L2 P data flag.
25  optional int32 l2_flag = 5;
26
27  // SV accuracy in meters.
28  optional double sv_accuracy_m = 6;
29
30  // SV health bits.
31  optional int32 sv_health = 7;
32
33  // Issue of data (ephemeris).
34  optional int32 iode = 8;
35
36  // Issue of data (clock).
37  optional int32 iodc = 9;
38
39  // Time of clock (second).
40  optional double toc = 10;
41
42  // Time of ephemeris (second).
43  optional double toe = 11;
44
45  // Transmission time of the message.
46  optional double tom = 12;
47
48  // Clock info (drift, bias, etc).
49  optional double af0 = 13;
50  optional double af1 = 14;
51  optional double af2 = 15;
52  optional double tgd = 16;
53
54  // Orbital parameters.
55  // Square root of semi-major axis
56  optional double root_of_a = 17;
57
58  // Eccentricity.
59  optional double e = 18;
60
61  // Inclination angle (radian).
62  optional double i_0 = 19;
63
64  // Rate of inclination angle (radians/sec).
65  optional double i_dot = 20;
66
67  // Argument of perigee.
68  optional double omega = 21;
69
70  // Longitude of ascending node of orbit plane at the beginning of week.
71  optional double omega_0 = 22;
72
73  // Rate of right ascension.
74  optional double omega_dot = 23;
75
76  // Mean anomaly at reference time.
77  optional double m_0 = 24;
78
79  // Mean motion difference from computed value.
80  optional double delta_n = 25;
81
82  // Amplitude of second-order harmonic perturbations.
83  optional double crc = 26;
84  optional double crs = 27;
85  optional double cuc = 28;
86  optional double cus = 29;
87  optional double cic = 30;
88  optional double cis = 31;
89
90  // FIT interval.
91  optional double fit_interval = 32;
92}
93
94// Klobuchar Ionospheric Model
95message IonosphericModelProto {
96  // Time used for generating this data (typically, the queried time).
97  optional GpsTimeProto data_time = 1;
98
99  // Amplitude parameters
100  repeated double alpha = 2;
101
102  // Period parameters.
103  repeated double beta = 3;
104}
105
106message UtcModelProto {
107  optional double a_0 = 1;
108  optional double a_1 = 2;
109  optional int64 tow = 3;
110  optional int32 leap_seconds = 4;
111}
112
113message GpsNavMessageProto {
114  // Status for the RPC call.
115  enum RpcStatus {
116    UNKNOWN_RPC_STATUS = 0;
117    SUCCESS = 1;
118    SERVER_ERROR = 2;
119  }
120  optional RpcStatus rpc_status = 1;
121  optional IonosphericModelProto iono = 2;
122  optional UtcModelProto utc_model = 3;
123  repeated GpsEphemerisProto ephemerids = 4;
124}
125