CppGenerate/include/altitude_calculator.hpp

90 lines
2.3 KiB
C++
Raw Permalink Normal View History

2026-04-17 09:17:56 +00:00
#ifndef HSM_ALTITUDE_CALCULATOR_HPP
#define HSM_ALTITUDE_CALCULATOR_HPP
#include <cstdint>
/**
* @brief
*
*
* 1.
* 2.
* 3.
* 4.
*/
class AltitudeCalculator {
public:
/**
* @brief
* @param sea_level_pressure hPa
*/
explicit AltitudeCalculator(float sea_level_pressure = 1013.25f);
/**
* @brief
* @param pressure hPa
* @return
*/
float calculateAltitude(float pressure) const;
/**
* @brief
* @param current_altitude
* @param base_altitude
* @return
*/
static float calculateRelativeHeight(float current_altitude, float base_altitude);
/**
* @brief
* @param pressure hPa
*/
void setSeaLevelPressure(float pressure);
/**
* @brief
* @return hPa
*/
float getSeaLevelPressure() const { return sea_level_pressure_; }
/**
* @brief
* @param meters
* @return
*/
static float metersToFeet(float meters);
/**
* @brief
* @param feet
* @return
*/
static float feetToMeters(float feet);
/**
* @brief
* @param pressure
* @return
*/
static bool isValidPressure(float pressure);
/**
* @brief
* @param altitude
* @return
*/
static bool isValidAltitude(float altitude);
private:
float sea_level_pressure_; // 海平面气压值hPa
/**
* @brief
* @param pressure
* @param sea_level_pressure
* @return
*/
static float barometricFormula(float pressure, float sea_level_pressure);
};
#endif // HSM_ALTITUDE_CALCULATOR_HPP