Goby v2
iridium_driver.proto
1 
2 import "goby/common/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 message IridiumDriverConfig
8 {
9  message Remote
10  {
11  required string iridium_number = 1;
12  required int32 modem_id = 2;
13  }
14 
15  extend goby.acomms.protobuf.DriverConfig
16  {
17  optional Remote remote = 1381;
18  optional uint32 max_frame_size = 1382 [default = 1500];
19  optional int32 target_bit_rate = 1383 [default = 2400];
20  repeated string config = 1384;
21  optional int32 dial_attempts = 1385 [default = 3];
22  optional int32 debug_client_port = 1386;
23 
24  optional int32 hangup_seconds_after_empty = 1388 [default = 30];
25  optional int32 start_timeout = 1389 [default = 20];
26  optional bool use_dtr = 1390 [default = false];
27  optional int32 handshake_hangup_seconds = 1392 [default = 5];
28  }
29 
30  extend goby.acomms.protobuf.ModemTransmission
31  {
32  optional bool if_no_data_do_mailbox_check = 1381 [default = true];
33  }
34 }
35 
36 // subset of goby.acomms.protobuf.ModemTransmission
37 message IridiumHeader
38 {
39  option (dccl.msg).id = 0;
40  option (dccl.msg).max_bytes = 7;
41 
42  required int32 src = 1 [(dccl.field).min = 0, (dccl.field).max = 30];
43 
44  required int32 dest = 2 [(dccl.field).min = 0, (dccl.field).max = 30];
45 
46  optional int32 rate = 3 [(dccl.field).min = 0, (dccl.field).max = 1];
47 
48  required goby.acomms.protobuf.ModemTransmission.TransmissionType type = 4;
49 
50  optional bool ack_requested = 5;
51  optional uint32 frame_start = 6
52  [(dccl.field).min = 0, (dccl.field).max = 0xFFFF];
53  optional int32 acked_frame = 7
54  [(dccl.field).min = 0, (dccl.field).max = 0xFFFF];
55 }