## 3 Description of the Maritime Data Transfer Protocol
### Messages from the Maritime Data Transfer Protocol
\begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Data** & **Units** & **Size** & **Data Type** & **Range of Values** \\ \hline \multicolumn{5}{c}{**Environment data**} \\ \hline Water temperature & Celsius & 8 bits & Byte & \(-\)3.75–60.5 \({}^{\circ}\)C \\ \hline Water salinity & Parts per million & 16 bits & Unsigned short & 0–65534 ppm \\ \hline Sound Velocity & m/s & 32 bits & Float & 0–9999.999 m/s \\ \hline Turbidity & Parts per million & 16 bits & Unsigned short & 0–65534 ppm \\ \hline Pollution (H2S) & Parts per million & 16 bits & Unsigned short & 0–65534 ppm \\ \hline Currents & cm/s & 8 bits & Unsigned byte & 0–254 cm/s \\ \hline Bathymetry–underwater maps & m & 32 bits & Float & 0.0–9999.999 m \\ (sonar) & & & & \\ \hline \multicolumn{5}{c}{**Status**} \\ \hline Vehicle battery & \% & 8 bits & Unsigned byte & 0.0–100.0\% \\ \hline Temporal reference & s & 16 bits & Unsigned byte & 0–65534 s \\ \hline \multirow{2}{*}{Sensor status} & Bit identifier + & 8 bits (5 bits + & \multirow{2}{*}{Unsigned short} & 0–31 sensors, \\  & bit mode & 3 bits) & & 0–8 modes \\ \hline \multirow{2}{*}{Vehicle event/alarm} & Event or alarm & \multirow{2}{*}{4 bits} & \multirow{2}{*}{Byte} & 0000–1110 (15 different \\  & code & & & events/alarms) \\ \hline \multicolumn{5}{c}{**Situational information**} \\ \hline Latitude & Degrees & 64 bits & Float & \(-\)90–90 \\ \hline Longitude & Degrees & 64 bits & Float & \(-\)180 to 180 \\ \hline Coordinates & \multirow{2}{*}{cm/s} & \multirow{2}{*}{8 bits} & \multirow{2}{*}{Unsigned byte} & 0–254 cm/s \\ (Inertial/USBL/DVL) & & & & \\ \hline Working depth & m & 32 bits & Float & 0–4095.875 m \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Information to exchange when AUVs are underwater. Other types of data bigger in size, like missions, should be transmitted when the AUVs are on the surface so as to use an IP channel with no bandwidth limitations. By missions, it is meant the set of operations that are carried out cooperatively by the autonomous maritime vehicles deployed in order to achieve a complex goal Taking into account the bandwidth restrictions of underwater acoustic communications (low bandwidth, unreliable medium of transmission, difficulties to maintain the nodes in a fixed position, etc.) and the suitability of the time and space decoupling abilities of DDS in those cases, the authors of this manuscript have defined messages for MDTP based on DDS which rely on the previously presented taxonomy of messages (see Section 3.2), and cover all possible scenarios presented by the vehicle providers collaborating in the SWARMs research project (e.g., periodic reports from vehicles, task execution requests, etc.) This protocol enhances the state of the art by providing a definition of the content that should be included in the SerializedData parameter of a DDS submessage of type Data (as shown in Figure 5). The size of the data to exchange through this protocol has been carefully design to adjust to the limited bandwidth of acoustic modems (e.g., an effective bitrate of less than 2 kbps is quite common) to avoid the excessive fragmentation of PDUs in transmissions. This definition is proposed as a standard representation of the information that can be exchanged between the middleware and vehicles in offshore maritime missions. We have defined a size of 63 bytes for this content, comprising a 24 bits header and 480 bits payload:  
1. _Vehicle ID (4 bits)_: vehicle identifier of the robot originator or receptor of the message. It has been included in Tables 4 and 5 as _VID_. 2. _Type (4 bits)_: PDU type. We consider 7 different kinds of PDUs according to the taxonomy of messages defined. Three of them represent the different message types the middleware can send to a vehicle: requests, notifications and answers. The other four represent the message types that vehicles can send to the middleware: periodic status information, reports, events and queries. 3. _Subtype (8 bits)_: PDU subtype.