Goby3  3.1.5a
2024.05.23
gpsd.proto
Go to the documentation of this file.
1 syntax = "proto2";
2 
3 import "goby/middleware/protobuf/geographic.proto";
4 import "dccl/option_extensions.proto";
5 
6 package goby.middleware.protobuf.gpsd;
7 
8 
9 
10 message Satellite {
11  option (dccl.msg).unit_system = "si";
12  required int32 prn = 1;
13  optional double az = 2
14  [(dccl.field) = {units {
15 derived_dimensions: "plane_angle"
16  system: "angle::degree"
17  }}];
18  optional double el = 3
19  [(dccl.field) = {units {
20 derived_dimensions: "plane_angle"
21  system: "angle::degree"
22  }}];
23  optional double ss = 4;
24  optional bool used = 5;
25  optional int32 gnssid = 6;
26  optional int32 svid = 7;
27  optional int32 sigid= 8;
28  optional int32 freqid = 9;
29  optional int32 health = 10;
30 }
31 
32 message SkyView {
33 
34  option (dccl.msg).unit_system = "si";
35  optional string device = 1;
36  optional double time = 2 [(dccl.field).units.derived_dimensions = "time"];
37 
38  optional double gdop = 3;
39  optional double hdop = 4;
40  optional double pdop = 5;
41  optional double tdop = 6;
42  optional double vdop = 7;
43  optional double xdop = 8;
44  optional double ydop = 9;
45  optional double nsat = 10;
46  optional double usat = 11;
47 
48  repeated Satellite satellite = 12;
49 
50 }
51 message Attitude {
52 
53  option (dccl.msg).unit_system = "si";
54  optional string device = 1;
55  optional double time = 2 [(dccl.field).units.derived_dimensions = "time"];
56 
57  optional double heading = 3
58  [(dccl.field) = {units {
59 derived_dimensions: "plane_angle"
60  system: "angle::degree"
61  }}];
62 
63 
64  optional double pitch = 4
65  [(dccl.field) = {units {
66 derived_dimensions: "plane_angle"
67  system: "angle::degree"
68  }}];
69 
70  optional double yaw = 5
71  [(dccl.field) = {units {
72 derived_dimensions: "plane_angle"
73  system: "angle::degree"
74  }}];
75 
76 
77  optional double roll = 6
78  [(dccl.field) = {units {
79 derived_dimensions: "plane_angle"
80  system: "angle::degree"
81  }}];
82 
83 
84 }
85 
86 message TimePositionVelocity {
87  option (dccl.msg).unit_system = "si";
88  // There seems to be a number of things that aren't always initialized, so I am making everything optional for now.
89 
90  optional string device = 1;
91  optional double time = 2 [(dccl.field).units.derived_dimensions = "time"];
92 
93  enum Mode {
94  ModeNotSeen = 0;
95  ModeNoFix = 1;
96  Mode2D = 2;
97  Mode3D= 3;
98  }
99 
100  optional Mode mode = 3;
101  optional LatLonPoint location = 4;
102 
103  optional double altitude = 5
104  [(dccl.field).units.derived_dimensions = "length"];
105 
106  optional double track = 6
107  [(dccl.field) = {units {
108 derived_dimensions: "plane_angle"
109  system: "angle::degree"
110  }}];
111 
112  optional double speed = 7
113  [ (dccl.field).units.derived_dimensions = "length/time"];
114 
115  optional double climb = 8
116  [(dccl.field).units.derived_dimensions = "length/time"];
117 
118  // Do we want any of the uncertainty values?
119  optional double epc = 10
120  [ (dccl.field).units.derived_dimensions = "length/time"];
121  optional double epd = 11
122  [(dccl.field) = {units {
123 derived_dimensions: "plane_angle"
124  system: "angle::degree"
125  }}];
126 
127 
128  optional double eps = 12
129 
130  [ (dccl.field).units.derived_dimensions = "length/time"];
131  optional double ept = 13
132  [ (dccl.field).units.derived_dimensions = "time"];
133  ;
134 
135  optional double epv = 14
136  [(dccl.field).units.derived_dimensions = "length"];
137  optional double epx = 15
138  [(dccl.field).units.derived_dimensions = "length"];
139  optional double epy = 16
140  [(dccl.field).units.derived_dimensions = "length"];
141 
142 }
143 
144 
145 
146 
147 
148