Version 1.014

Headers of version 1.014 are generated by firmware version 1.360 or later.

This is a series of sections, each of which describe some aspect of the instrument configuration or deployment settings. Sections should be in ascending order by 'type' value. The 'metadata' section describes the data format itself.

Each section consists of the following: 

  1. Type
  2. Length
  3. Data structure

Section types are 1 byte values which identify the type of information found inside a section. The section types defined are as follows:

  1. 0x01 Metadata
  2. 0x02 Deployment
  3. 0x03 Channel

Section lengths are 2 byte values which indicate the length of the data contained within the section including the section type and length.

A section's data structure format is hardcoded depending on the section type and the header version number.  Unused bytes following the last entry are set to 0xFF, except for the final two bytes. These contain a 16-bit CRC using the CCITT polynomial f(x)  = x^16 + x^12 + x^5 + 1, with bytes fed into the generator lsb first. 

Metadata section

Type :  0x01 (1 byte)

Length :  9 (2 bytes)

Data structure content :

Version
1014 (4 bytes) This is the version of the header format

Total header length
1024 (2 bytes) This length includes everything associated with the header including the CRC at the end. 

Deployment section

Type : 0x02 (1 byte)

Length :  503 (2 bytes)

Data structure :  Unless stated otherwise, all parameters are 4 byte integer values.* Following the parameters, unused bytes are padded with value 0xFF.

Firmware version
Given as an integer; for example version 10.570 would be given as 10570.

Logger Serial Number
As reported by the id command.

Logger date/time
This is the date and time at which the enable command was successfully executed by the logger and the Header stored in memory. The value is the number of seconds elapsed since 2000-Jan-01 00:00:00.

Schedule start time
Programmed by the starttime command. The value is the number of seconds elapsed since 2000-Jan-01 00:00:00.

Schedule end time
Programmed by the endtime command. The value is the number of seconds elapsed since 2000-Jan-01 00:00:00.

Measurement interval 
Programmed by the sampling period command. The value is given in milliseconds.

Output format 
This is the output format used for streamed or fetched data. See also the outputformat command.
 - 00 caltext01 format,
 - 01 caltext02 format,
 - 02 caltext03 format,
 - 03 caltext04 format

Logger status 
This is the logger's status when it was successfully enabled, and so can have only a small number of values: 1 = pending, 2 = logging, or 4 = gated. See also the status command.

Serial link baudrate 
This is the baudrate in force on the logger's serial link when the logger was enabled.

Feature flags 
This is a bitmask of user selectable features which were active at the time the logger was enabled.
0x00000001  1 = logger prompt turned on.
0x00000002  1 = logger confirmations turned on.
0x00000004  1 = stream sample data to USB port.
0x00000008  1 = stream sample data to serial port.
0x00000010  1 = store average of burst.
0x00000020  1 = store all measurements in burst.
0x00000040  1 = store tidal average of burst.
0x00000080  1 = store wave burst.
0x00000100  1 = fast (>1Hz) continuous sampling.
0x00004000  1 = sampling was gated by thresholding feature.
0x00008000  1 = logger keeps all sensor channels powered up between samples.
0x00010000  1 = sampling was gated by the twist activation feature.
0x00020000  1 = the regimes sampling mode was enabled.
0x00040000  1 = cast detection for profiling deployments was enabled.
0x00080000  1 = the serial port auxiliary control feature was enabled.
0x00100000  1 = logger was enabled in simulated data mode (added for header version 1.011).
0x00200000  1 = the directional dependent sampling mode was enabled (added for header version 1.014). 

Average interval 
Measured in milliseconds, this is the time between averaged bursts.

Average length 
A count of the number of measurements in an averaged burst.

Burst interval 
Measured in milliseconds, this is the time between recorded bursts.

Burst length 
A count of the number of measurements in a recorded burst.

Altitude 
This item is a floating point number in IEEE 32-bit (single precision) format, not an integer. It represents the height above the sea bed at which the logger is deployed. The units are not specified, although RBR Ltd's host software Ruskin expects the value to be in metres. This parameter is meaningful only for instruments configured to record wave bursts; see also the altitude command.

