Moved to actions, doxyified

This commit is contained in:
dherrada
2020-06-09 14:01:03 -04:00
parent b8ab5a752c
commit e42eabf784
5 changed files with 368 additions and 307 deletions

32
.github/workflows/githubci.yml vendored Normal file
View File

@ -0,0 +1,32 @@
name: Arduino Library CI
on: [pull_request, push, repository_dispatch]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v1
with:
python-version: '3.x'
- uses: actions/checkout@v2
- uses: actions/checkout@v2
with:
repository: adafruit/ci-arduino
path: ci
- name: pre-install
run: bash ci/actions_install.sh
- name: test platforms
run: python3 ci/build_platform.py main_platforms
- name: clang
run: python3 ci/run-clang-format.py -e "ci/*" -e "bin/*" -r .
- name: doxygen
env:
GH_REPO_TOKEN: ${{ secrets.GH_REPO_TOKEN }}
PRETTYNAME : "Adafruit BMP085 Unified"
run: bash ci/doxy_gen_and_deploy.sh

View File

@ -1,41 +1,54 @@
/***************************************************************************
This is a library for the BMP085 pressure sensor
/*!
* @file Adafruit_BMP085_U.cpp
*
* @mainpage Adafruit BMP085 Pressure Sensor
*
* @section intro_sec Introduction
*
* This is a library for the BMP085 pressure sensor
*
* Designed specifically to work with the Adafruit BMP085 or BMP180 Breakout
* ----> http://www.adafruit.com/products/391
* ----> http://www.adafruit.com/products/1603
*
* These displays use I2C to communicate, 2 pins are required to interface.
*
* Adafruit invests time and resources providing this open source code,
* please support Adafruit andopen-source hardware by purchasing products
* from Adafruit!
*
* @section author Author
*
* Written by Kevin Townsend for Adafruit Industries.
*
* @section license License
* BSD license, all text above must be included in any redistribution
*/
Designed specifically to work with the Adafruit BMP085 or BMP180 Breakout
----> http://www.adafruit.com/products/391
----> http://www.adafruit.com/products/1603
These displays use I2C to communicate, 2 pins are required to interface.
Adafruit invests time and resources providing this open source code,
please support Adafruit andopen-source hardware by purchasing products
from Adafruit!
Written by Kevin Townsend for Adafruit Industries.
BSD license, all text above must be included in any redistribution
***************************************************************************/
#if ARDUINO >= 100
#include "Arduino.h"
#include "Arduino.h"
#else
#include "WProgram.h"
#include "WProgram.h"
#endif
#ifdef __AVR_ATtiny85__
#include "TinyWireM.h"
#define Wire TinyWireM
#include "TinyWireM.h"
#define Wire TinyWireM
#else
#include <Wire.h>
#include <Wire.h>
#endif
#include <math.h>
#include <limits.h>
#include <math.h>
#include "Adafruit_BMP085_U.h"
static bmp085_calib_data _bmp085_coeffs; // Last read accelerometer data will be available here
static bmp085_calib_data
_bmp085_coeffs; // Last read accelerometer data will be available here
static uint8_t _bmp085Mode;
#define BMP085_USE_DATASHEET_VALS (0) /* Set to 1 for sanity check */
#define BMP085_USE_DATASHEET_VALS \
(0) //!< Set to 1 for sanity check, when true, will use values from datasheet
/***************************************************************************
PRIVATE FUNCTIONS
@ -46,16 +59,15 @@ static uint8_t _bmp085Mode;
@brief Writes an 8 bit value over I2C
*/
/**************************************************************************/
static void writeCommand(byte reg, byte value)
{
static void writeCommand(byte reg, byte value) {
Wire.beginTransmission((uint8_t)BMP085_ADDRESS);
#if ARDUINO >= 100
#if ARDUINO >= 100
Wire.write((uint8_t)reg);
Wire.write((uint8_t)value);
#else
#else
Wire.send(reg);
Wire.send(value);
#endif
#endif
Wire.endTransmission();
}
@ -64,21 +76,20 @@ static void writeCommand(byte reg, byte value)
@brief Reads an 8 bit value over I2C
*/
/**************************************************************************/
static void read8(byte reg, uint8_t *value)
{
static void read8(byte reg, uint8_t *value) {
Wire.beginTransmission((uint8_t)BMP085_ADDRESS);
#if ARDUINO >= 100
#if ARDUINO >= 100
Wire.write((uint8_t)reg);
#else
#else
Wire.send(reg);
#endif
#endif
Wire.endTransmission();
Wire.requestFrom((uint8_t)BMP085_ADDRESS, (byte)1);
#if ARDUINO >= 100
#if ARDUINO >= 100
*value = Wire.read();
#else
#else
*value = Wire.receive();
#endif
#endif
Wire.endTransmission();
}
@ -87,21 +98,20 @@ static void read8(byte reg, uint8_t *value)
@brief Reads a 16 bit value over I2C
*/
/**************************************************************************/
static void read16(byte reg, uint16_t *value)
{
static void read16(byte reg, uint16_t *value) {
Wire.beginTransmission((uint8_t)BMP085_ADDRESS);
#if ARDUINO >= 100
#if ARDUINO >= 100
Wire.write((uint8_t)reg);
#else
#else
Wire.send(reg);
#endif
#endif
Wire.endTransmission();
Wire.requestFrom((uint8_t)BMP085_ADDRESS, (byte)2);
#if ARDUINO >= 100
#if ARDUINO >= 100
*value = (Wire.read() << 8) | Wire.read();
#else
#else
*value = (Wire.receive() << 8) | Wire.receive();
#endif
#endif
Wire.endTransmission();
}
@ -110,8 +120,7 @@ static void read16(byte reg, uint16_t *value)
@brief Reads a signed 16 bit value over I2C
*/
/**************************************************************************/
static void readS16(byte reg, int16_t *value)
{
static void readS16(byte reg, int16_t *value) {
uint16_t i;
read16(reg, &i);
*value = (int16_t)i;
@ -122,9 +131,8 @@ static void readS16(byte reg, int16_t *value)
@brief Reads the factory-set coefficients
*/
/**************************************************************************/
static void readCoefficients(void)
{
#if BMP085_USE_DATASHEET_VALS
static void readCoefficients(void) {
#if BMP085_USE_DATASHEET_VALS
_bmp085_coeffs.ac1 = 408;
_bmp085_coeffs.ac2 = -72;
_bmp085_coeffs.ac3 = -14383;
@ -137,7 +145,7 @@ static void readCoefficients(void)
_bmp085_coeffs.mc = -8711;
_bmp085_coeffs.md = 2868;
_bmp085Mode = 0;
#else
#else
readS16(BMP085_REGISTER_CAL_AC1, &_bmp085_coeffs.ac1);
readS16(BMP085_REGISTER_CAL_AC2, &_bmp085_coeffs.ac2);
readS16(BMP085_REGISTER_CAL_AC3, &_bmp085_coeffs.ac3);
@ -149,7 +157,7 @@ static void readCoefficients(void)
readS16(BMP085_REGISTER_CAL_MB, &_bmp085_coeffs.mb);
readS16(BMP085_REGISTER_CAL_MC, &_bmp085_coeffs.mc);
readS16(BMP085_REGISTER_CAL_MD, &_bmp085_coeffs.md);
#endif
#endif
}
/**************************************************************************/
@ -157,17 +165,16 @@ static void readCoefficients(void)
*/
/**************************************************************************/
static void readRawTemperature(int32_t *temperature)
{
#if BMP085_USE_DATASHEET_VALS
static void readRawTemperature(int32_t *temperature) {
#if BMP085_USE_DATASHEET_VALS
*temperature = 27898;
#else
#else
uint16_t t;
writeCommand(BMP085_REGISTER_CONTROL, BMP085_REGISTER_READTEMPCMD);
delay(5);
read16(BMP085_REGISTER_TEMPDATA, &t);
*temperature = t;
#endif
#endif
}
/**************************************************************************/
@ -175,18 +182,17 @@ static void readRawTemperature(int32_t *temperature)
*/
/**************************************************************************/
static void readRawPressure(int32_t *pressure)
{
#if BMP085_USE_DATASHEET_VALS
static void readRawPressure(int32_t *pressure) {
#if BMP085_USE_DATASHEET_VALS
*pressure = 23843;
#else
#else
uint8_t p8;
uint16_t p16;
int32_t p32;
writeCommand(BMP085_REGISTER_CONTROL, BMP085_REGISTER_READPRESSURECMD + (_bmp085Mode << 6));
switch(_bmp085Mode)
{
writeCommand(BMP085_REGISTER_CONTROL,
BMP085_REGISTER_READPRESSURECMD + (_bmp085Mode << 6));
switch (_bmp085Mode) {
case BMP085_MODE_ULTRALOWPOWER:
delay(5);
break;
@ -204,12 +210,12 @@ static void readRawPressure(int32_t *pressure)
read16(BMP085_REGISTER_PRESSUREDATA, &p16);
p32 = (uint32_t)p16 << 8;
read8(BMP085_REGISTER_PRESSUREDATA+2, &p8);
read8(BMP085_REGISTER_PRESSUREDATA + 2, &p8);
p32 += p8;
p32 >>= (8 - _bmp085Mode);
*pressure = p32;
#endif
#endif
}
/**************************************************************************/
@ -218,12 +224,13 @@ static void readRawPressure(int32_t *pressure)
*/
/**************************************************************************/
int32_t Adafruit_BMP085_Unified::computeB5(int32_t ut) {
int32_t X1 = (ut - (int32_t)_bmp085_coeffs.ac6) * ((int32_t)_bmp085_coeffs.ac5) >> 15;
int32_t X2 = ((int32_t)_bmp085_coeffs.mc << 11) / (X1+(int32_t)_bmp085_coeffs.md);
int32_t X1 =
(ut - (int32_t)_bmp085_coeffs.ac6) * ((int32_t)_bmp085_coeffs.ac5) >> 15;
int32_t X2 =
((int32_t)_bmp085_coeffs.mc << 11) / (X1 + (int32_t)_bmp085_coeffs.md);
return X1 + X2;
}
/***************************************************************************
CONSTRUCTOR
***************************************************************************/
@ -246,22 +253,19 @@ Adafruit_BMP085_Unified::Adafruit_BMP085_Unified(int32_t sensorID) {
@brief Setups the HW
*/
/**************************************************************************/
bool Adafruit_BMP085_Unified::begin(bmp085_mode_t mode)
{
bool Adafruit_BMP085_Unified::begin(bmp085_mode_t mode) {
// Enable I2C
Wire.begin();
/* Mode boundary check */
if ((mode > BMP085_MODE_ULTRAHIGHRES) || (mode < 0))
{
if ((mode > BMP085_MODE_ULTRAHIGHRES) || (mode < 0)) {
mode = BMP085_MODE_ULTRAHIGHRES;
}
/* Make sure we have the right device */
uint8_t id;
read8(BMP085_REGISTER_CHIPID, &id);
if(id != 0x55)
{
if (id != 0x55) {
return false;
}
@ -279,8 +283,7 @@ bool Adafruit_BMP085_Unified::begin(bmp085_mode_t mode)
@brief Gets the compensated pressure level in kPa
*/
/**************************************************************************/
void Adafruit_BMP085_Unified::getPressure(float *pressure)
{
void Adafruit_BMP085_Unified::getPressure(float *pressure) {
int32_t ut = 0, up = 0, compp = 0;
int32_t x1, x2, b5, b6, x3, b3, p;
uint32_t b4, b7;
@ -297,19 +300,16 @@ void Adafruit_BMP085_Unified::getPressure(float *pressure)
x1 = (_bmp085_coeffs.b2 * ((b6 * b6) >> 12)) >> 11;
x2 = (_bmp085_coeffs.ac2 * b6) >> 11;
x3 = x1 + x2;
b3 = (((((int32_t) _bmp085_coeffs.ac1) * 4 + x3) << _bmp085Mode) + 2) >> 2;
b3 = (((((int32_t)_bmp085_coeffs.ac1) * 4 + x3) << _bmp085Mode) + 2) >> 2;
x1 = (_bmp085_coeffs.ac3 * b6) >> 13;
x2 = (_bmp085_coeffs.b1 * ((b6 * b6) >> 12)) >> 16;
x3 = ((x1 + x2) + 2) >> 2;
b4 = (_bmp085_coeffs.ac4 * (uint32_t) (x3 + 32768)) >> 15;
b7 = ((uint32_t) (up - b3) * (50000 >> _bmp085Mode));
b4 = (_bmp085_coeffs.ac4 * (uint32_t)(x3 + 32768)) >> 15;
b7 = ((uint32_t)(up - b3) * (50000 >> _bmp085Mode));
if (b7 < 0x80000000)
{
if (b7 < 0x80000000) {
p = (b7 << 1) / b4;
}
else
{
} else {
p = (b7 / b4) << 1;
}
@ -327,24 +327,23 @@ void Adafruit_BMP085_Unified::getPressure(float *pressure)
@brief Reads the temperatures in degrees Celsius
*/
/**************************************************************************/
void Adafruit_BMP085_Unified::getTemperature(float *temp)
{
void Adafruit_BMP085_Unified::getTemperature(float *temp) {
int32_t UT, B5; // following ds convention
float t;
readRawTemperature(&UT);
#if BMP085_USE_DATASHEET_VALS
#if BMP085_USE_DATASHEET_VALS
// use datasheet numbers!
UT = 27898;
_bmp085_coeffs.ac6 = 23153;
_bmp085_coeffs.ac5 = 32757;
_bmp085_coeffs.mc = -8711;
_bmp085_coeffs.md = 2868;
#endif
#endif
B5 = computeB5(UT);
t = (B5+8) >> 4;
t = (B5 + 8) >> 4;
t /= 10;
*temp = t;
@ -359,8 +358,8 @@ void Adafruit_BMP085_Unified::getTemperature(float *temp)
@param atmospheric Atmospheric pressure in hPa
*/
/**************************************************************************/
float Adafruit_BMP085_Unified::pressureToAltitude(float seaLevel, float atmospheric)
{
float Adafruit_BMP085_Unified::pressureToAltitude(float seaLevel,
float atmospheric) {
// Equation taken from BMP180 datasheet (page 16):
// http://www.adafruit.com/datasheets/BST-BMP180-DS000-09.pdf
@ -387,8 +386,9 @@ float Adafruit_BMP085_Unified::pressureToAltitude(float seaLevel, float atmosphe
@param temp Temperature in degrees Celsius
*/
/**************************************************************************/
float Adafruit_BMP085_Unified::pressureToAltitude(float seaLevel, float atmospheric, float temp)
{
float Adafruit_BMP085_Unified::pressureToAltitude(float seaLevel,
float atmospheric,
float temp) {
return pressureToAltitude(seaLevel, atmospheric);
}
@ -401,8 +401,8 @@ float Adafruit_BMP085_Unified::pressureToAltitude(float seaLevel, float atmosphe
@param atmospheric Atmospheric pressure in hPa
*/
/**************************************************************************/
float Adafruit_BMP085_Unified::seaLevelForAltitude(float altitude, float atmospheric)
{
float Adafruit_BMP085_Unified::seaLevelForAltitude(float altitude,
float atmospheric) {
// Equation taken from BMP180 datasheet (page 17):
// http://www.adafruit.com/datasheets/BST-BMP180-DS000-09.pdf
@ -410,7 +410,7 @@ float Adafruit_BMP085_Unified::seaLevelForAltitude(float altitude, float atmosph
// at high altitude. See this thread for more information:
// http://forums.adafruit.com/viewtopic.php?f=22&t=58064
return atmospheric / pow(1.0 - (altitude/44330.0), 5.255);
return atmospheric / pow(1.0 - (altitude / 44330.0), 5.255);
}
/**************************************************************************/
@ -429,26 +429,24 @@ float Adafruit_BMP085_Unified::seaLevelForAltitude(float altitude, float atmosph
@param temp Temperature in degrees Celsius
*/
/**************************************************************************/
float Adafruit_BMP085_Unified::seaLevelForAltitude(float altitude, float atmospheric, float temp)
{
float Adafruit_BMP085_Unified::seaLevelForAltitude(float altitude,
float atmospheric,
float temp) {
return seaLevelForAltitude(altitude, atmospheric);
}
/**************************************************************************/
/*!
@brief Provides the sensor_t data for this sensor
*/
/**************************************************************************/
void Adafruit_BMP085_Unified::getSensor(sensor_t *sensor)
{
void Adafruit_BMP085_Unified::getSensor(sensor_t *sensor) {
/* Clear the sensor_t object */
memset(sensor, 0, sizeof(sensor_t));
/* Insert the sensor name in the fixed length char array */
strncpy (sensor->name, "BMP085", sizeof(sensor->name) - 1);
sensor->name[sizeof(sensor->name)- 1] = 0;
strncpy(sensor->name, "BMP085", sizeof(sensor->name) - 1);
sensor->name[sizeof(sensor->name) - 1] = 0;
sensor->version = 1;
sensor->sensor_id = _sensorID;
sensor->type = SENSOR_TYPE_PRESSURE;
@ -463,8 +461,7 @@ void Adafruit_BMP085_Unified::getSensor(sensor_t *sensor)
@brief Reads the sensor and returns the data as a sensors_event_t
*/
/**************************************************************************/
bool Adafruit_BMP085_Unified::getEvent(sensors_event_t *event)
{
bool Adafruit_BMP085_Unified::getEvent(sensors_event_t *event) {
float pressure_kPa;
/* Clear the event */

View File

@ -1,120 +1,152 @@
/***************************************************************************
This is a library for the BMP085 pressure sensor
/*!
* @file Adafruit_BMP085_U.h
*/
Designed specifically to work with the Adafruit BMP085 or BMP180 Breakout
----> http://www.adafruit.com/products/391
----> http://www.adafruit.com/products/1603
These displays use I2C to communicate, 2 pins are required to interface.
Adafruit invests time and resources providing this open source code,
please support Adafruit andopen-source hardware by purchasing products
from Adafruit!
Written by Kevin Townsend for Adafruit Industries.
BSD license, all text above must be included in any redistribution
***************************************************************************/
#ifndef __BMP085_H__
#define __BMP085_H__
#if (ARDUINO >= 100)
#include "Arduino.h"
#include "Arduino.h"
#else
#include "WProgram.h"
#include "WProgram.h"
#endif
#include <Adafruit_Sensor.h>
#ifdef __AVR_ATtiny85__
#include "TinyWireM.h"
#define Wire TinyWireM
#include "TinyWireM.h"
#define Wire TinyWireM
#else
#include <Wire.h>
#include <Wire.h>
#endif
/*=========================================================================
I2C ADDRESS/BITS
-----------------------------------------------------------------------*/
#define BMP085_ADDRESS (0x77)
/*=========================================================================*/
/*!
* @brief BMP085 I2C address/bits
*/
#define BMP085_ADDRESS (0x77)
/*=========================================================================
REGISTERS
-----------------------------------------------------------------------*/
enum
{
BMP085_REGISTER_CAL_AC1 = 0xAA, // R Calibration data (16 bits)
BMP085_REGISTER_CAL_AC2 = 0xAC, // R Calibration data (16 bits)
BMP085_REGISTER_CAL_AC3 = 0xAE, // R Calibration data (16 bits)
BMP085_REGISTER_CAL_AC4 = 0xB0, // R Calibration data (16 bits)
BMP085_REGISTER_CAL_AC5 = 0xB2, // R Calibration data (16 bits)
BMP085_REGISTER_CAL_AC6 = 0xB4, // R Calibration data (16 bits)
BMP085_REGISTER_CAL_B1 = 0xB6, // R Calibration data (16 bits)
BMP085_REGISTER_CAL_B2 = 0xB8, // R Calibration data (16 bits)
BMP085_REGISTER_CAL_MB = 0xBA, // R Calibration data (16 bits)
BMP085_REGISTER_CAL_MC = 0xBC, // R Calibration data (16 bits)
BMP085_REGISTER_CAL_MD = 0xBE, // R Calibration data (16 bits)
BMP085_REGISTER_CHIPID = 0xD0,
BMP085_REGISTER_VERSION = 0xD1,
BMP085_REGISTER_SOFTRESET = 0xE0,
BMP085_REGISTER_CONTROL = 0xF4,
BMP085_REGISTER_TEMPDATA = 0xF6,
BMP085_REGISTER_PRESSUREDATA = 0xF6,
BMP085_REGISTER_READTEMPCMD = 0x2E,
BMP085_REGISTER_READPRESSURECMD = 0x34
};
/*=========================================================================*/
/*!
* @brief BMP085 I2C registers
*/
enum {
BMP085_REGISTER_CAL_AC1 = 0xAA, //!< R Calibration data (16 bits)
BMP085_REGISTER_CAL_AC2 = 0xAC, //!< R Calibration data (16 bits)
BMP085_REGISTER_CAL_AC3 = 0xAE, //!< R Calibration data (16 bits)
BMP085_REGISTER_CAL_AC4 = 0xB0, //!< R Calibration data (16 bits)
BMP085_REGISTER_CAL_AC5 = 0xB2, //!< R Calibration data (16 bits)
BMP085_REGISTER_CAL_AC6 = 0xB4, //!< R Calibration data (16 bits)
BMP085_REGISTER_CAL_B1 = 0xB6, //!< R Calibration data (16 bits)
BMP085_REGISTER_CAL_B2 = 0xB8, //!< R Calibration data (16 bits)
BMP085_REGISTER_CAL_MB = 0xBA, //!< R Calibration data (16 bits)
BMP085_REGISTER_CAL_MC = 0xBC, //!< R Calibration data (16 bits)
BMP085_REGISTER_CAL_MD = 0xBE, //!< R Calibration data (16 bits)
BMP085_REGISTER_CHIPID = 0xD0, //!< Register that contains the chip ID
BMP085_REGISTER_VERSION = 0xD1, //!< Register that contains the chip version
BMP085_REGISTER_SOFTRESET = 0xE0, //!< Register for doing a soft reset
BMP085_REGISTER_CONTROL = 0xF4, //!< Control register
BMP085_REGISTER_TEMPDATA = 0xF6, //!< Temperature data register
BMP085_REGISTER_PRESSUREDATA = 0xF6, //!< Pressure data register
BMP085_REGISTER_READTEMPCMD =
0x2E, //!< Read temperature control register value
BMP085_REGISTER_READPRESSURECMD =
0x34 //!< Read pressure control register value
};
/*=========================================================================
MODE SETTINGS
-----------------------------------------------------------------------*/
typedef enum
{
/*!
* @brief BMP085 mode settings
*/
typedef enum {
BMP085_MODE_ULTRALOWPOWER = 0,
BMP085_MODE_STANDARD = 1,
BMP085_MODE_HIGHRES = 2,
BMP085_MODE_ULTRAHIGHRES = 3
} bmp085_mode_t;
} bmp085_mode_t;
/*=========================================================================*/
/*=========================================================================
CALIBRATION DATA
-----------------------------------------------------------------------*/
typedef struct
{
int16_t ac1;
int16_t ac2;
int16_t ac3;
uint16_t ac4;
uint16_t ac5;
uint16_t ac6;
int16_t b1;
int16_t b2;
int16_t mb;
int16_t mc;
int16_t md;
} bmp085_calib_data;
/*=========================================================================*/
/*!
* @brief Calibration data
*/
typedef struct {
int16_t ac1; //!< R calibration coefficient (16-bits)
int16_t ac2; //!< R calibration coefficient (16-bits)
int16_t ac3; //!< R calibration coefficient (16-bits)
uint16_t ac4; //!< R calibration coefficient (16-bits)
uint16_t ac5; //!< R calibration coefficient (16-bits)
uint16_t ac6; //!< R calibration coefficient (16-bits)
int16_t b1; //!< R calibration coefficient (16-bits)
int16_t b2; //!< R calibration coefficient (16-bits)
int16_t mb; //!< R calibration coefficient (16-bits)
int16_t mc; //!< R calibration coefficient (16-bits)
int16_t md; //!< R calibration coefficient (16-bits)
} bmp085_calib_data;
class Adafruit_BMP085_Unified : public Adafruit_Sensor
{
public:
Adafruit_BMP085_Unified(int32_t sensorID = -1);
/*!
* @brief Class that stores state and functions for interacting with BMP183
*/
class Adafruit_BMP085_Unified : public Adafruit_Sensor {
public:
Adafruit_BMP085_Unified(
int32_t sensorID = -1); //!< @param sensorID ID of the BMP085 sensor
/*!
* @brief Starts I2C connection
* @param mode Mode to set, ultra high-res by default
* @return Returns true if successful
*/
bool begin(bmp085_mode_t mode = BMP085_MODE_ULTRAHIGHRES);
/*!
* @brief Gets the temperature over I2C from the BMP085
* @param temp Temperature
* @return Returns the temperature
*/
void getTemperature(float *temp);
/*!
* @brief Gets the pressure over I2C from the BMP085
* @param pressure Pressure
* @return Returns the pressure
*/
void getPressure(float *pressure);
/*!
* @brief Calculates absolute pressure
* @param seaLevel Pressure at sea level
* @param atmospheric measured pressure
* @return Absolute altitude
*/
float pressureToAltitude(float seaLevel, float atmospheric);
/*!
* @brief Calculates pressure at sea level
* @param altitude Altitude
* @param atmospheric measured pressure
* @return Pressure at sea level
*/
float seaLevelForAltitude(float altitude, float atmospheric);
// Note that the next two functions are just for compatibility with old
// code that passed the temperature as a third parameter. A newer
// calculation is used which does not need temperature.
/*!
* @brief Calculates absolute pressure
* @param seaLevel Pressure at sea level
* @param atmospheric Measured pressure
* @param temp Temperature
* @return Absolute altitude
*/
float pressureToAltitude(float seaLevel, float atmospheric, float temp);
/*!
* @brief Calculates pressure at sea level
* @param altitude Altitude
* @param atmospheric measured pressure
* @param temp Temperature
* @return Pressure at sea level
*/
float seaLevelForAltitude(float altitude, float atmospheric, float temp);
bool getEvent(sensors_event_t*);
void getSensor(sensor_t*);
/*!
* @brief Used to read the sensor
* @return Returns an event
*/
bool getEvent(sensors_event_t *);
void getSensor(sensor_t *);
private:
private:
int32_t computeB5(int32_t ut);
int32_t _sensorID;
};

View File

@ -1,4 +1,4 @@
# Adafruit Unified BMP085/BMP180 Driver (Barometric Pressure Sensor) #
# Adafruit Unified BMP085/BMP180 Driver (Barometric Pressure Sensor) [![Build Status](https://github.com/adafruit/Adafruit_BMP085_Unified/workflows/Arduino%20Library%20CI/badge.svg)](https://github.com/adafruit/Adafruit_BMP085_Unified/actions)[![Documentation](https://github.com/adafruit/ci-arduino/blob/master/assets/doxygen_badge.svg)](http://adafruit.github.io/Adafruit_BMP085_Unified/html/index.html)
This driver is for the Adafruit BMP085 Breakout (http://www.adafruit.com/products/391) or BMP180 breakout (http://www.adafruit.com/products/1603), and is based on Adafruit's Unified Sensor Library (Adafruit_Sensor).

View File

@ -1,5 +1,5 @@
name=Adafruit BMP085 Unified
version=1.0.1
version=1.1.0
author=Adafruit
maintainer=Adafruit <info@adafruit.com>
sentence=Unified sensor driver for Adafruit's BMP085 & BMP180 breakouts