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";
13 message pAcommsHandlerConfig
15 optional GobyMOOSAppConfig common = 1 [
16 (goby.field).description =
17 "Configuration common to all Goby MOOS applications"
18 ]; // see goby_moos_app.proto
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"
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 "
32 "used (used for sending and receiving)"
34 optional goby.acomms.protobuf.DriverConfig driver_cfg = 4 [
35 (goby.field).description =
36 "Configure the primary acoustic modem driver (used for sending and "
40 repeated goby.acomms.protobuf.DriverType listen_driver_type = 30
41 [(goby.field).description =
42 "Optionally, add one or more additional drivers for listening "
44 repeated goby.acomms.protobuf.DriverConfig listen_driver_cfg = 31
45 [(goby.field).description =
46 "Configuration for the additional drivers."];
48 message DriverFailureApproach
50 enum DriverFailureTechnique
52 CONTINUALLY_RESTART_DRIVER = 1;
53 MOVE_LISTEN_DRIVER_TO_PRIMARY = 2;
54 DISABLE_AND_MOVE_LISTEN_DRIVER_TO_PRIMARY = 3;
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.",
64 optional DriverFailureApproach driver_failure_approach = 32
65 [(goby.field).description = "How to try to deal with a failed driver"];
68 optional goby.acomms.protobuf.MACConfig mac_cfg = 5
69 [(goby.field).description =
70 "Configure the acoustic Medium Access Control"];
73 optional goby.acomms.protobuf.QueueManagerConfig queue_cfg = 6
74 [(goby.field).description = "Configure the Priority Queuing layer"];
77 optional goby.acomms.protobuf.DCCLConfig dccl_cfg = 7
78 [(goby.field).description =
79 "Configure the Dynamic Compact Control Language Encoding/Decoding "
82 optional goby.acomms.protobuf.RouteManagerConfig route_cfg = 8
83 [(goby.field).description = "Configure the Goby Routing unit"];
87 optional string prefix = 1 [
89 (goby.field).description =
90 "Prefix all MOOS variable names with this string"
94 optional string driver_raw_in = 10 [default = "NMEA_IN"];
95 optional string driver_raw_out = 11 [default = "NMEA_OUT"];
97 optional string driver_raw_msg_in = 12 [default = "RAW_INCOMING"];
98 optional string driver_raw_msg_out = 13 [default = "RAW_OUTGOING"];
100 optional string driver_receive = 14 [default = "MODEM_RECEIVE"];
101 optional string driver_transmit = 15 [default = "MODEM_TRANSMIT"];
103 optional string driver_cfg_update = 16
104 [default = "DRIVER_CONFIG_UPDATE"];
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"];
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"];
121 optional string config_file = 300 [default = "CONFIG"];
122 optional string config_file_request = 301 [default = "CONFIG_REQUEST"];
124 optional string driver_reset = 400 [default = "DRIVER_RESET"];
126 optional string ifrontseat_data_out = 500 [default = "IFS_DATA_OUT"];
128 optional MOOSVariables moos_var = 10;
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"
137 repeated string load_proto_file = 21 [
138 (goby.field).description =
139 "Path to a DCCL protobuf file. Use load_shared_library when "
141 (goby.field).example = "/usr/include/mylib/message.proto"
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 "
150 repeated string multiplex_create_moos_var = 23 [
151 (goby.field).description =
152 "Used primarily by goby_liaison. Specify a MOOS variable that "
154 "one of many TECHNIQUE_PREFIXED_PROTOBUF_TEXT_FORMAT encoded "
156 "messages. Upon receipt of a message, the `create` directives for "
158 "type are *published* (inverse of normal behavior), which triggers "
160 "creation of the message (if `trigger` is set to one of the "
163 (goby.field).example = "LIAISON_COMMANDER_OUT"
166 repeated string dccl_frontseat_forward_name = 24
167 [(goby.field).description =
168 "Full name of DCCL Protobuf message to foward to iFrontSeat"];
170 // path to text file with entries:
171 // modem_id,name,type
174 optional string modem_id_lookup_path = 101 [
175 (goby.field).description =
176 "Path to file containing mapping between modem_id and vehicle name "
179 (goby.field).moos_global = "modem_id_lookup_path"
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