Downloading an EasyParse dataset

EasyParse format (calbin00) datasets are intended to make the process of parsing and subsequent viewing or analysis of data extremely simple.  In the Standard memory format (rawbin00), calibration coefficients, deployment settings, raw ADC data, and logger events are all combined in a single binary block, which requires substantial amounts of code to untangle.  The EasyParse format contains two separate blocks, one of which is for data alone, and the other containing logger events.  Many applications only require the data block, further simplifying the process.

There are costs associated with the EasyParse format: memory consumption, and loss of certain post-processing capabilities (mainly post-deployment calibration).  These costs are often not significant obstacles.

Starting a deployment using EasyParse

Before the logger is enabled, it must be instructed to use the EasyParse format using the memformat command, by specifying the newtype parameter.  This step does not need to be repeated before every deployment unless the format is to be changed.  The format can not be changed while logging is in progress.

>> memformat newtype = calbin00
 This can be verified after the logger has been enabled, again using the memformat command:
>> memformat
<< memformat type = calbin00
 The readings made by the logger are stored in dataset-1, as a series of records containing a timestamp, and readings for each channel.  The readings are IEEE single precision floats, representing engineering unit data (degC, mS/cm, dbar, etc).  Often, this is the only dataset required for a download.  However, all logger events are stored in dataset-0, and these may be of interest in certain cases.  In particular, the cast detection events and WiFi module enable events can be useful markers that permit a smart host to download just a small section of the data (perhaps 'the latest profile' or 'all data since the last time the WiFi module was enabled').

Downloading the dataset

Downloading the data block in dataset-1 uses the readdata command. First find out how much data is in use:

>> meminfo dataset 1 used
<< meminfo dataset = 1, used = 2000
Read that data in a single 2000 byte chunk:
>> readdata dataset = 1, size = 2000, offset = 0
<< readdata dataset = 1, size = 2000, offset = 0<cr><lf><bytes[0…1999]-of-data><crc>
In addition to the data block, there is another essential piece of information - the currently active channel list.  The length of this list, and the ordering of the channels in it, will be an essential part of parsing the data block (remember the timestamp-value1-value2-value3...-valueN record structure).

Request the active channel list:

>> outputformat channelslist
<< outputformat channelslist = temperature(C)|pressure(dbar)
There are just two channel readings in the data, so each sample is composed of a timestamp (an unsigned, 8-byte/64-bit integer number expressing milliseconds since the Unix epoch: 1970-01-01T00:00:00Z) followed by one reading for each of temperature and pressure (4-byte IEEE 754 floating-point numbers).

Converting the data at this point should be straightforward.