mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-01 00:13:24 +00:00
Fixing SP handling in planner, adding event
Fixes bug in planner which prevents from bailing out (setpoint = 0). Also introduces events for changing setpoints in planner. It also makes the eventtype for gaschange slightly more consistent by changing it from SAMPLE_EVENT_GASCHANGE (O2 only) to SAMPLE_EVENT_GASCHANGE2 (O2/He). But Subsurface treats them both the same (the distinction comes from libdivecomputer). Signed-off-by: Jan Schubert <Jan.Schubert@GMX.li> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
8a49278740
commit
057253c4eb
1 changed files with 8 additions and 3 deletions
11
planner.c
11
planner.c
|
@ -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,17 @@ struct dive *create_dive_from_plan(struct diveplan *diveplan)
|
|||
he = oldhe;
|
||||
}
|
||||
|
||||
if (oldpo2 != po2) {
|
||||
if (lasttime)
|
||||
add_event(dc, lasttime, 20, 0, po2/1000, "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 +242,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) {
|
||||
|
|
Loading…
Add table
Reference in a new issue