Skip to main content
Skip table of contents

Sample data EasyParse format

In EasyParse format (calbin00), dataset-1 contains only sample data, comprising sample sets recorded in chronological order. The format of an individual sample set is also quite different from that of Standard format. Every sample set includes a timestamp, and values are already converted to the physical values of the required parameters according to the logger's calibration, with correction or compensation already applied as necessary. They are also stored in a different numeric format, with error codes still accommodated when required. Refer to the following sections for more details.

The logger can also store derived channels such as depth or salinity, which have no corresponding 'raw' value in the Standard data format.

These characteristics make the data easier for host software to interpret:

  1. All stored items are sample sets, with the size fixed for a given logger deployment; 8 bytes for a timestamp, plus 4 bytes for each channel stored.

  2. Host software does not need to do any calculation or need to know the logger's calibration data; final values are stored directly by the logger.

  3. Derived channels are already included.


Sample timing

Sample sets are individually time-stamped; while this consumes memory, it does also mean that timing information is always available for snippets of downloaded data.

Each timestamp is a 64-bit (8-byte) unsigned integer, representing the number of milliseconds elapsed since 1970-Jan-01 00:00:00. This is a format commonly used by Unix-based computer systems, in which leap years are correctly accounted for, but each day is assumed to contain exactly 86400 seconds; there is no allowance for leap seconds or other obscure adjustments. The logger takes no account of time zones or daylight savings adjustments.

If a sample set is the result of an average or a bin, the timestamp reflects the timestamp of the first measurement of the average or bin.

Normal reading values

Each individual reading of the sample data is stored as a 32-bit (4-byte) floating point number in IEEE-754 single precision format. Both measured and derived channels are included in the sample set, with channels ordered as expected according to the results of the channel command. The values are the final computed output for each channel, including all necessary corrections and cross compensations. If an error occurs on an individual channel in a sample set, that channel will be reported as an IEEE-754 'NaN' (Not a Number): see below for more details. 

Error Codes

Under some conditions an error may occur on one channel while data from the other channels is perfectly acceptable. Rather than generating a time-stamped event if this happens, the individual reading is replaced by an error code. 

In EasyParse format, an error code is stored as an IEEE-754 'NaN' (Not a Number), which is compatible with the floating point format of the sample readings, without being a valid value. An error code indicates a problem with that particular reading from the channel in question; other readings in the same sample set may be fine, as may other readings from the same channel in different sample sets.

IEEE-754 provides for multiple NaN values, and this feature is used to encode the nature of the error, although it is acknowledged that host software taking advantage of the simplicity of the EasyParse format will probably not delve into this level of diagnostic detail. The general format is (0xFF800000 + <EC>), where 0xFF800000 is the base value of an IEEE-754 NaN, and <EC> is the error code. The values of <EC> correspond, where possible and appropriate, to the error numbers also used in Standard data storage format.


Error #

Hex Code

Description

-

0xFF800001

internal computation failure (eg. divide-by-zero)

-

0xFF800002

unable to compute value, channel not calibrated




0

0xFF810000

generic, unknown or unexpected error

1

0xFF810001

EOC bit unexpectedly set in ADC output

2

0xFF810002

DMY bit unexpectedly set in ADC output

3

0xFF810003

internal addressing error

4

0xFF810004

too much data for internal transfer

5

0xFF810005

access to internal bus denied

6

0xFF810006

timeout sending internal command

7

0xFF810007

timeout receiving internal response

8

0xFF810008

generic failure to interpret response

9

0xFF810009

no sample was started

10

0xFF81000A

sample acquisition still in progress

11

0xFF81000B

sample process failed

12

0xFF81000C

no valid samples to average

13

0xFF81000D

internal response unexpectedly short

14

0xFF81000E

supporting channel value not valid, or unknown equation

15

0xFF81000F

(reserved)

16

0xFF810010

channel value is outside reasonable range

17

0xFF810011

channel value is below minimum measurable limit

18

0xFF810012

channel value is above maximum measurable limit

19

0xFF810013

sensor output not received within timeout

20

0xFF810014

unable to parse sensor output

21

0xFF810015

channel is not correctly calibrated

22

0xFF810016

floating point value is badly formed

23

0xFF810017

channel not logged



JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.