3import "goby/middleware/protobuf/geographic.proto";
4import "dccl/option_extensions.proto";
6package goby.middleware.protobuf.gpsd;
10 option (dccl.msg).unit_system = "si";
11 required int32 prn = 1;
12 optional double az = 2 [(dccl.field) = {
13 units { derived_dimensions: "plane_angle" system: "angle::degree" }
15 optional double el = 3 [(dccl.field) = {
16 units { derived_dimensions: "plane_angle" system: "angle::degree" }
18 optional double ss = 4;
19 optional bool used = 5;
20 optional int32 gnssid = 6;
21 optional int32 svid = 7;
22 optional int32 sigid = 8;
23 optional int32 freqid = 9;
24 optional int32 health = 10;
29 option (dccl.msg).unit_system = "si";
30 optional string device = 1;
31 optional double time = 2 [(dccl.field).units.derived_dimensions = "time"];
33 optional double gdop = 3;
34 optional double hdop = 4;
35 optional double pdop = 5;
36 optional double tdop = 6;
37 optional double vdop = 7;
38 optional double xdop = 8;
39 optional double ydop = 9;
40 optional double nsat = 10;
41 optional double usat = 11;
43 repeated Satellite satellite = 12;
47 option (dccl.msg).unit_system = "si";
48 optional string device = 1;
49 optional double time = 2 [(dccl.field).units.derived_dimensions = "time"];
51 optional double heading = 3 [(dccl.field) = {
52 units { derived_dimensions: "plane_angle" system: "angle::degree" }
55 optional double pitch = 4 [(dccl.field) = {
56 units { derived_dimensions: "plane_angle" system: "angle::degree" }
59 optional double yaw = 5 [(dccl.field) = {
60 units { derived_dimensions: "plane_angle" system: "angle::degree" }
63 optional double roll = 6 [(dccl.field) = {
64 units { derived_dimensions: "plane_angle" system: "angle::degree" }
68message TimePositionVelocity
70 option (dccl.msg).unit_system = "si";
71 // There seems to be a number of things that aren't always initialized, so I
72 // am making everything optional for now.
74 optional string device = 1;
75 optional double time = 2 [(dccl.field).units.derived_dimensions = "time"];
85 optional Mode mode = 3;
86 optional LatLonPoint location = 4;
88 optional double altitude = 5
89 [(dccl.field).units.derived_dimensions = "length"];
91 optional double track = 6 [(dccl.field) = {
92 units { derived_dimensions: "plane_angle" system: "angle::degree" }
95 optional double speed = 7
96 [(dccl.field).units.derived_dimensions = "length/time"];
98 optional double climb = 8
99 [(dccl.field).units.derived_dimensions = "length/time"];
101 // Do we want any of the uncertainty values?
102 optional double epc = 10
103 [(dccl.field).units.derived_dimensions = "length/time"];
104 optional double epd = 11 [(dccl.field) = {
105 units { derived_dimensions: "plane_angle" system: "angle::degree" }
108 optional double eps = 12
110 [(dccl.field).units.derived_dimensions = "length/time"];
111 optional double ept = 13 [(dccl.field).units.derived_dimensions = "time"];
114 optional double epv = 14 [(dccl.field).units.derived_dimensions = "length"];
115 optional double epx = 15 [(dccl.field).units.derived_dimensions = "length"];
116 optional double epy = 16 [(dccl.field).units.derived_dimensions = "length"];