Thresholding channel 
The channel monitored for threshold-gated sampling, if enabled (see Feature flags above). The first channel has an index of 1.

Thresholding condition 
The condition which must be satisfied for the logger to record data if threshold-gated sampling was enabled (see the Feature flags above). A value of 0 is used when the reading must be below the threshold for sampling to occur, a value of 1 is used if the reading must be above the threshold.

Thresholding value
This item is a floating point number in IEEE 32-bit (single precision) format, not an integer. It is the threshold value in calibrated units, used for comparison with values from the monitored channel, if threshold-gated sampling was enabled (see the Feature flags above).

Thresholding interval
This is the interval in milliseconds between threshold checks when the logger is in the gated state, waiting for a threshold trigger.

Fetch power off delay
This is the timeout in milliseconds before the sensors are powered off after sending the fetch command.

Temperature default value
This item is a floating point number in IEEE 32-bit (single precision) format, not an integer.

Conductivity default value
This item is not in use anymore; from Header Version 1.012 and onward it is replaced by the Salinity default value.

Pressure default value
This item is a floating point number in IEEE 32-bit (single precision) format, not an integer.

Atmospheric pressure default value
This item is a floating point number in IEEE 32-bit (single precision) format, not an integer.

Density default value
This item is a floating point number in IEEE 32-bit (single precision) format, not an integer.

Regimes settings
bit 7 : 0 = ascending, 1 = descending
bit 6 : 0 = absolute pressure reference, 1 = sea pressure reference
bits 0..5 : number of regimes (between 1 and 3)

Regime 1 boundary (2 bytes)
The boundary is in dbar.

Regime 1 binsize (2 bytes)
The binsize is in dbar.

Regime 1 period
The sampling period during this regime in milliseconds

Regime 2 boundary (2 bytes)
The boundary is in dbar.

Regime 2 binsize (2 bytes)
The binsize is in dbar.

Regime 2 period
The sampling period during this regime in milliseconds

Regime 3 boundary (2 bytes)
The boundary is in dbar.

Regime 3 binsize (2 bytes)
The binsize is in dbar.

Regime 3 period
The sampling period during this regime in milliseconds.

Firmware type
The firmware type code as an integer; see the fwtype parameter under the id command.

Serial mode
The operating mode of the Serial port as an integer code; see the mode parameter under the serial command:

0: (rs232) standard RS-232.
1: (rs485f) full duplex RS-485.
2: (uart) direct connection to UART 3V logic.
3: (uart_idlelow) inverted connection to UART 3V logic.
4: (rs485h) half duplex RS-485. 

Auxiliary serial control output; polarities
Determines the active polarity of the signal when the logger is awake, and the state of the signal when the logger is asleep:

b0: 0 = logger drives signal low to activate, 1 = logger drives signal high to activate.
b1: 0 = signal is low when logger is asleep, 1 = signal is high when logger is asleep.
b2: 0 = b1 controls signal level when logger is asleep, 1 = signal is high impedance when logger is asleep.

Auxiliary serial control output; setup time
The time in milliseconds for which the control signal is activated before the logger starts to stream data over the Serial link.

Auxiliary serial control output; hold time
The time in milliseconds for which the control signal is held active after the logger has finished streaming data over the Serial link.

Reference pressure for WiFi module, if installed

This item is a floating point number in IEEE 32-bit (single precision) format, not an integer. It represents the pressure in dbar assumed to apply at the surface of the water at the start of the deployment.

Power-on timeout for WiFi module, if installed

After activating the WiFi module, the logger will wait for this number of seconds at the most for a valid command to be received.  If the timeout expires, the WiFi module will be deactivated again.

Command timeout for WiFi module, if installed

After receiving a valid command, the logger will wait for this number of seconds at the most for another.  If the timeout expires, the WiFi module will be deactivated.

Offset from Universal Coordinated Time (UTC)

