Goby3 3.3.0
2025.07.10
Loading...
Searching...
No Matches
driver_base.proto
Go to the documentation of this file.
1syntax = "proto2";
2import "goby/protobuf/option_extensions.proto";
3
4package goby.acomms.protobuf;
5
6// known drivers - should make this somehow extensible outside Goby
7enum 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 DRIVER_JANUS = 13;
22}
23
24message 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 optional bool ipv6 = 31 [
102 (goby.field).description =
103 "If true, support IPv6 addresses for CONNECTION_TCP_AS_SERVER",
104 default = false
105 ];
106
107 extensions 1000 to max;
108 // extension 1000 used by acomms_mm_driver.proto
109 // extension 1201 used by acomms_abc_driver.proto (example driver)
110 // extension 1300 used by ufield_sim_driver.proto
111 // extension 1321 used by store_server_driver.proto
112 // extension 1341 used by udp_driver.proto
113 // extension 1342 used by udp_multicast_driver.proto
114 // extension 1343 used by pluggable udp_multicast_driver (in goby3-examples)
115 // extension 1361 used by bluefin_sim_driver.proto
116 // extension 1381 used by iridium_driver.proto
117 // extensions 1401-1420 used by MOOSSafir (external)
118 // extension 1421 used by iridium_shore_driver.proto
119 // extension 1441 used by benthos_atm900.proto
120 // extension 1442 used by popoto.proto
121 // extension 1443 used by Jaiabot XBee
122 // extensions 1510-1519 used by Blue Ocean Seismic Services
123}