mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Fix gasmix for OTU calculation
With the fixed sematics of get_gasmix to return the new gasmix for the time of a gas switch (added comments to make this clear), in the OTU calculation we need the previous gasmix for the interval up to the current time. Signed-off-by: Robert C. Helling <helling@atdotde.de>
This commit is contained in:
parent
7e4c8c387b
commit
62c57be1da
2 changed files with 3 additions and 1 deletions
|
@ -4433,6 +4433,7 @@ int dive_has_gps_location(const struct dive *dive)
|
||||||
return dive_site_has_gps_location(dive->dive_site);
|
return dive_site_has_gps_location(dive->dive_site);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* When evaluated at the time of a gasswitch, this returns the new gas */
|
||||||
struct gasmix get_gasmix(const struct dive *dive, const struct divecomputer *dc, int time, const struct event **evp, struct gasmix gasmix)
|
struct gasmix get_gasmix(const struct dive *dive, const struct divecomputer *dc, int time, const struct event **evp, struct gasmix gasmix)
|
||||||
{
|
{
|
||||||
const struct event *ev = *evp;
|
const struct event *ev = *evp;
|
||||||
|
@ -4456,6 +4457,7 @@ struct gasmix get_gasmix(const struct dive *dive, const struct divecomputer *dc,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* get the gas at a certain time during the dive */
|
/* get the gas at a certain time during the dive */
|
||||||
|
/* If there is a gasswitch at that time, it returns the new gasmix */
|
||||||
struct gasmix get_gasmix_at_time(const struct dive *d, const struct divecomputer *dc, duration_t time)
|
struct gasmix get_gasmix_at_time(const struct dive *d, const struct divecomputer *dc, duration_t time)
|
||||||
{
|
{
|
||||||
const struct event *ev = NULL;
|
const struct event *ev = NULL;
|
||||||
|
|
|
@ -173,7 +173,7 @@ static int calculate_otu(const struct dive *dive)
|
||||||
if (sample->setpoint.mbar) {
|
if (sample->setpoint.mbar) {
|
||||||
po2 = sample->setpoint.mbar;
|
po2 = sample->setpoint.mbar;
|
||||||
} else {
|
} else {
|
||||||
int o2 = active_o2(dive, dc, sample->time);
|
int o2 = active_o2(dive, dc, psample->time);
|
||||||
po2 = lrint(o2 * depth_to_atm(sample->depth.mm, dive));
|
po2 = lrint(o2 * depth_to_atm(sample->depth.mm, dive));
|
||||||
}
|
}
|
||||||
if (po2 >= 500)
|
if (po2 >= 500)
|
||||||
|
|
Loading…
Reference in a new issue