dc_parser_get_field
—
extract a field from a parsed dive
library
“libdivecomputer”
#include
<libdivecomputer/parser.h>
dc_status_t
dc_parser_get_field
(dc_parser_t
*parser, dc_field_type_t type,
unsigned int flags, void
*value);
Extract a field from a dive, parser,
previously initialised with
dc_parser_set_data(3).
The value field type depends upon the
type. The flags field is ignored
for all types but DC_FIELD_GASMIX
and
DC_FIELD_TANK
.
The type may be one of the following
values:
DC_FIELD_DIVETIME
- Time (duration) of dive in seconds. The value must
be an unsigned int.
DC_FIELD_MAXDEPTH
- Maximum depth in metres. The value must be a
double.
DC_FIELD_AVGDEPTH
- Average depth (over all samples) in metres. The
value must be a double.
DC_FIELD_GASMIX_COUNT
- Number of different gas mixes used in this dive. The
value must be a unsigned
int.
DC_FIELD_GASMIX
- Mixture for a particular gas. The value must be a
dc_gasmix_t, which has double
fields for oxygen, helium, and
nitrogen. These are set to the unit fraction of gas
(not percentage). The flags value is interpreted as
the gas mixture index, which must be less than the value of
DC_FIELD_GASMIX_COUNT
.
DC_FIELD_SALINITY
- The water salinity as a dc_salinity_t field, which
consists of a type,
DC_WATER_FRESH
or
DC_WATER_SALT
, and the salinity
density.
DC_FIELD_ATMOSPHERIC
- Atmospheric pressure in bar. The value field must be
a double.
DC_FIELD_TEMPERATURE_SURFACE
- Air temperature (at the surface) in Celsius. The
value field must be a
double.
DC_FIELD_TEMPERATURE_MINIMUM
- Minimum water temperature surface in Celsius. The
value field must be a
double.
DC_FIELD_TEMPERATURE_MAXIMUM
- Maximum water temperature in Celsius. The value
field must be a double.
DC_FIELD_TANK_COUNT
- The number of tanks as an unsigned int.
DC_FIELD_TANK
- Tank configuration as a dc_tank_t. This structure
consists of a gasmix, which may be retrieved with
DC_FIELD_GASMIX
; type, the
tank volume units as DC_TANKVOLUME_NONE
,
DC_TANKVOLUME_IMPERIAL
, or
DC_TANKVOLUME_METRIC
;
volume, the tank volume in litres or zero if the
tank is DC_TANKVOLUME_NONE
;
workpressure, the work pressure in bar or zero if
DC_TANKVOLUME_NONE
and maybe zero if
DC_TANKVOLUME_METRIC
;
beginpressure and endpressure
being the pressures at start and finish in bar. The
flags value is the tank index.
DC_FIELD_DIVEMODE
- Mode of the dive:
DC_DIVEMODE_FREEDIVE
for
free-diving, DC_DIVEMODE_GAUGE
for gauge (i.e.,
running as a record and not computing, say, decompression events),
DC_DIVEMODE_OC
for standard open-circuit diving,
and DC_DIVEMODE_CCR
and
DC_DIVEMODE_SCR
for respectively closed circuit
and semi closed circuit “rebreather” diving.
Returns DC_STATUS_SUCCESS
if the field was
retrieved, DC_STATUS_UNSUPPORTED
if the field is not
supported by the device, or other error messages on further failure.