Goby3  3.1.5
2024.05.14
driver_base.proto
Go to the documentation of this file.
1 syntax = "proto2";
2 import "goby/protobuf/option_extensions.proto";
3 
4 package goby.acomms.protobuf;
5 
6 // known drivers - should make this somehow extensible outside Goby
7 enum DriverType
8 {
9  DRIVER_NONE = 1;
10  DRIVER_WHOI_MICROMODEM = 2;
11  DRIVER_ABC_EXAMPLE_MODEM = 3;
12  DRIVER_UFIELD_SIM_DRIVER = 4;
13  DRIVER_STORE_SERVER = 5;
14  DRIVER_UDP = 6;
15  DRIVER_BLUEFIN_MOOS = 7;
16  DRIVER_IRIDIUM = 8;
17  DRIVER_IRIDIUM_SHORE = 9;
18  DRIVER_BENTHOS_ATM900 = 10;
19  DRIVER_UDP_MULTICAST = 11;
20  DRIVER_POPOTO = 12;
21 }
22 
23 
24 message DriverConfig
25 {
26  oneof driver
27  {
28  goby.acomms.protobuf.DriverType driver_type = 1 [
29  default = DRIVER_NONE,
30  (goby.field).description =
31  "Driver for the type of physical link used"
32  ];
33  string driver_name = 2 [(goby.field).description =
34  "Driver name to load from plugin library"];
35  }
36 
37  optional int32 modem_id = 10 [
38  (goby.field).description = "Unique number 1-31 to identify this node",
39  (goby.field).example = "1"
40  ];
41 
42  enum ConnectionType
43  {
44  CONNECTION_SERIAL =
45  1; // Modem is connected by a tty serial line (e.g. RS-232)
46  CONNECTION_TCP_AS_CLIENT =
47  2; // Modem is connected by ethernet and is serving clients
48  CONNECTION_TCP_AS_SERVER =
49  3; // Modem is connected by ethernet and expects us to serve it
50  }
51 
52  optional ConnectionType connection_type = 20 [
53  default = CONNECTION_SERIAL,
54  (goby.field).description =
55  "Physical connection type from this computer (running Goby) to the "
56  "acoustic modem"
57  ];
58  optional string line_delimiter = 21 [
59  default = "\r\n",
60  (goby.field).description =
61  "String used to delimit new lines for this acoustic modem"
62  ]; // delimits lines on the serial or tcp interface
63 
64  // required if connection_type == CONNECTION_SERIAL
65  optional string serial_port = 22 [
66  (goby.field).description = "Serial port for CONNECTION_SERIAL",
67  (goby.field).example = "/dev/ttyS0"
68  ];
69  optional uint32 serial_baud = 23 [
70  (goby.field).description = "Baud rate for CONNECTION_SERIAL",
71  (goby.field).example = "19200"
72  ];
73 
74  // required if connection_type == CONNECTION_TCP_AS_CLIENT
75  optional string tcp_server = 24 [
76  (goby.field).description =
77  "IP Address or domain name for the server if "
78  "CONNECTION_TCP_AS_CLIENT",
79  (goby.field).example = "192.168.1.111"
80  ];
81 
82  // required if connection_type == CONNECTION_TCP_AS_CLIENT or
83  // CONNECTION_TCP_AS_SERVER
84  optional uint32 tcp_port = 25 [
85  (goby.field).description =
86  "Port to serve on (for CONNECTION_TCP_AS_SERVER) or to connect to "
87  "(for CONNECTION_TCP_AS_CLIENT)",
88  (goby.field).example = "50010"
89  ];
90 
91  optional uint32 reconnect_interval = 26 [
92  (goby.field).description = "Seconds between TCP reconnect attempts",
93  default = 10
94  ];
95 
96  optional string raw_log = 30
97  [(goby.field).description =
98  "File to write raw modem log to. If %1% is present, is replaced "
99  "with the current timestamp."];
100 
101  extensions 1000 to max;
102  // extension 1000 used by acomms_mm_driver.proto
103  // extension 1201 used by acomms_abc_driver.proto (example driver)
104  // extension 1300 used by ufield_sim_driver.proto
105  // extension 1321 used by store_server_driver.proto
106  // extension 1341 used by udp_driver.proto
107  // extension 1342 used by udp_multicast_driver.proto
108  // extension 1343 used by pluggable udp_multicast_driver (in goby3-examples)
109  // extension 1361 used by bluefin_sim_driver.proto
110  // extension 1381 used by iridium_driver.proto
111  // extensions 1401-1420 used by MOOSSafir (external)
112  // extension 1421 used by iridium_shore_driver.proto
113  // extension 1441 used by benthos_atm900.proto
114  // extension 1442 used by popoto.proto
115  // extension 1443 used by Jaiabot XBee
116  // extensions 1510-1519 used by Blue Ocean Seismic Services
117 }