Goby3 3.2.3
2025.05.13
Loading...
Searching...
No Matches
bluefin.proto
Go to the documentation of this file.
1syntax = "proto2";
2import "dccl/option_extensions.proto";
3
4import "goby/middleware/protobuf/frontseat.proto";
5import "goby/acomms/protobuf/modem_message.proto";
6
7package goby.middleware.frontseat.protobuf;
8
9message BuoyancyStatus
10{
11 enum Status
12 {
13 BUOYANCY_IDLE = 0;
14 BUOYANCY_IN_PROGRESS = 1;
15 BUOYANCY_COMPLETED_SUCCESSFULLY = 2;
16 BUOYANCY_COMPLETED_UNSUCCESSFULLY = 3;
17 }
18
19 optional Status status = 1 [default = BUOYANCY_IDLE];
20
21 enum Error
22 {
23 ERROR_NONE = 0;
24 ERROR_BUOYANCY_OPERATION_FAILED = 1;
25 ERROR_OPERATION_CANCELLED = 2;
26 ERROR_ZERO_FLOW = 3;
27 }
28
29 optional Error error = 2 [default = ERROR_NONE];
30 optional string debug_string = 3;
31 optional double buoyancy_newtons = 4;
32}
33
34message TrimStatus
35{
36 enum Status
37 {
38 TRIM_IDLE = 0;
39 TRIM_IN_PROGRESS = 1;
40 TRIM_COMPLETED_SUCCESSFULLY = 2;
41 TRIM_COMPLETED_UNSUCCESSFULLY = 3;
42 }
43
44 optional Status status = 1 [default = TRIM_IDLE];
45
46 enum Error
47 {
48 ERROR_NONE = 0;
49 ERROR_TRIM_OPERATION_FAILED = 1;
50 ERROR_CANNOT_TRIM_WHILE_SILENT = 2;
51 }
52
53 optional Error error = 2 [default = ERROR_NONE];
54 optional string debug_string = 3;
55 optional double pitch_trim_degrees = 4;
56 optional double roll_trim_degrees = 5;
57}
58
59message BluefinExtraData
60{
61 option (dccl.msg).unit_system = "si";
62
63 optional goby.acomms.protobuf.ModemRaw micro_modem_raw_out = 1;
64 optional goby.acomms.protobuf.ModemRaw micro_modem_raw_in = 2;
65 optional BuoyancyStatus buoyancy_status = 10;
66 optional TrimStatus trim_status = 20;
67
68 message PayloadStatus
69 {
70 required int32 id = 1;
71 required uint64 expire_time = 2
72 [(dccl.field).units = {prefix: "micro" base_dimensions: "T"}];
73 required string msg = 3;
74 required bool all_ok = 4;
75 }
76
77 repeated PayloadStatus payload_status = 30;
78
79 message RawDVL
80 {
81 option (dccl.msg).unit_system = "si";
82 optional double dvl_time = 1
83 [(dccl.field).units.derived_dimensions = "time"];
84 optional double u = 2 [(dccl.field).units.derived_dimensions =
85 "velocity"]; // positive forward
86 optional double v = 3 [(dccl.field).units.derived_dimensions =
87 "velocity"]; // positive starboard
88 optional double w = 4 [(dccl.field).units.derived_dimensions =
89 "velocity"]; // positive down
90
91 optional double beam1_range = 5
92 [(dccl.field).units.derived_dimensions = "length"];
93 optional double beam2_range = 6
94 [(dccl.field).units.derived_dimensions = "length"];
95 optional double beam3_range = 7
96 [(dccl.field).units.derived_dimensions = "length"];
97 optional double beam4_range = 8
98 [(dccl.field).units.derived_dimensions = "length"];
99
100 optional double temperature = 9 [(dccl.field).units = {
101 system: "celsius"
102 derived_dimensions: "temperature"
103 }];
104 }
105
106 optional RawDVL dvl = 40;
107
108 message RawThrusterRotation
109 {
110 required double rotation = 1 [(dccl.field).units = {
111 system: "goby::util::units::rpm::system"
112 derived_dimensions: "angular_velocity"
113 }];
114 optional double speed_from_lookup_table = 2
115 [(dccl.field).units.derived_dimensions = "velocity"];
116 }
117
118 optional RawThrusterRotation thruster = 50;
119}
120
121extend InterfaceData
122{
123 optional BluefinExtraData bluefin_data = 1000;
124}
125
126message BluefinExtraCommands
127{
128 enum BluefinCommand
129 {
130 UNKNOWN_COMMAND = 0;
131 DESIRED_COURSE = 1;
132 TRIM_ADJUST = 3;
133 BUOYANCY_ADJUST = 4;
134 SILENT_MODE = 5;
135 CANCEL_CURRENT_BEHAVIOR = 6;
136 ABORT_MISSION = 7;
137 MISSION_START_CONFIRM = 8;
138 MISSION_END_CONFIRM = 9;
139 }
140 optional BluefinCommand command = 1 [default = UNKNOWN_COMMAND];
141
142 enum SilentMode
143 {
144 NORMAL = 0;
145 SILENT = 1;
146 }
147 optional SilentMode silent_mode = 10 [default = NORMAL];
148
149 enum AbortReason
150 {
151 SUCCESSFUL_MISSION = 0;
152 ABORT_WITH_ERRORS = 1;
153 }
154
155 optional AbortReason abort_reason = 11 [default = ABORT_WITH_ERRORS];
156
157 enum StartConfirm
158 {
159 SUCCESS = 1;
160 FAIL = 0;
161 }
162 optional StartConfirm start_confirm = 12 [default = SUCCESS];
163}
164
165extend CommandRequest
166{
167 optional BluefinExtraCommands bluefin_command = 1000;
168}