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.
dc_parser_set_data(3)
The
library “libdivecomputer”
library was written by
Jef Driesen,
jef@libdivecomputer.org.
The manpages were written by
Kristaps Dzonsons,
kristaps@bsd.lv.