Goby3  3.1.5
2024.05.14
benthos_atm900.proto
Go to the documentation of this file.
1 syntax = "proto2";
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";
6 
7 package goby.acomms.benthos.protobuf;
8 
9 message 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
40 extend goby.acomms.protobuf.DriverConfig
41 {
42  optional Config config = 1441;
43 }
44 
45 // subset of goby.acomms.protobuf.ModemTransmission
46 message 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 
62 enum 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 
69 message 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 
89 message RangingReply
90 {
91  required double one_way_travel_time = 1
92  [(dccl.field).units.unit = "si::second"];
93 }
94 
95 message 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 
106 extend goby.acomms.protobuf.ModemTransmission
107 {
108  optional Transmission transmission = 1401;
109 }