This parameter was added in Header Version 1.009.  It represents an offset in hours from UTC in the local timezone when the logger was deployed, if that information was provided by the host software.  This item is a floating point number in IEEE 32-bit (single precision) format, not an integer.  This format allows offsets which include partial hours, for those time zones which need it.  If the timezone is never explicitly set, or is erased by using the now command to update the date/time, it will be reported as a NaN ('Not a Number' in IEEE floating point format).

Specific Conductivity Temperature Coefficient

This parameter was added in Header Version 1.009.  It is used when correcting conductivity readings to 25°C for the specific conductance derived channel.  The value of the coefficient varies slightly depending on the ionic composition of the water, and is typically in the range 0.0191 to 0.0214.  The default value is 0.0191, suitable for standard KCl solutions.  This item is a floating point number in IEEE 32-bit (single precision) format, not an integer.

Simulated data cycle period

This parameter was added in Header Version 1.011.  When a logger is enabled in simulation mode, the simulated data is periodic, with the period udually being much longer than the sampling period.  The cycle period of the simulated data is given as an unsigned 32-bit integer in milliseconds.  For example, a value of 3600000 represents a period of one hour.

Salinity default value
Added in Header Version 1.012, replacing the Conductivity default value; this item is a floating point number in IEEE 32-bit (single precision) format, not an integer.

Average sound speed default value
Added in Header Version 1.013; this item is a floating point number in IEEE 32-bit (single precision) format, not an integer.

Directional dependent sampling flags
This is a bitmask of settings for directional dependent sampling (added in Header Version 1.014)
0x00000001  1 = ascending direction.

Directional dependent fast sampling period
The fast sampling period in milliseconds (added in Header Version 1.014)

Directional dependent slow sampling period
The slow sampling period in milliseconds (added in Header Version 1.014)

Directional dependent fast sampling threshold
The fast sampling threshold in dbar, this item is a floating point number in IEEE 32-bit (single precision) format, not an integer (added in Header Version 1.014)

Directional dependent slow sampling threshold
The slow sampling threshold in dbar, this item is a floating point number in IEEE 32-bit (single precision) format, not an integer (added in Header Version 1.014)

 

Channel section

Type :  0x03 (1 byte)

Length :  (2 bytes) The size of this section is not fixed, it depends on the number and type of channels. Every logger includes at least one channel.

Data structure :  *This structure size is not a fixed size. It depends on how many channels are in the logger. , *Following the parameters is 181 bytes of padding (0xFF values)

Number of channels
As reported by the channels command, (1 byte)

Channel 1 offset
Channel 1 details offset from beginning of the channel section structure, (2 bytes)

Channel 2 offset  (2 bytes)

  ...

Channel N offset  (2 bytes)

[Channel_1 details structure]  (variable size, depends on channel type and number of calibration coefficients)

[Channel_2 details structure]  (variable size...)

  ...

[Channel_N details structure]  (variable size...)

Channel details structure

Type (6 bytes)
This is a 6-character ASCII string as reported by the channel command. See Supported channel types for a list of possible values

Channel extensions (2 bytes)
This 16-bit field stores specific flags for the channel.
The first five bits are used internally by the logger to control the properties and behaviour of a channel which has been turned off using the channel status command. The bits are assigned as follows:

    • bit-0: 0 if the channel is visible, 1 if it is hidden.
    • bit-1: 0 if the channel is sampled, 1 if it is ignored.
    • bit-2: 0 if the channel data is stored in memory, 1 if it is transient.
    • bit-3: 0 if the channel data may be streamed, 1 if it is quiet.
    • bit-4: 0 if the channel is "on", 1 if the user requested it be turned "off".

These bits are not directly accessible to users via the command interface, and are really only for the logger's internal use: not all possible combinations are valid. Turning a channel "off" is not as simple as it may seem; for example, if the user requests a channel is turned off, but its data is required for the correction of another channel, the logger must still sample the channel without necessarily storing or streaming the data. These bits provide the detailed control necessary to deal with such scenarios.

The visible/hidden property is configured at the Factory and can not be changed or read by the user. A channel may be hidden if it is required by the logger but is of no interest to the user; an example might be an internal temperature needed for correction purposes.

