JaiaBot  1.19.0
JaiaBot micro-AUV software
config.proto
Go to the documentation of this file.
1 // Copyright 2021:
2 // JaiaRobotics LLC
3 // File authors:
4 // Toby Schneider <toby@gobysoft.org>
5 //
6 //
7 // This file is part of the JaiaBot Project Binaries
8 // ("The Jaia Binaries").
9 //
10 // The Jaia Binaries are free software: you can redistribute them and/or modify
11 // them under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 2 of the License, or
13 // (at your option) any later version.
14 //
15 // The Jaia Binaries are distributed in the hope that they will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU General Public License for more details.
19 //
20 // You should have received a copy of the GNU General Public License
21 // along with the Jaia Binaries. If not, see <http://www.gnu.org/licenses/>.
22 
23 syntax = "proto2";
24 
25 import "goby/middleware/protobuf/app_config.proto";
26 import "goby/zeromq/protobuf/interprocess_config.proto";
27 import "goby/middleware/protobuf/transporter_config.proto";
28 import "jaiabot/messages/xbee_extensions.proto";
29 import "goby/middleware/protobuf/udp_config.proto";
30 import "goby/middleware/protobuf/pty_config.proto";
31 import "goby/middleware/protobuf/serial_config.proto";
32 import "goby/middleware/protobuf/tcp_config.proto";
33 import "jaiabot/messages/link.proto";
34 
35 package jaiabot.config;
36 
37 message HubManager
38 {
39  // required parameters for ApplicationBase3 class
40  optional goby.middleware.protobuf.AppConfig app = 1;
41  // required parameters for connecting to 'gobyd'
42  optional goby.zeromq.protobuf.InterProcessPortalConfig interprocess = 2;
43 
44  // use to pre-seed expected bots
45  message ExpectedBots
46  {
47  repeated int32 id = 1;
48  }
49  optional ExpectedBots expected_bots = 17;
50 
51  required goby.middleware.protobuf.TransporterConfig status_sub_cfg = 11;
52  required goby.middleware.protobuf.TransporterConfig task_packet_sub_cfg =
53  12;
54  required goby.middleware.protobuf.TransporterConfig
55  engineering_status_sub_cfg = 13;
56 
57  optional int32 hub_id = 14 [default = 0];
58  optional int32 fleet_id = 15 [default = 0];
59  optional int32 health_report_timeout_seconds = 16 [default = 20];
60 
61  message VirtualFleetData
62  {
63  // used by VirtualHub to shut down system after idle (no commands
64  // received) to avoid running up EC2 costs unexpectedly
65  required int32 shutdown_after_last_command_seconds = 1 [default = 3600];
66  // delay shutting down hub after this time since last BotStatus
67  // message
68  required int32 hub_shutdown_delay_seconds = 2 [default = 300];
69  }
70  optional VirtualFleetData vfleet = 20;
71 
72  // data offload
73  required string data_offload_script = 30;
74  optional string log_staging_dir = 31 [default = "/var/log/jaiabot/staging"];
75  optional string log_offload_dir = 32
76  [default = "/var/log/jaiabot/bot_offload"];
77  optional int32 bot_start_ip = 33 [default = 100];
78  optional string class_b_network = 34 [default = "10.23"];
79  optional bool use_localhost_for_data_offload = 35 [default = false];
80 
81  required string hub_gpsd_device = 40; // gpsd device for hub itself
82 
83  message ContactGPS
84  {
85  required string gpsd_device = 1;
86  required int32 contact = 2;
87  optional bool use_cog = 3 [default = false];
88  }
89  repeated ContactGPS contact_gps =
90  41; // GPSD device feeds for contacts to
91  // send to vehicles (e.g., to trail, to avoid, etc.)
92 
93  message BotToGPS
94  {
95  optional int32 bot_id = 1;
96  oneof transport
97  {
98  goby.middleware.protobuf.UDPPointToPointConfig udp = 2;
99  goby.middleware.protobuf.PTYConfig pty = 3;
100  goby.middleware.protobuf.SerialConfig serial = 4;
101  goby.middleware.protobuf.TCPClientConfig tcp_client = 5;
102  goby.middleware.protobuf.TCPServerConfig tcp_server = 6;
103  }
104  }
105  repeated BotToGPS bot_to_gps = 42; // feed BotStatus as pseudo-GPS message
106  // over various transport options
107 
108  optional int32 contact_blackout_seconds = 43
109  [default = 2]; // don't send a contact update more often than this
110 
111 
112  required uint32 subnet_mask = 50;
113  repeated protobuf.Link link_to_subscribe_on = 51; // when subscribing to managed bots, use these links, otherwise wait for bots to subscribe first
114 }