DCCL v3
auv_status.proto
1 
2 import "dccl/option_extensions.proto";
3 
4 message AUVStatus {
5  option (dccl.msg) = { id: 122
6  max_bytes: 32
7  codec_version: 3 };
8 
9  // Header
10  required double timestamp = 1 [(dccl.field) = { codec: "_time" in_head: true }];
11  required int32 source = 2 [(dccl.field) = { min: 0 max: 31 in_head: true }];
12  required int32 destination = 3 [(dccl.field) = { min: 0 max: 31 in_head: true }];
13 
14  // Body
15  required double x = 4 [(dccl.field) = { units { system: "si" base_dimensions: "L" }
16  min: -10000 max: 10000 precision: 1 }];
17  required double y = 5 [(dccl.field) = { units { system: "si" base_dimensions: "L" }
18  min: -10000 max: 10000 precision: 1 }];
19 
20  required double speed = 6 [(dccl.field) = { units { system: "si" base_dimensions: "LT^-1" }
21  min: 0
22  max: 20.0,
23  precision: 1 }];
24  required double heading = 7 [(dccl.field) = { units { system: "angle::degree" derived_dimensions: "plane_angle" }
25  min: 0
26  max: 360.0,
27  precision: 1 }];
28 
29  optional double depth = 8 [(dccl.field) = { units { system: "si" base_dimensions: "L" }
30  min: 0 max: 6500 precision: 0 }];
31  optional double altitude = 9 [(dccl.field) = { units { system: "si" base_dimensions: "L" }
32  min: 0 max: 500 precision: 1 }];
33  optional double pitch = 10 [(dccl.field) = { units { system: "angle::radian" derived_dimensions: "plane_angle" }
34  min: -1.57 max: 1.57 precision: 2 }];
35  optional double roll = 11 [(dccl.field) = { units { system: "angle::radian" derived_dimensions: "plane_angle" }
36  min: -1.57 max: 1.57 precision: 2 }];
37  optional MissionState mission_state = 12;
38  enum MissionState { IDLE = 0;
39  SEARCH = 1;
40  CLASSIFY = 2;
41  WAYPOINT = 3; }
42 
43  optional DepthMode depth_mode = 13;
44  enum DepthMode { DEPTH_SINGLE = 0;
45  DEPTH_YOYO = 1;
46  DEPTH_BOTTOM_FOLLOWING = 2; }
47 }