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