2 import "dccl/option_extensions.proto";
4 import "goby/middleware/protobuf/frontseat_config.proto";
5 import "goby/protobuf/option_extensions.proto";
7 package goby.middleware.frontseat.protobuf;
11 option (dccl.msg).unit_system = "si";
13 required string huxley_tcp_address = 1;
14 optional uint32 huxley_tcp_port = 2 [default = 29500];
15 optional uint32 reconnect_interval = 3 [
17 (dccl.field).units.base_dimensions = "T",
18 (goby.field).description =
19 "How many seconds to wait between reconnects if the Huxley server "
22 optional uint32 nmea_resend_attempts = 4 [
24 (goby.field).description =
25 "Number of resend attempts for a given NMEA message"
27 optional uint32 nmea_resend_interval = 5 [
29 (dccl.field).units.base_dimensions = "T",
30 (goby.field).description =
31 "How many seconds to wait between resend attempts"
33 optional uint32 allowed_nmea_demerits = 6 [
35 (goby.field).description =
36 "Number of times Huxley can fail to acknowledge a NMEA message "
37 "before we close the connection."
39 optional uint32 allow_missing_nav_interval = 7 [
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."
46 optional uint32 heartbeat_interval = 8 [
48 (dccl.field).units.base_dimensions = "T",
49 (goby.field).description =
50 "How many seconds between heartbeats (BPSTS)."
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'"];
58 optional bool send_tmr_messages = 10 [
60 (goby.field).description =
61 "Send the BPTMR message with acoustic comms contents."
64 optional bool disable_ack = 11 [
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."
72 enum AcceptingCommandsHook
75 BFMIS_RUNNING_TRIGGER = 1;
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."
90 optional bool use_rpm_table_for_speed = 20 [
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 "
99 required double speed = 1
100 [(dccl.field).units = {derived_dimensions: "velocity"}];
101 required int32 rpm = 2;
103 repeated RPMSpeedEntry rpm_table = 21;
108 optional BluefinConfig bluefin_config = 1000;