Goby v2
two_message.proto
1 
2 import "dccl/option_extensions.proto";
3 message GoToCommand
4 {
5  option (dccl.msg).id = 125;
6  option (dccl.msg).max_bytes = 32;
7  required int32 destination = 1 [
8  (dccl.field).max = 31,
9  (dccl.field).min = 0,
10  (dccl.field).precision = 0
11  ];
12  optional string type = 2
13  [(dccl.field).static_value = "goto", (dccl.field).codec = "_static"];
14  required int32 goto_x = 3 [
15  (dccl.field).max = 10000,
16  (dccl.field).min = 0,
17  (dccl.field).precision = 0
18  ];
19  required int32 goto_y = 4 [
20  (dccl.field).max = 10000,
21  (dccl.field).min = 0,
22  (dccl.field).precision = 0
23  ];
24  required bool lights_on = 5;
25  required string new_instructions = 6 [(dccl.field).max_length = 10];
26  required double goto_speed = 7 [
27  (dccl.field).max = 3,
28  (dccl.field).min = 0,
29  (dccl.field).precision = 2
30  ];
31 }
32 
33 message VehicleStatus
34 {
35  option (dccl.msg).id = 126;
36  option (dccl.msg).max_bytes = 32;
37  required double nav_x = 1 [
38  (dccl.field).max = 10000,
39  (dccl.field).min = 0,
40  (dccl.field).precision = 1
41  ];
42  required double nav_y = 2 [
43  (dccl.field).max = 10000,
44  (dccl.field).min = 0,
45  (dccl.field).precision = 1
46  ];
47  required HealthEnum health = 3;
48  enum HealthEnum
49  {
50  HEALTH_GOOD = 0;
51  HEALTH_LOW_BATTERY = 1;
52  HEALTH_ABORT = 2;
53  }
54 }