Path: blob/master/libraries/AP_Baro/AP_Baro_LPS2XH.h
9316 views
#pragma once12#include "AP_Baro_Backend.h"34#if AP_BARO_LPS2XH_ENABLED56#include <AP_HAL/AP_HAL.h>7#include <AP_HAL/Device.h>8#include <AP_Math/AP_Math.h>910#define HAL_BARO_LPS25H_I2C_BUS 01112#ifndef HAL_BARO_LPS25H_I2C_ADDR13# define HAL_BARO_LPS25H_I2C_ADDR 0x5D14#endif151617class AP_Baro_LPS2XH : public AP_Baro_Backend18{19public:20enum LPS2XH_TYPE {21BARO_LPS22H = 0,22BARO_LPS25H = 1,23};2425AP_Baro_LPS2XH(AP_Baro &baro, AP_HAL::Device &dev);2627/* AP_Baro public interface: */28void update() override;2930static AP_Baro_Backend *probe(AP_Baro &baro, AP_HAL::Device &dev);31static AP_Baro_Backend *probe_InvensenseIMU(AP_Baro &baro, AP_HAL::Device &dev, uint8_t imu_address);3233private:34virtual ~AP_Baro_LPS2XH(void) {};3536bool _init(void);37void _timer(void);38void _update_temperature(void);39void _update_pressure(void);40bool _imu_i2c_init(uint8_t imu_address);4142bool _check_whoami(void);4344AP_HAL::Device *_dev;4546uint8_t _instance;47float _pressure_sum;48uint32_t _pressure_count;49float _temperature;5051uint32_t CallTime = 0;5253enum LPS2XH_TYPE _lps2xh_type;54};5556#endif // AP_BARO_LPS2XH_ENABLED575859