Goby3 3.2.3
2025.05.13
Loading...
Searching...
No Matches
benthos_atm900.proto
Go to the documentation of this file.
1syntax = "proto2";
2import "goby/protobuf/option_extensions.proto";
3import "goby/acomms/protobuf/driver_base.proto";
4import "goby/acomms/protobuf/modem_message.proto";
5import "dccl/option_extensions.proto";
6
7package goby.acomms.benthos.protobuf;
8
9message Config
10{
11 optional bool factory_reset = 1 [
12 default = false,
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)"
17 ];
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 [
27 default = 20,
28 (goby.field).description =
29 "Number of seconds to initialize the modem before giving up"
30 ];
31 optional uint32 max_frame_size = 6 [
32 default = 64,
33 (goby.field).description =
34 "Enforce maximum packet size for all rates (also used if "
35 "max_frame_bytes not set in ModemTransmission)"
36 ];
37}
38
39// 1441
40extend goby.acomms.protobuf.DriverConfig
41{
42 optional Config config = 1441;
43}
44
45// subset of goby.acomms.protobuf.ModemTransmission
46message BenthosHeader
47{
48 option (dccl.msg).id = 0;
49 option (dccl.msg).max_bytes = 5;
50 option (dccl.msg).codec_version = 3;
51
52 required goby.acomms.protobuf.ModemTransmission.TransmissionType type = 1;
53
54 optional bool ack_requested = 3;
55 repeated int32 acked_frame = 4 [
56 (dccl.field).min = 0,
57 (dccl.field).max = 0x7,
58 (dccl.field).max_repeat = 8
59 ];
60}
61
62enum TransmissionType
63{
64 BASE_TYPE = 0;
65 BENTHOS_TWO_WAY_PING = 1; // modem 1 interrogates modem 2; modem 2 replies
66 // and modem 1 computes one way travel time
67}
68
69message ReceiveStatistics
70{
71 option (dccl.msg).unit_system = "si";
72
73 enum CRCState
74 {
75 CRC_PASS = 1;
76 CRC_FAIL = 2;
77 }
78
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;
87}
88
89message RangingReply
90{
91 required double one_way_travel_time = 1
92 [(dccl.field).units.unit = "si::second"];
93}
94
95message Transmission
96{
97 optional TransmissionType type = 1 [
98 (goby.field).description =
99 "Type of transmission if base `type` == DRIVER_SPECIFIC",
100 default = BASE_TYPE
101 ];
102 optional ReceiveStatistics receive_stat = 2;
103 optional RangingReply ranging_reply = 3;
104}
105
106extend goby.acomms.protobuf.ModemTransmission
107{
108 optional Transmission transmission = 1401;
109}