dc_parser_samples_foreach
—
iterate over samples taken during a dive
library “libdivecomputer”
#include
<libdivecomputer/parser.h>
typedef void
(*dc_sample_callback_t)
(
dc_sample_type_t
type,
dc_sample_value_t value,
void *userdata);
dc_status_t
dc_parser_samples_foreach
(
dc_parser_t
*parser,
dc_sample_callback_t callback,
void *userdata);
Extract the samples taken during a dive as previously initialised with
dc_parser_set_data(3).
Each sample is passed to
callback with the
type of the sample and its data
value.
Samples are invoked as a sequence of sample sets. Each sequence begins with a
DC_SAMPLE_TIME
, then a number of sample
types in the set. When the next
DC_SAMPLE_TIME
is recorded, the sample set
may be closed and a new one reopened. After all samples have been rendered,
the last sample set should be closed.
The following sample types may be raised:
-
-
DC_SAMPLE_TIME
- The time of the sample taken in seconds after the dive began. Set in the
time field.
-
-
DC_SAMPLE_DEPTH
- The depth taken at the sample in metres. Set in the
depth field.
-
-
DC_SAMPLE_PRESSURE
- Tank pressure taken at the sample. Sets the
tank index (see the
DC_FIELD_TANK_COUNT
in
dc_parser_get_field(3))
and the pressure in bar.
-
-
DC_SAMPLE_TEMPERATURE
- Temperature in celsius. Sets the
temperature field.
-
-
DC_SAMPLE_EVENT
- An diving event raised by the computer. This may have the
type value of the
event structure set to
SAMPLE_EVENT_NONE
,
SAMPLE_EVENT_DECOSTOP
,
SAMPLE_EVENT_RBT
,
SAMPLE_EVENT_ASCENT
,
SAMPLE_EVENT_CEILING
,
SAMPLE_EVENT_WORKLOAD
,
SAMPLE_EVENT_TRANSMITTER
,
SAMPLE_EVENT_VIOLATION
,
SAMPLE_EVENT_BOOKMARK
,
SAMPLE_EVENT_SURFACE
,
SAMPLE_EVENT_SAFETYSTOP
,
SAMPLE_EVENT_SAFETYSTOP_VOLUNTARY
,
SAMPLE_EVENT_SAFETYSTOP_MANDATORY
,
SAMPLE_EVENT_DEEPSTOP
,
SAMPLE_EVENT_CEILING_SAFETYSTOP
,
SAMPLE_EVENT_FLOOR
,
SAMPLE_EVENT_DIVETIME
,
SAMPLE_EVENT_MAXDEPTH
,
SAMPLE_EVENT_OLF
,
SAMPLE_EVENT_PO2
,
SAMPLE_EVENT_AIRTIME
,
SAMPLE_EVENT_RGBM
,
SAMPLE_EVENT_HEADING
, or
SAMPLE_EVENT_TISSUELEVEL
.
-
-
DC_SAMPLE_RBT
- The remaining bottom time in seconds. Sets the
rbt field.
-
-
DC_SAMPLE_HEARTBEAT
- The diver's heartbeat in beats per minute. Sets the
heartbeat field.
-
-
DC_SAMPLE_BEARING
- The diver's bearing in degrees. Sets the
bearing field.
-
-
DC_SAMPLE_VENDOR
- A vendor-specific data field.
-
-
DC_SAMPLE_SETPOINT
- The closed-circuit setpoint (PO2) has changed. Sets the
setpoint value in bar.
-
-
DC_SAMPLE_PPO2
- The partial pressure of oxygen has changed (in bar). Sets the
ppo2 field.
-
-
DC_SAMPLE_CNS
- The CNS (central nervous system oxygen toxicity) value as a unit fraction.
Sets the cns value.
-
-
DC_SAMPLE_DECO
- Decompression phase of type
DC_DECO_NDL
(no decompression limit),
DC_DECO_SAFETYSTOP
(the safety stop),
DC_DECO_DECOSTOP
(a decompression
stop), or DC_DECO_DEEPSTOP
(a mandatory
or suggested deep-stop). Also sets the
depth in metres and the
time in seconds.
-
-
DC_SAMPLE_GASMIX
- Switch to a given gas mix index (see the
DC_FIELD_GASMIX_COUNT
in
dc_parser_get_field(3)).
Sets the gasmix field.
Returns
DC_STATUS_OK
on success and another
code on 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.