| EM datagrams on *.kmall format Reg.no. 410224 rev D

- Main Page
- Related Pages
- Data Structures
- Files

Overview of EM datagrams on .*kmall format

Introduction
The K-Controller is responsible for logging all the data from the Kongsberg multibeam echosounder systems, MBES, also refered to as the EM series echosounders. K-Controller runs on a PC-architecture computer running Windows. Data from the MBES arrives at the PC via an Ethernet connection as UDP packets of variable length. The UDP packages containing output datagrams are usually logged to disk on a hydrographic work station (HWS). The output datagrams may also be exported to user provided programs on the HWS or on an external Ethernet network or from the echosounder by multicast distribution.
To separate the EM datagrams described herein from previous EM datagram formats, the file extension of this format is called *.kmall. Files are named according to nnnn_YYYYMMDD_HHMMSS, where nnnn is the line number, followed by date and time. Time in the first datagram in the file is decoded and used in the filename. (Note that the clock in the PC is not used).The ship's name may be appended at the end of the file name by operators choice: nnnn_YYYYMMDD_HHMMSS_ShipName.
The majority of the output datagrams are in binary format. The datagrams have 4 bytes alignment. Little endian and C++11 data types are used. All datagrams starts with the general header, EMdgmHeader_def, and ends with a 32 bit unsigned value containing the size of the datagram, in number of bytes. The length field at the start and end of the datagram are included in the length count. Thus to read the file, first read four bytes, then read that number of bytes from the file which is then one datagram.
In the general header, the name of the datagram is found. The name of the datagram start by #, then a three letter code follows. Tables of output datagrams are given below.
The datagrams from the echosounder arrives at the PC in one stream. The timestamp of the data may not be strictly sequential. For example motion sensor data is grouped together and sent from the echosounder to SIS/K-Controller in one datagram containing up to 100 motion sensor measurements with individual timestamps. Therefore they may arrive one second later than the depth datagram. This makes it necessary to read several motion sensor datagrams to find the correct one to be used when applying motion to the depth data. The individual datagram types must be handled separately and the interpolation to other datagram types must be done based on the timestamps.
The external sensor (S) datagrams contain information from sensors other than the echo sounder. The datagrams may contain both corrected data and data as received from the sensor. The corrected data are data as used during the raytracing and depth calculations by the processing unit (PU) in real-time. Corrected data are only provided for active sensors. For post processing purposes the raw data are provided, also for inactive sensors. Generally, raw data has the same format as the external sensors provide. E.g. raw position data from GGA are presented as a text string according to the NMEA standard: $INGGA,094354.04,5925.695652,N,01027.921711,E,4,07,1.3,-1.55,M,40.51,M,1.0,0000*7D
Lists of output datagrams from processing unit (PU):
Installation and runtime datagrams:

Datagram type code | Datagram struct name | Description
--- | --- | ---
#IIP | EMdgmIIP_def | Installation parameters and sensor setup.
#IOP | EMdgmIOP_def | Runtime parameters as chosen by operator.
#IBE | EMdgmIB_def | Built in test (BIST) error report.
#IBR | EMdgmIB_def | Built in test (BIST) reply.
#IBS | EMdgmIB_def | Built in test (BIST) short reply.

Table of multibeam datagrams:

Datagram type code | Datagram struct name | Description
--- | --- | ---
#MRZ | EMdgmMRZ_def | Multibeam (M) raw range (R) and depth(Z) datagram
#MWC | EMdgmMWC_def | Multibeam (M) water (W) column (C) datagram

Table of external sensor output datagrams:

Datagram type code | Datagram struct name | Description
--- | --- | ---
#SPO | EMdgmSPO_def | Sensor (S) data for position (PO)
#SKM | EMdgmSKM_def | Sensor (S) KM binary sensor format
#SVP | EMdgmSVP_def | Sensor (S) data from sound velocity (V) profile (P) or CTD
#SVT | EMdgmSVT_def | Sensor (S) data for sound velocity (V) at transducer (T)
#SCL | EMdgmSCL_def | Sensor (S) data from clock (CL)
#SDE | EMdgmSDE_def | Sensor (S) data from depth (DE) sensor
#SHI | EMdgmSHI_def | Sensor (S) data for height (HI)