Goby3  3.1.5a
2024.05.23
bluefin_config.proto
Go to the documentation of this file.
1 syntax = "proto2";
2 import "dccl/option_extensions.proto";
3 
4 import "goby/middleware/protobuf/frontseat_config.proto";
5 import "goby/protobuf/option_extensions.proto";
6 
7 package goby.middleware.frontseat.protobuf;
8 
9 message BluefinConfig
10 {
11  option (dccl.msg).unit_system = "si";
12 
13  required string huxley_tcp_address = 1;
14  optional uint32 huxley_tcp_port = 2 [default = 29500];
15  optional uint32 reconnect_interval = 3 [
16  default = 10,
17  (dccl.field).units.base_dimensions = "T",
18  (goby.field).description =
19  "How many seconds to wait between reconnects if the Huxley server "
20  "disconnects."
21  ];
22  optional uint32 nmea_resend_attempts = 4 [
23  default = 3,
24  (goby.field).description =
25  "Number of resend attempts for a given NMEA message"
26  ];
27  optional uint32 nmea_resend_interval = 5 [
28  default = 5,
29  (dccl.field).units.base_dimensions = "T",
30  (goby.field).description =
31  "How many seconds to wait between resend attempts"
32  ];
33  optional uint32 allowed_nmea_demerits = 6 [
34  default = 3,
35  (goby.field).description =
36  "Number of times Huxley can fail to acknowledge a NMEA message "
37  "before we close the connection."
38  ];
39  optional uint32 allow_missing_nav_interval = 7 [
40  default = 5,
41  (dccl.field).units.base_dimensions = "T",
42  (goby.field).description =
43  "How many seconds to allow without $BFNVG before declaring "
44  "frontseat not providing us data."
45  ];
46  optional uint32 heartbeat_interval = 8 [
47  default = 1,
48  (dccl.field).units.base_dimensions = "T",
49  (goby.field).description =
50  "How many seconds between heartbeats (BPSTS)."
51  ];
52 
53  repeated string extra_bplog = 9
54  [(goby.field).description =
55  "Additional Bluefin messages to enable logging for (e.g. for to "
56  "send '$BPLOG,CMA,ON', set this field to 'CMA'"];
57 
58  optional bool send_tmr_messages = 10 [
59  default = true,
60  (goby.field).description =
61  "Send the BPTMR message with acoustic comms contents."
62  ];
63 
64  optional bool disable_ack = 11 [
65  default = false,
66  (goby.field).description =
67  "(Advanced) if true, do not use the BFACK message. Set to true for "
68  "vehicles without the BFACK support. Note that if this field is "
69  "set, IFS_COMMAND_RESPONSE messages will not be posted."
70  ];
71 
72  enum AcceptingCommandsHook
73  {
74  BFMSC_TRIGGER = 0;
75  BFMIS_RUNNING_TRIGGER = 1;
76  BFCTL_TRIGGER = 2;
77  }
78 
79  optional AcceptingCommandsHook accepting_commands_hook = 12 [
80  default = BFMSC_TRIGGER,
81  (goby.field).description =
82  "How this driver determines if the Bluefin Huxley is accepting "
83  "commands. BFMSC_TRIGGER means the $BFMSC message receipt "
84  "indicates that Huxley is receiving our commands. "
85  "BFMIS_RUNNING_TRIGGER indicates that any $BFMIS (start of "
86  "mission) that contains the word 'Running' indicates that Huxley "
87  "is receiving our commands."
88  ];
89 
90  optional bool use_rpm_table_for_speed = 20 [
91  default = false,
92  (goby.field).description =
93  "If true, use a direct linear mapping from speed to RPM as defined "
94  "by the 'rpm_table' entries, rather than commanding a desired "
95  "speed"
96  ];
97  message RPMSpeedEntry
98  {
99  required double speed = 1
100  [(dccl.field).units = {derived_dimensions: "velocity"}];
101  required int32 rpm = 2;
102  }
103  repeated RPMSpeedEntry rpm_table = 21;
104 }
105 
106 extend Config
107 {
108  optional BluefinConfig bluefin_config = 1000;
109 }