Goby v2
amac.proto
1 
2 import "goby/common/protobuf/option_extensions.proto";
3 import "dccl/option_extensions.proto";
4 import "goby/acomms/protobuf/modem_message.proto";
5 
6 package goby.acomms.protobuf;
7 
8 message MACUpdate
9 {
10  option (dccl.msg).id = 5;
11  option (dccl.msg).max_bytes = 64;
12 
13  enum UpdateType // this are basically the std::list functions
14  {
15  NO_CHANGE = 0;
16  ASSIGN = 1;
17  PUSH_BACK = 2;
18  PUSH_FRONT = 3;
19  POP_BACK = 4;
20  POP_FRONT = 5;
21  INSERT = 6;
22  ERASE = 7;
23  CLEAR = 8;
24  }
25 
26  required int32 src = 1 [
27  (dccl.field).min = 1,
28  (dccl.field).max = 30,
29  (dccl.field).in_head = true
30  ];
31  required int32 dest = 2 [
32  (dccl.field).min = 1,
33  (dccl.field).max = 30,
34  (dccl.field).in_head = true
35  ]; // modem_id that this update is for
36  optional UpdateType update_type = 3 [default = NO_CHANGE];
37  repeated ModemTransmission slot = 4 [(dccl.field).max_repeat = 10];
38  optional int32 first_iterator = 5 [
39  (dccl.field).min = 0,
40  (dccl.field).max = 60,
41  default = 0
42  ]; // integer offset from begin()
43  optional int32 second_iterator = 6 [
44  (dccl.field).min = -1,
45  (dccl.field).max = 60,
46  default = -1
47  ]; // integer offset from begin()
48 
49  enum CycleState
50  {
51  STOPPED = 1;
52  STARTED = 2;
53  }
54  optional CycleState cycle_state = 7
55  [default = STARTED, (dccl.field).in_head = true];
56 }