Standardised how divedatapoints are created.

Changed the way dive data points for OC cylinders to be added to the
dive plan are created in `createTemporaryPlan()` in
`diveplannermodel.cpp`. This now uses `plan_add_segment()` like all
other places where dive data points are added, in particular the planner
tests.
This also allowed for `create_dp()` to be made static.

Signed-off-by: Michael Keller <github@ike.ch>
This commit is contained in:
Michael Keller 2023-02-17 16:24:53 +13:00 committed by Robert C. Helling
parent ec0c6833a0
commit ab7b9329c0
3 changed files with 9 additions and 16 deletions

View file

@ -339,7 +339,7 @@ void free_dps(struct diveplan *diveplan)
diveplan->dp = NULL;
}
struct divedatapoint *create_dp(int time_incr, int depth, int cylinderid, int po2)
static struct divedatapoint *create_dp(int time_incr, int depth, int cylinderid, int po2)
{
struct divedatapoint *dp;

View file

@ -51,7 +51,6 @@ extern char *get_planner_disclaimer_formatted();
extern void free_dps(struct diveplan *diveplan);
struct divedatapoint *plan_add_segment(struct diveplan *diveplan, int duration, int depth, int cylinderid, int po2, bool entered, enum divemode_t divemode);
struct divedatapoint *create_dp(int time_incr, int depth, int cylinderid, int po2);
#if DEBUG_PLAN
void dump_plan(struct diveplan *diveplan);
#endif

View file

@ -1025,6 +1025,14 @@ void DivePlannerPointsModel::createTemporaryPlan()
{
// Get the user-input and calculate the dive info
free_dps(&diveplan);
for (int i = 0; i < d->cylinders.nr; i++) {
cylinder_t *cyl = get_cylinder(d, i);
if (cyl->depth.mm && cyl->cylinder_use == OC_GAS) {
plan_add_segment(&diveplan, 0, cyl->depth.mm, i, 0, false, OC);
}
}
int lastIndex = -1;
for (int i = 0; i < rowCount(); i++) {
divedatapoint p = at(i);
@ -1039,20 +1047,6 @@ void DivePlannerPointsModel::createTemporaryPlan()
plan_add_segment(&diveplan, deltaT, p.depth.mm, p.cylinderid, p.setpoint, true, p.divemode);
}
struct divedatapoint *dp = NULL;
for (int i = 0; i < d->cylinders.nr; i++) {
cylinder_t *cyl = get_cylinder(d, i);
if (cyl->depth.mm && cyl->cylinder_use == OC_GAS) {
dp = create_dp(0, cyl->depth.mm, i, 0);
if (diveplan.dp) {
dp->next = diveplan.dp;
diveplan.dp = dp;
} else {
dp->next = NULL;
diveplan.dp = dp;
}
}
}
#if DEBUG_PLAN
dump_plan(&diveplan);
#endif