view Small_CPU/Inc/pressure.h @ 855:012f94ec2fe0 Evo_2_23

Redefine Deco gas creation function: The old function needed a lot of iteration to get through all gases. With the change to define the first gas in PSCR mode as deco gas for calculation (because the actual gas could be not breathable close to surface => deco planing would be based on > 80% nitrogen increasing the deco prediction higher than necessary) the need showed up to somehow define the first gas as deco gas. Instead of manipulating the gas attribute the deco list creation function was changed to create the list based on gas line pointer information instead of index lists. The new function needs less iterations for sorting and is more flexible regarding gas handling.
author Ideenmodellierer
date Mon, 18 Mar 2024 21:52:25 +0100
parents 4093ac18b25c
children
line wrap: on
line source

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef PRESSURE_H
#define PRESSURE_H

#include <stdint.h>

uint8_t init_pressure(void);
void pressure_set_offset (float pressureOffset, float temperatureOffset);

uint8_t pressure_update(void);
void pressure_update_alternating(void);

uint8_t is_init_pressure_done(void);

HAL_StatusTypeDef  pressure_sensor_get_pressure_raw(void);
HAL_StatusTypeDef  pressure_sensor_get_temperature_raw(void);
void pressure_calculation(void);

float get_temperature(void);
float get_pressure_mbar(void);
float get_surface_mbar(void);

uint8_t is_surface_pressure_stable(void);
float set_last_surface_pressure_stable(void);

void init_surface_ring(uint8_t force);
void update_surface_pressure(uint8_t call_rhythm_seconds);

uint32_t demo_modify_temperature_and_pressure(int32_t divetime_in_seconds, uint8_t subseconds, float ceiling_mbar);

#endif /* PRESSURE_H */