Goby3  3.1.5a
2024.05.23
bluefin.proto
Go to the documentation of this file.
1 syntax = "proto2";
2 import "dccl/option_extensions.proto";
3 
4 import "goby/middleware/protobuf/frontseat.proto";
5 import "goby/acomms/protobuf/modem_message.proto";
6 
7 package goby.middleware.frontseat.protobuf;
8 
9 message 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 
34 message 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 
59 message 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 
121 extend InterfaceData
122 {
123  optional BluefinExtraData bluefin_data = 1000;
124 }
125 
126 message 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 
165 extend CommandRequest
166 {
167  optional BluefinExtraCommands bluefin_command = 1000;
168 }