Goby3 3.4.0
2026.04.13
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
8message Satellite
9{
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" }
14 }];
15 optional double el = 3 [(dccl.field) = {
16 units { derived_dimensions: "plane_angle" system: "angle::degree" }
17 }];
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;
25}
26
27message SkyView
28{
29 option (dccl.msg).unit_system = "si";
30 optional string device = 1;
31 optional double time = 2 [(dccl.field).units.derived_dimensions = "time"];
32
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;
42
43 repeated Satellite satellite = 12;
44}
45message Attitude
46{
47 option (dccl.msg).unit_system = "si";
48 optional string device = 1;
49 optional double time = 2 [(dccl.field).units.derived_dimensions = "time"];
50
51 optional double heading = 3 [(dccl.field) = {
52 units { derived_dimensions: "plane_angle" system: "angle::degree" }
53 }];
54
55 optional double pitch = 4 [(dccl.field) = {
56 units { derived_dimensions: "plane_angle" system: "angle::degree" }
57 }];
58
59 optional double yaw = 5 [(dccl.field) = {
60 units { derived_dimensions: "plane_angle" system: "angle::degree" }
61 }];
62
63 optional double roll = 6 [(dccl.field) = {
64 units { derived_dimensions: "plane_angle" system: "angle::degree" }
65 }];
66}
67
68message TimePositionVelocity
69{
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.
73
74 optional string device = 1;
75 optional double time = 2 [(dccl.field).units.derived_dimensions = "time"];
76
77 enum Mode
78 {
79 ModeNotSeen = 0;
80 ModeNoFix = 1;
81 Mode2D = 2;
82 Mode3D = 3;
83 }
84
85 optional Mode mode = 3;
86 optional LatLonPoint location = 4;
87
88 optional double altitude = 5
89 [(dccl.field).units.derived_dimensions = "length"];
90
91 optional double track = 6 [(dccl.field) = {
92 units { derived_dimensions: "plane_angle" system: "angle::degree" }
93 }];
94
95 optional double speed = 7
96 [(dccl.field).units.derived_dimensions = "length/time"];
97
98 optional double climb = 8
99 [(dccl.field).units.derived_dimensions = "length/time"];
100
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" }
106 }];
107
108 optional double eps = 12
109
110 [(dccl.field).units.derived_dimensions = "length/time"];
111 optional double ept = 13 [(dccl.field).units.derived_dimensions = "time"];
112 ;
113
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"];
117}