Goby v2
frontseat_config.proto
1 
2 import "goby/moos/protobuf/goby_moos_app.proto";
3 import "goby/common/protobuf/option_extensions.proto";
4 
5 message iFrontSeatConfig
6 {
7  optional GobyMOOSAppConfig common = 1;
8 
9  optional bool require_helm = 10 [
10  default = true,
11  (goby.field).description =
12  "Require the IvP Helm even for listening mission where the "
13  "frontseat "
14  "is in control."
15  ];
16 
17  optional double helm_running_timeout = 11 [
18  default = 10,
19  (goby.field).description =
20  "If `require_helm`, how long (in seconds) to wait for the IvP Helm "
21  "to "
22  "start before moving to the Helm Error state."
23  ];
24 
25  optional double frontseat_connected_timeout = 12 [
26  default = 10,
27  (goby.field).description =
28  "How long (in seconds) to wait for the Frontseat to be connected "
29  "before moving to the Frontseat Error state."
30  ];
31 
32  optional uint32 status_period = 13 [
33  default = 5,
34  (goby.field).description =
35  "Seconds between publishing the status of iFrontseat. The special "
36  "value 0 disables posting of the status message."
37  ];
38 
39  optional uint32 modem_id = 14 [
40  (goby.field).moos_global = "modem_id",
41  (goby.field).description = "Acoustic modem identification number"
42  ];
43 
44  message MOOSVariables
45  {
46  optional string prefix = 1 [
47  default = "IFS_",
48  (goby.field).description =
49  "Prefix all MOOS variable names with this string"
50  ];
51 
52  optional string raw_out = 10 [default = "RAW_OUT"];
53  optional string raw_in = 11 [default = "RAW_IN"];
54 
55  optional string command_request = 12 [default = "COMMAND_REQUEST"];
56  optional string command_response = 13 [default = "COMMAND_RESPONSE"];
57 
58  optional string data_from_frontseat = 14 [default = "DATA_IN"];
59  optional string data_to_frontseat = 15 [default = "DATA_OUT"];
60 
61  optional string status = 16 [default = "STATUS"];
62 
63  optional string node_status = 17 [default = "NODE_STATUS"];
64  }
65  optional MOOSVariables moos_var = 20;
66 
67  optional bool exit_on_error = 21 [
68  default = false,
69  (goby.field).description =
70  "If true, exit the application if it enters one of the error "
71  "states."
72  ];
73 
74  message LegacyOperations
75  {
76  optional bool subscribe_desired = 1 [
77  default = true,
78  (goby.field).description =
79  "Convert the IvP Helm DESIRED_HEADING, DESIRED_SPEED, "
80  "DESIRED_DEPTH "
81  "variables into a CommandRequest::desired_course message."
82  ];
83 
84  optional bool subscribe_ctd = 2 [
85  default = false,
86  (goby.field).description =
87  "Convert the individual CTD_CONDUCTIVITY, CTD_TEMPERATURE, "
88  "CTD_PRESSURE, CTD_SALINITY variables into a "
89  "FrontSeatInterfaceData::ctd_sample message."
90  ];
91 
92  optional bool subscribe_acomms_raw = 3 [
93  default = false,
94  (goby.field).description =
95  "Convert the individual ACOMMS_RAW_INCOMING, "
96  "ACOMMS_RAW_OUTGOING "
97  "variables into a FrontSeatInterfaceData message with "
98  "extensions "
99  "BluefinExtraData::micro_modem_raw_out and "
100  "BluefinExtraData::micro_mdoem_raw_in set."
101  ];
102 
103  optional bool pub_sub_bf_commands = 4 [
104  default = false,
105  (goby.field).description =
106  "Convert all of the following MOOS variables into "
107  "corresponding "
108  "enumerations of the BluefinExtraCommands extension of the "
109  "CommandRequest message: BUOYANCY_CONTROL to "
110  "BluefinExtraCommands::BUOYANCY_ADJUST, TRIM_CONTROL to "
111  "BluefinExtraCommands::TRIM_ADJUST, FRONTSEAT_BHVOFF to "
112  "BluefinExtraCommands::CANCEL_CURRENT_BEHAVIOR, "
113  "FRONTSEAT_SILENT to "
114  "BluefinExtraCommands::SILENT_MODE, BACKSEAT_ABORT to "
115  "BluefinExtraCommands::ABORT_MISSION. Also, use the MOOS "
116  "variable "
117  "PENDING_SURFACE to trigger the "
118  "BluefinExtraCommands::GPS_REQUEST."
119  ];
120 
121  optional bool publish_nav = 12 [
122  default = true,
123  (goby.field).description =
124  "Publish NAV_X, NAV_Y, NAV_LAT, NAV_LONG, NAV_Z, NAV_DEPTH, "
125  "NAV_YAW, "
126  "NAV_HEADING, NAV_SPEED, NAV_PITCH, NAV_ROLL and NAV_ALTITUDE "
127  "from "
128  "the NodeStatus message within FrontSeatInterfaceData"
129  ];
130 
131  optional bool publish_fs_bs_ready = 11 [
132  default = false,
133  (goby.field).description =
134  "Publish the MOOS variable FRONTSEAT_READY=1 when the "
135  "frontseat "
136  "state is FRONTSEAT_ACCEPTING_COMMANDS, and FRONTSEAT_READY=0 "
137  "otherwise. Publish BACKSEAT_READY=1 when the helm state is "
138  "HELM_DRIVE, and BACKSEAT_READY=0 otherwise."
139  ];
140  }
141 
142  optional LegacyOperations legacy_cfg = 30 [
143  (goby.field).description =
144  "Numerous options to automatically convert legacy variables (e.g., "
145  "from iHuxley) into the iFrontSeat messages. Generally new "
146  "projects "
147  "will not use any of these options and thus this configuration "
148  "block can be omitted."
149  ];
150 
151  // Bluefin: 1000
152  // ABC: 1001
153  // Nemo: 1002
154  // Iver3: 1003
155  extensions 1000 to max;
156 }