view Discovery/Inc/buehlmann.h @ 223:5f535ef6a3db div-fixes-3

Bugfix, minor: properly alternate VPM/Buhlmann in deco loop The idea of the counter in this commit is to compute the opposite deco algorithm in 1:10 calls. So, when Buhlmann is selected, also compute VPM with 1:10 sample rate (and vise versa). The idea is good, but this never worked as the counter was local on the stack, so was 0 for every call here. So, when switching between deco algorithm, it took some refresh cycles as the computations where not in sync. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
author Jan Mulder <jlmulder@xs4all.nl>
date Sun, 31 Mar 2019 15:14:06 +0200
parents 5f11787b4f42
children ff0d23625cd5
line wrap: on
line source

///////////////////////////////////////////////////////////////////////////////
/// -*- coding: UTF-8 -*-
///
/// \file   Discovery/Inc/buehlmann.h
/// \brief	ZHL16+GF decompression algorithm.
/// \author Heinrichs Weikamp
/// \date   2018
///
/// $Id$
///////////////////////////////////////////////////////////////////////////////
/// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh
///
///     This program is free software: you can redistribute it and/or modify
///     it under the terms of the GNU General Public License as published by
///     the Free Software Foundation, either version 3 of the License, or
///     (at your option) any later version.
///
///     This program is distributed in the hope that it will be useful,
///     but WITHOUT ANY WARRANTY; without even the implied warranty of
///     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
///     GNU General Public License for more details.
///
///     You should have received a copy of the GNU General Public License
///     along with this program.  If not, see <http://www.gnu.org/licenses/>.
//////////////////////////////////////////////////////////////////////////////

#ifndef BUEHLMANN_H
#define BUEHLMANN_H

#include "data_central.h"

void buehlmann_init(void);
void buehlmann_calc_deco(SLifeData* pLifeData, SDiveSettings * pDiveSettings, SDecoinfo * pDecoInfo);
void buehlmann_ceiling_calculator(SLifeData* pLifeData, SDiveSettings * pDiveSettings, SDecoinfo * pDecoInfo);
void buehlmann_relative_gradient_calculator(SLifeData* pLifeData, SDiveSettings * pDiveSettings, SDecoinfo * pDecoInfo);
float buehlmann_get_gCNS(void);

#endif /* BUEHLMANN_H */