Goby v2
pAcommsHandler_config.proto
1 
2 import "goby/moos/protobuf/goby_moos_app.proto";
3 import "goby/acomms/protobuf/driver_base.proto";
4 import "goby/acomms/protobuf/queue.proto";
5 import "goby/acomms/protobuf/amac_config.proto";
6 import "goby/acomms/protobuf/dccl.proto";
7 import "goby/acomms/protobuf/route.proto";
8 import "goby/acomms/protobuf/modem_message.proto";
9 import "goby/moos/protobuf/transitional.proto";
10 import "goby/moos/protobuf/translator.proto";
11 import "goby/common/protobuf/option_extensions.proto";
12 
13 message pAcommsHandlerConfig
14 {
15  optional GobyMOOSAppConfig common = 1 [
16  (goby.field).description =
17  "Configuration common to all Goby MOOS applications"
18  ]; // see goby_moos_app.proto
19 
20  // unique identifying integer (1-31) for this vehicle's modem
21  // setting this will set the modem_id for all the components of goby-acomms
22  required int32 modem_id = 2 [
23  (goby.field).description = "Unique number 1-31 to identify this node",
24  (goby.field).example = "1"
25  ];
26 
27  optional goby.acomms.protobuf.DriverType driver_type = 3 [
28  default = DRIVER_NONE,
29  (goby.field).description =
30  "Corresponding primary driver for the type of physical acoustic "
31  "modem "
32  "used (used for sending and receiving)"
33  ];
34  optional goby.acomms.protobuf.DriverConfig driver_cfg = 4 [
35  (goby.field).description =
36  "Configure the primary acoustic modem driver (used for sending and "
37  "receiving)"
38  ];
39 
40  repeated goby.acomms.protobuf.DriverType listen_driver_type = 30
41  [(goby.field).description =
42  "Optionally, add one or more additional drivers for listening "
43  "(receiving) only."];
44  repeated goby.acomms.protobuf.DriverConfig listen_driver_cfg = 31
45  [(goby.field).description =
46  "Configuration for the additional drivers."];
47 
48  message DriverFailureApproach
49  {
50  enum DriverFailureTechnique
51  {
52  CONTINUALLY_RESTART_DRIVER = 1;
53  MOVE_LISTEN_DRIVER_TO_PRIMARY = 2;
54  DISABLE_AND_MOVE_LISTEN_DRIVER_TO_PRIMARY = 3;
55  }
56  optional DriverFailureTechnique technique = 1
57  [default = CONTINUALLY_RESTART_DRIVER];
58  optional int32 driver_backoff_sec = 2 [
59  (goby.field).description =
60  "Seconds to wait until restarting a failed driver.",
61  default = 60
62  ];
63  }
64  optional DriverFailureApproach driver_failure_approach = 32
65  [(goby.field).description = "How to try to deal with a failed driver"];
66 
67  // amac
68  optional goby.acomms.protobuf.MACConfig mac_cfg = 5
69  [(goby.field).description =
70  "Configure the acoustic Medium Access Control"];
71 
72  // for queue
73  optional goby.acomms.protobuf.QueueManagerConfig queue_cfg = 6
74  [(goby.field).description = "Configure the Priority Queuing layer"];
75 
76  // for dccl
77  optional goby.acomms.protobuf.DCCLConfig dccl_cfg = 7
78  [(goby.field).description =
79  "Configure the Dynamic Compact Control Language Encoding/Decoding "
80  "unit"];
81 
82  optional goby.acomms.protobuf.RouteManagerConfig route_cfg = 8
83  [(goby.field).description = "Configure the Goby Routing unit"];
84 
85  message MOOSVariables
86  {
87  optional string prefix = 1 [
88  default = "ACOMMS_",
89  (goby.field).description =
90  "Prefix all MOOS variable names with this string"
91  ];
92 
93  // serial feed
94  optional string driver_raw_in = 10 [default = "NMEA_IN"];
95  optional string driver_raw_out = 11 [default = "NMEA_OUT"];
96 
97  optional string driver_raw_msg_in = 12 [default = "RAW_INCOMING"];
98  optional string driver_raw_msg_out = 13 [default = "RAW_OUTGOING"];
99 
100  optional string driver_receive = 14 [default = "MODEM_RECEIVE"];
101  optional string driver_transmit = 15 [default = "MODEM_TRANSMIT"];
102 
103  optional string driver_cfg_update = 16
104  [default = "DRIVER_CONFIG_UPDATE"];
105 
106  optional string queue_receive = 100 [default = "QUEUE_RECEIVE"];
107  optional string queue_transmit = 101 [default = "QUEUE_TRANSMIT"];
108  // acoustic acknowledgments get written here
109  optional string queue_ack_transmission = 102 [default = "ACK"];
110  optional string queue_ack_original_msg = 103 [default = "ACK_ORIGINAL"];
111  // expired messages (ttl ends)
112  optional string queue_expire = 104 [default = "EXPIRE"];
113  optional string queue_size = 105 [default = "QSIZE"];
114  optional string queue_flush = 106 [default = "FLUSH_QUEUE"];
115 
116  optional string mac_cycle_update = 200 [default = "MAC_CYCLE_UPDATE"];
117  optional string mac_initiate_transmission = 201
118  [default = "MAC_INITIATE_TRANSMISSION"];
119  optional string mac_slot_start = 202 [default = "MAC_SLOT_START"];
120 
121  optional string config_file = 300 [default = "CONFIG"];
122  optional string config_file_request = 301 [default = "CONFIG_REQUEST"];
123 
124  optional string driver_reset = 400 [default = "DRIVER_RESET"];
125 
126  optional string ifrontseat_data_out = 500 [default = "IFS_DATA_OUT"];
127  }
128  optional MOOSVariables moos_var = 10;
129 
130  repeated string load_shared_library = 20 [
131  (goby.field).description =
132  "Path to a shared library containing compiled DCCL protobuf files. "
133  "Preferred over load_dccl_proto_file.",
134  (goby.field).example = "/usr/lib/libmy_dccl_messages.so"
135  ];
136 
137  repeated string load_proto_file = 21 [
138  (goby.field).description =
139  "Path to a DCCL protobuf file. Use load_shared_library when "
140  "possible.",
141  (goby.field).example = "/usr/include/mylib/message.proto"
142  ];
143 
144  repeated goby.moos.protobuf.TranslatorEntry translator_entry = 22
145  [(goby.field).description =
146  "Describes how to trigger (generate) a DCCL message from a MOOS "
147  "event and how to publish the contents of the message upon "
148  "receipt"];
149 
150  repeated string multiplex_create_moos_var = 23 [
151  (goby.field).description =
152  "Used primarily by goby_liaison. Specify a MOOS variable that "
153  "contains "
154  "one of many TECHNIQUE_PREFIXED_PROTOBUF_TEXT_FORMAT encoded "
155  "protobuf "
156  "messages. Upon receipt of a message, the `create` directives for "
157  "this "
158  "type are *published* (inverse of normal behavior), which triggers "
159  "the "
160  "creation of the message (if `trigger` is set to one of the "
161  "`create` "
162  "MOOS variables).",
163  (goby.field).example = "LIAISON_COMMANDER_OUT"
164  ];
165 
166  repeated string dccl_frontseat_forward_name = 24
167  [(goby.field).description =
168  "Full name of DCCL Protobuf message to foward to iFrontSeat"];
169 
170  // path to text file with entries:
171  // modem_id,name,type
172  // for example
173  // 3,unicorn,auv
174  optional string modem_id_lookup_path = 101 [
175  (goby.field).description =
176  "Path to file containing mapping between modem_id and vehicle name "
177  "& "
178  "type",
179  (goby.field).moos_global = "modem_id_lookup_path"
180  ];
181 
182  optional goby.transitional.protobuf.DCCLTransitionalConfig
183  transitional_cfg = 200 [
184  (goby.field).description =
185  "Backwards compatibility for DCCLv1 XML file"
186  ]; // see transitional.proto
187 }