2 import "goby/protobuf/option_extensions.proto";
3 import "goby/acomms/protobuf/driver_base.proto";
4 import "goby/acomms/protobuf/modem_message.proto";
5 import "dccl/option_extensions.proto";
7 package goby.acomms.benthos.protobuf;
11 optional bool factory_reset = 1 [
13 (goby.field).description =
14 "Reset modem to factory defaults prior to applying "
15 "configuration values specified in 'config' (i.e. load values "
16 "from ffs/factcfg.ini)"
18 optional string config_load = 2
19 [(goby.field).description =
20 "Path to config file to load on the modem, e.g. "
21 "'ffs/standard.ini'"];
22 repeated string config = 3
23 [(goby.field).description =
24 "Strings of configuration values to set in CLAM format, for "
25 "example \"@AcRspTmOut=10.0\""];
26 optional int32 start_timeout = 5 [
28 (goby.field).description =
29 "Number of seconds to initialize the modem before giving up"
31 optional uint32 max_frame_size = 6 [
33 (goby.field).description =
34 "Enforce maximum packet size for all rates (also used if "
35 "max_frame_bytes not set in ModemTransmission)"
40 extend goby.acomms.protobuf.DriverConfig
42 optional Config config = 1441;
45 // subset of goby.acomms.protobuf.ModemTransmission
48 option (dccl.msg).id = 0;
49 option (dccl.msg).max_bytes = 5;
50 option (dccl.msg).codec_version = 3;
52 required goby.acomms.protobuf.ModemTransmission.TransmissionType type = 1;
54 optional bool ack_requested = 3;
55 repeated int32 acked_frame = 4 [
57 (dccl.field).max = 0x7,
58 (dccl.field).max_repeat = 8
65 BENTHOS_TWO_WAY_PING = 1; // modem 1 interrogates modem 2; modem 2 replies
66 // and modem 1 computes one way travel time
69 message ReceiveStatistics
71 option (dccl.msg).unit_system = "si";
79 required CRCState crc = 1;
80 optional float multipath_delay = 2
81 [(dccl.field).units.base_dimensions = "T"];
82 optional float snr = 3;
83 optional float relative_speed = 4
84 [(dccl.field).units.base_dimensions = "LT^-1"];
85 optional float auto_gain_control = 5;
86 optional int32 corrected_channel_error = 6;
91 required double one_way_travel_time = 1
92 [(dccl.field).units.unit = "si::second"];
97 optional TransmissionType type = 1 [
98 (goby.field).description =
99 "Type of transmission if base `type` == DRIVER_SPECIFIC",
102 optional ReceiveStatistics receive_stat = 2;
103 optional RangingReply ranging_reply = 3;
106 extend goby.acomms.protobuf.ModemTransmission
108 optional Transmission transmission = 1401;