diff options
Diffstat (limited to 'core/units.h')
-rw-r--r-- | core/units.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/core/units.h b/core/units.h index c9920ac14..2307622e9 100644 --- a/core/units.h +++ b/core/units.h @@ -254,6 +254,17 @@ static inline int mbar_to_PSI(int mbar) return to_PSI(p); } +static inline int32_t altitude_to_pressure(int32_t altitude) // altitude in mm above sea level +{ // returns atmospheric pressure in mbar + return (int32_t) (1013.0 * exp(- altitude / 7800000.0)); +} + + +static inline int32_t pressure_to_altitude(int32_t pressure) // pressure in mbar +{ // returns altitude in mm above sea level + return (int32_t) (log(1013.0 / pressure) * 7800000); +} + /* * We keep our internal data in well-specified units, but * the input and output may come in some random format. This |