3 import "dccl/option_extensions.proto";
4 import "jaiabot/messages/mission.proto";
5 import "jaiabot/messages/geographic_coordinate.proto";
6 import "jaiabot/messages/high_control.proto";
7 import "goby/middleware/protobuf/coroner.proto";
8 import "jaiabot/messages/health.proto";
9 import "jaiabot/messages/imu.proto";
11 package jaiabot.protobuf;
16 Actual maximum size of message: 179 bytes / 1432 bits
17 dccl.id head...........................8
18 user head..............................0
19 body................................1423
20 padding to full byte...................1
21 Allowed maximum size of message: 250 bytes / 2000 bits
30 required uint32 bot_id = 1 [(dccl.field) = { min: 0 max: 255 }];
31 required uint64 time = 2 [(dccl.field) = {
33 units { prefix: "micro" derived_dimensions: "time" }
34 precision: -6 // second precision
43 MISSION_PLAN_FRAGMENT = 4;
52 // during remote control mission
53 REMOTE_CONTROL_SETPOINT = 20;
54 REMOTE_CONTROL_TASK = 21;
55 REMOTE_CONTROL_RESUME_MOVEMENT = 22;
60 RETRY_DATA_OFFLOAD = 32;
61 DATA_OFFLOAD_COMPLETE = 33;
62 DATA_OFFLOAD_FAILED = 34;
64 // debugging low level commands
65 RESTART_ALL_SERVICES = 40;
67 SHUTDOWN_COMPUTER = 42;
70 required CommandType type = 10;
74 // required for type == MISSION_PLAN
75 MissionPlan plan = 20;
77 // required for type == REMOTE_CONTROL_SETPOINT
78 RemoteControl rc = 30;
80 // required for type == REMOTE_CONTROL_TASK
81 MissionTask rc_task = 31;
91 required uint32 hub_id = 1;
92 required uint64 time = 2 [
93 (dccl.field) = { units { prefix: "micro" derived_dimensions: "time" } }
100 // debugging low level commands
101 RESTART_ALL_SERVICES = 40;
102 REBOOT_COMPUTER = 41;
103 SHUTDOWN_COMPUTER = 42;
105 // simulator commands
106 SET_HUB_LOCATION = 80;
109 required HubCommandType type = 10;
110 optional uint32 scan_for_bot_id = 11;
112 optional GeographicCoordinate hub_location = 80;
118 Actual maximum size of message: 54 bytes / 432 bits
119 dccl.id head...........................8
120 user head..............................0
121 body.................................417
122 padding to full byte...................7
123 Allowed maximum size of message: 250 bytes / 2000 bits
125 option (dccl.msg) = {
132 required uint32 bot_id = 1 [(dccl.field) = { min: 0 max: 255 }];
133 required uint64 time = 2 [(dccl.field) = {
135 units { prefix: "micro" derived_dimensions: "time" }
137 optional uint64 last_command_time = 3 [(dccl.field) = {
139 units { prefix: "micro" derived_dimensions: "time" }
142 optional goby.middleware.protobuf.HealthState health_state = 4;
143 repeated Error error = 5 [(dccl.field).max_repeat = 5];
144 repeated Warning warning = 6 [(dccl.field).max_repeat = 5];
150 optional BotType bot_type = 7;
152 optional GeographicCoordinate location = 10;
154 optional double depth = 11 [(dccl.field) = {
158 units: { derived_dimensions: "length" }
163 optional double roll = 1 [(dccl.field) = {
167 units { derived_dimensions: "plane_angle" system: "angle::degree" }
169 optional double pitch = 2 [(dccl.field) = {
173 units { derived_dimensions: "plane_angle" system: "angle::degree" }
175 optional double heading = 3 [(dccl.field) = {
179 units { derived_dimensions: "plane_angle" system: "angle::degree" }
181 optional double course_over_ground = 4 [(dccl.field) = {
185 units { derived_dimensions: "plane_angle" system: "angle::degree" }
188 optional Attitude attitude = 20;
192 optional double over_ground = 1 [(dccl.field) = {
196 units { derived_dimensions: "velocity" }
198 optional double over_water = 2 [(dccl.field) = {
202 units { derived_dimensions: "velocity" }
205 optional Speed speed = 30;
207 optional MissionState mission_state = 40;
209 // bounds should match MissionPlan.goal max_repeat value *
210 // expected_fragments max
211 optional int32 active_goal = 41 [(dccl.field) = { min: 0 max: 29 }];
212 optional double distance_to_active_goal = 42 [(dccl.field) = {
216 units: { derived_dimensions: "length" }
218 optional uint32 active_goal_timeout = 43 [(dccl.field) = {
222 units { base_dimensions: "T" }
224 optional int32 repeat_index = 44
225 [(dccl.field) = { min: 0 max: 1000 precision: 0 }];
227 optional double salinity = 51
228 [(dccl.field) = { min: 0 max: 100 precision: 1 }];
230 optional double temperature = 52 [(dccl.field) = {
234 units { derived_dimensions: "temperature" system: "celsius" }
237 optional double thermocouple_temperature = 53 [(dccl.field) = {
241 units { derived_dimensions: "temperature" system: "celsius" }
244 optional double vv_current = 54 [(dccl.field) = {
248 units { derived_dimensions: "current" }
251 optional double vcc_current = 55 [(dccl.field) = {
255 units { derived_dimensions: "current" }
258 optional double vcc_voltage = 56 [(dccl.field) = {
262 units { derived_dimensions: "electric_potential" system: "si" }
265 optional double battery_percent = 57
266 [(dccl.field) = { min: 0 max: 100 precision: 0 }];
268 optional int32 calibration_status = 58 [(dccl.field) = { min: 0 max: 3 }];
270 optional IMUCalibrationState calibration_state = 59;
272 optional double hdop = 60 [(dccl.field) = { min: 0 max: 100 precision: 2 }];
274 optional double pdop = 61 [(dccl.field) = { min: 0 max: 100 precision: 2 }];
276 optional int32 wifi_link_quality_percentage = 62
277 [(dccl.field) = { min: 0 max: 100 precision: 0 }];
282 option (dccl.msg) = {
286 optional int32 drift_duration = 1 [
292 units { base_dimensions: "T" }
296 message EstimatedDrift
298 required double speed = 1 [(dccl.field) = {
302 units { derived_dimensions: "velocity" }
305 optional double heading = 3 [(dccl.field) = {
309 units { derived_dimensions: "plane_angle" system: "angle::degree" }
313 // should correspond to ocean current velocity
314 optional EstimatedDrift estimated_drift = 10;
317 optional GeographicCoordinate start_location = 11;
319 optional GeographicCoordinate end_location = 12;
321 // Significant wave height is defined as the average wave height,
322 // from trough to crest, of the highest one-third of the waves
323 optional double significant_wave_height = 13 [(dccl.field) = {
327 units: { derived_dimensions: "length" }
333 option (dccl.msg) = {
337 required double dive_rate = 10 [(dccl.field) = {
341 units { derived_dimensions: "velocity" }
344 optional double unpowered_rise_rate = 11 [(dccl.field) = {
348 units { derived_dimensions: "velocity" }
351 optional double powered_rise_rate = 12 [(dccl.field) = {
355 units { derived_dimensions: "velocity" }
358 required double depth_achieved = 13 [(dccl.field) = {
362 units: { derived_dimensions: "length" }
367 optional double mean_depth = 1 [(dccl.field) = {
371 units: { derived_dimensions: "length" }
374 optional double mean_temperature = 2 [(dccl.field) = {
378 units { derived_dimensions: "temperature" system: "celsius" }
381 optional double mean_salinity = 3
382 [(dccl.field) = { min: 0 max: 45 precision: 1 }];
385 repeated Measurements measurement = 14 [(dccl.field) = { max_repeat: 50 }];
388 optional GeographicCoordinate start_location = 15;
390 optional double duration_to_acquire_gps = 16 [(dccl.field) = {
394 units { base_dimensions: "T" }
397 // Did we reach seafloor?
398 optional bool bottom_dive = 17 [default = false];
400 // Did we reach min depth?
401 optional bool reached_min_depth = 18 [default = false];
403 // If we reached bottom, what was the bottom type
410 optional BottomType bottom_type = 19;
412 // For bottom characterization
413 optional double max_acceleration = 20 [(dccl.field) = {
417 units { derived_dimensions: "acceleration" }
424 Actual maximum size of message: 218 bytes / 1744 bits
425 dccl.id head..........................16
426 user head..............................0
427 body................................1728
428 padding to full byte...................0
429 Allowed maximum size of message: 250 bytes / 2000 bits
431 option (dccl.msg) = {
438 required uint32 bot_id = 1 [(dccl.field) = { min: 0 max: 255 }];
439 required uint64 start_time = 2 [(dccl.field) = {
441 units { prefix: "micro" derived_dimensions: "time" }
443 required uint64 end_time = 3 [(dccl.field) = {
445 units { prefix: "micro" derived_dimensions: "time" }
447 required MissionTask.TaskType type = 4;
449 optional DivePacket dive = 10;
450 optional DriftPacket drift = 11;