summaryrefslogtreecommitdiffstats
path: root/planner.c
diff options
context:
space:
mode:
Diffstat (limited to 'planner.c')
-rw-r--r--planner.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/planner.c b/planner.c
index 7b3308869..10a1657c3 100644
--- a/planner.c
+++ b/planner.c
@@ -112,7 +112,7 @@ double tissue_at_end(struct dive *dive, char **cached_datap)
for (j = t0; j < t1; j++) {
int depth = interpolate(lastdepth, sample->depth.mm, j - t0, t1 - t0);
tissue_tolerance = add_segment(depth_to_mbar(depth, dive) / 1000.0,
- &dive->cylinder[gasidx].gasmix, 1, sample->po2 / 1000.0, dive);
+ &dive->cylinder[gasidx].gasmix, 1, sample->po2, dive);
}
psample = sample;
t0 = t1;
@@ -139,7 +139,7 @@ int time_at_last_depth(struct dive *dive, int next_stop, char **cached_data_p)
while (deco_allowed_depth(tissue_tolerance, surface_pressure, dive, 1) > next_stop) {
wait++;
tissue_tolerance = add_segment(depth_to_mbar(depth, dive) / 1000.0,
- &dive->cylinder[gasidx].gasmix, 1, sample->po2 / 1000.0, dive);
+ &dive->cylinder[gasidx].gasmix, 1, sample->po2, dive);
}
return wait;
}
@@ -202,7 +202,7 @@ struct dive *create_dive_from_plan(struct diveplan *diveplan)
add_gas(dive, oldo2, oldhe);
while (dp) {
int o2 = dp->o2, he = dp->he;
- int po2 = dp->po2 ? : oldpo2;
+ int po2 = dp->po2;
int time = dp->time;
int depth = dp->depth;
@@ -218,11 +218,18 @@ struct dive *create_dive_from_plan(struct diveplan *diveplan)
he = oldhe;
}
+ /* Check for SetPoint change */
+ if (oldpo2 != po2) {
+ if (lasttime)
+ add_event(dc, lasttime, 20, 0, po2, "SP change"); // SAMPLE_EVENT_PO2
+ oldpo2 = po2;
+ }
+
/* Create new gas, and gas change event if necessary */
if (o2 != oldo2 || he != oldhe) {
int value = (o2 / 10) | (he / 10 << 16);
add_gas(dive, o2, he);
- add_event(dc, lasttime, 11, 0, value, "gaschange");
+ add_event(dc, lasttime, 25, 0, value, "gaschange"); // SAMPLE_EVENT_GASCHANGE2
oldo2 = o2; oldhe = he;
}
@@ -236,7 +243,6 @@ struct dive *create_dive_from_plan(struct diveplan *diveplan)
sample->depth.mm = depth;
finish_sample(dc);
lasttime = time;
- oldpo2 = po2;
dp = dp->next;
}
if (dc->samples <= 1) {