Goby3 3.3.0
2025.07.10
Loading...
Searching...
No Matches
gpsd.proto
Go to the documentation of this file.
1syntax = "proto2";
2
3import "goby/middleware/protobuf/geographic.proto";
4import "dccl/option_extensions.proto";
5
6package goby.middleware.protobuf.gpsd;
7
8
9
10message Satellite {
11 option (dccl.msg).unit_system = "si";
12 required int32 prn = 1;
13 optional double az = 2
14 [(dccl.field) = {units {
15derived_dimensions: "plane_angle"
16 system: "angle::degree"
17 }}];
18 optional double el = 3
19 [(dccl.field) = {units {
20derived_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
32message 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}
51message 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 {
59derived_dimensions: "plane_angle"
60 system: "angle::degree"
61 }}];
62
63
64 optional double pitch = 4
65 [(dccl.field) = {units {
66derived_dimensions: "plane_angle"
67 system: "angle::degree"
68 }}];
69
70 optional double yaw = 5
71 [(dccl.field) = {units {
72derived_dimensions: "plane_angle"
73 system: "angle::degree"
74 }}];
75
76
77 optional double roll = 6
78 [(dccl.field) = {units {
79derived_dimensions: "plane_angle"
80 system: "angle::degree"
81 }}];
82
83
84}
85
86message 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 {
108derived_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 {
123derived_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