Calibration Date (4 bytes)
Retrieved by the calibration command. The value is the number of seconds elapsed since 2000-Jan-01 00:00:00.

Number of coefficients (1 byte)
The number of channel calibration coefficients.

Coefficient 1 (4 bytes)
This item is typically a floating point number in IEEE 32-bit (single precision) format, not an integer.

Coefficient 2 (4 bytes)

  ...

Coefficient N (4 bytes)

All true coefficients are floating point numbers in IEEE 32-bit (single precision) format, but he channel indices for cross-channel correction or compensation (the n-group) are 32-bit integers.  Refer to the calibration command for more details.

Ranging mode (1 byte)
This is the status of the gain control on the sensor card. It can have only one of three values: 0 = none , 1 = manual , 2 = auto . See also the channel <index> gain command. If the mode is set to none then the values for the rest of the gain parameters are just padded with 0x00 and shouldn't be used for anything.

Number of available gains (1 byte)
This is the number of possible gains that can be used for manual or auto ranging modes. If the ranging mode is 0 then this value will be 0 (padding) otherwise the possible values are 1 – 4. If this value is less than the maximum (4) then the remaining Available gains are padded with 0x00.

Current Gain value (4 bytes)
This is the gain currently in use at time of deployment. If the channel is in ranging mode 0 then this value is 0 and should be ignored. If the ranging mode is 2 then this value is the first gain in the Available gain 1 . If the ranging mode is 1 then this value will be the manual gain setting chosen by the user at the time of deployment. This item is a floating point number in IEEE 32-bit (single precision) format, not an integer.

Available gain 1 (4 bytes)
This is one possible gain value available to the sensor. If ranging mode is none then this value is padded with 0x00. This item is a floating point number in IEEE 32-bit (single precision) format, not an integer. 

Available gain 2 (4 bytes)
This is one possible gain value available to the sensor. If ranging mode is none or the Number of available gains < 2 then this value is padded with 0x00. This item is a floating point number in IEEE 32-bit (single precision) format, not an integer. 

Available gain 3 (4 bytes)
This is one possible gain value available to the sensor. If ranging mode is none then or the Number of available gains < 3 then this value is padded with 0x00. This item is a floating point number in IEEE 32-bit (single precision) format, not an integer. 

Available gain 4 (4 bytes)
This is one possible gain value available to the sensor. If ranging mode is none then or the Number of available gains < 4 then this value is padded with 0x00. This item is a floating point number in IEEE 32-bit (single precision) format, not an integer. 

Front-end specific structures total size (2 bytes)
Except for BPR frontends, and for channels which support the sensor command, this is set to zero. This is followed by a serie of front-end specific structures. The Front-end specific structures total size is the total size of all the following Front-end specific structure.

Front-end specific structure 
Applies to BPR frontends.

Also applies to channels which support the sensor command.  

In the case of a channel supporting the sensor command, for each parameter returned by the sensor command (key/value), there will be one sensor key/value structure.This structure starts with a short 4-byte header, which is followed by 1 pair of <name>,<value> entry, as follows:

type (1 byte), an integer indicating the type of information stored in <value>; presently this is always 2, indicating a string key/value pair.
size (1 byte), gives the size of the data area containing the <name>,<value> entry, not including the 4-byte header itself.  The size is measured in 4-byte (32-bit) units (not 8-bit bytes).
offset (2 bytes), Presently unused, and always set to 0.

Then come the pairs of <name>,<value> entries.

name, stored as a sequence of lower-case ASCII characters, ending with a NUL character (byte value of 0).  This may be padded after the NUL if necessary with up to three bytes of value 127 (0x7F), so that the total size of the name entry in bytes is a multiple of four.
value, the size and format of which will depend on the type entry in the header; presently only strings are supported, stored as a sequence of lower-case ASCII characters, ending with a NUL character (byte value of 0).This may be padded after the NUL if necessary with up to three bytes of value 127 (0x7F), so that the total size of the name entry in bytes is a multiple of four.

There is no padding between the header and the first entry, or between consecutive entries; in total the entries will occupy the number of 4-byte units given in the size entry of the header.