13 #include <linux/i2c-dev.h>
14 #include <i2c/smbus.h>
212 BMP180(
int bmpI2CAddress,
const char* i2cDeviceFilePath);
238 virtual void TurnOn()
override;
250 virtual void TurnOff()
override;
264 virtual std::string
ToString()
const override;
472 int32_t
GetB1()
const;
486 int32_t
GetB2()
const;
500 int32_t
GetMB()
const;
514 int32_t
GetMC()
const;
528 int32_t
GetMD()
const;
BMP180 barometric temperature and pressure sensor (I2C), also deriving altitude from the measured pre...
Definition: BMP180.h:106
void ReadEprom()
Reads all eleven calibration coefficients from the BMP180 EPROM into their member variables.
Definition: BMP180.cpp:265
virtual ~BMP180()
Destroys the sensor, turning it off and freeing the copied device file path.
Definition: BMP180.cpp:71
int32_t myB2
Definition: BMP180.h:128
int32_t GetMD() const
Gets the MD calibration coefficient.
Definition: BMP180.cpp:750
int GetOversamplingMode() const
Gets the sensor's oversampling mode.
Definition: BMP180.cpp:546
int32_t myAC5
Definition: BMP180.h:125
virtual std::string ToString() const override
Serializes the most recently calculated temperature, pressure, and altitude to a string.
Definition: BMP180.cpp:213
float CalculateAltitude()
Approximates the altitude (in meters) from the measured pressure relative to average sea-level pressu...
Definition: BMP180.cpp:486
void ReadSingleEpromFromRegister(int32_t *store, uint8_t reg, int32_t sign)
Reads a single calibration coefficient from the BMP180 EPROM, byte-swapping it from the chip's orderi...
Definition: BMP180.cpp:238
int32_t GetMB() const
Gets the MB calibration coefficient.
Definition: BMP180.cpp:716
int32_t myAC1
EPROM calibration coefficients.
Definition: BMP180.h:121
char * myI2CDeviceFilePath
i2c device file path.
Definition: BMP180.h:118
virtual void TurnOff() override
Closes the i2c device and frees the copied device file path, reporting any close failure through the ...
Definition: BMP180.cpp:156
int myOversamplingMode
BMP180 oversampling mode.
Definition: BMP180.h:115
int32_t GetB2() const
Gets the B2 calibration coefficient.
Definition: BMP180.cpp:699
char * GetI2CDeviceFilePath() const
Gets the i2c device file path.
Definition: BMP180.cpp:563
int32_t myAC3
Definition: BMP180.h:123
int32_t GetMC() const
Gets the MC calibration coefficient.
Definition: BMP180.cpp:733
int32_t GetAC3() const
Gets the AC3 calibration coefficient.
Definition: BMP180.cpp:614
int32_t myAC4
Definition: BMP180.h:124
int32_t myMD
Definition: BMP180.h:131
int GetI2CAddress() const
Gets the sensor's I2C address.
Definition: BMP180.cpp:529
int32_t GetAC4() const
Gets the AC4 calibration coefficient.
Definition: BMP180.cpp:631
int32_t myMC
Definition: BMP180.h:130
int32_t GetAC2() const
Gets the AC2 calibration coefficient.
Definition: BMP180.cpp:597
int32_t ReadRawTemperature()
Reads the raw (uncompensated) temperature value from the sensor, byte-swapped to host ordering.
Definition: BMP180.cpp:309
virtual void TurnOn() override
Opens the i2c device, binds the slave address, and reads the sensor's EPROM calibration coefficients,...
Definition: BMP180.cpp:93
int32_t GetAC1() const
Gets the AC1 calibration coefficient.
Definition: BMP180.cpp:580
int GetFileDescriptor() const
Gets the open i2c device file descriptor.
Definition: BMP180.cpp:512
int myI2CAddress
I2C device address.
Definition: BMP180.h:112
BMP180(int bmpI2CAddress, const char *i2cDeviceFilePath)
Builds a BMP180 bound to the given I2C address, copying the provided i2c device file path.
Definition: BMP180.cpp:19
float CalculateTemperature()
Calculates the compensated temperature (in Celsius) from a raw read using the sensor's calibration co...
Definition: BMP180.cpp:391
int32_t GetAC6() const
Gets the AC6 calibration coefficient.
Definition: BMP180.cpp:665
long CalculatePressure()
Calculates the compensated pressure (in pascal) from raw reads using the sensor's calibration coeffic...
Definition: BMP180.cpp:421
float myRecentlyCalculatedAltitudeInM
Definition: BMP180.h:136
virtual void ProcessRawValues() override
Recomputes and caches the temperature, pressure, and altitude from fresh sensor reads.
Definition: BMP180.cpp:186
int32_t myAC2
Definition: BMP180.h:122
int32_t ReadRawPressure(uint8_t oversamplingMode)
Reads the raw (uncompensated) pressure value from the sensor at the given oversampling mode.
Definition: BMP180.cpp:335
int32_t myAC6
Definition: BMP180.h:126
int32_t GetAC5() const
Gets the AC5 calibration coefficient.
Definition: BMP180.cpp:648
float myRecentlyCalculatedTemperatureInC
Most recently calculated values.
Definition: BMP180.h:134
int32_t myB1
Definition: BMP180.h:127
long myRecentlyCalculatedPressureInHPA
Definition: BMP180.h:135
int myFileDescriptor
File descriptor.
Definition: BMP180.h:109
int32_t myMB
Definition: BMP180.h:129
int32_t GetB1() const
Gets the B1 calibration coefficient.
Definition: BMP180.cpp:682
Abstract base class for every component (sensor, actuator, etc.) the library manages.
Definition: BaseComponent.h:60
RumPi is the library's top-level facade.
Definition: AlertManager.h:6
constexpr int BMP180_PRE_OSS3_CMD
Definition: BMP180.h:34
constexpr int BMP180_PRE_OSS1_WAIT_US
Definition: BMP180.h:38
constexpr int BMP180_REG_MC_H
Definition: BMP180.h:60
constexpr int BMP180_REG_AC6_H
Definition: BMP180.h:48
constexpr int BMP180_REG_MD_H
Definition: BMP180.h:63
constexpr int BMP180_PRE_OSS1
Definition: BMP180.h:26
constexpr int BMP180_REG_AC2_H
Definition: BMP180.h:44
constexpr int BMP180_REG_AC5_H
Definition: BMP180.h:47
constexpr double BMP180_SEA_LEVEL
Definition: BMP180.h:81
constexpr int BMP180_REG_MB_H
Definition: BMP180.h:57
constexpr int BMP180_PRE_OSS0_WAIT_US
Definition: BMP180.h:37
constexpr int BMP180_REG_B1_H
Definition: BMP180.h:51
constexpr int BMP180_REG_AC3_H
Definition: BMP180.h:45
constexpr int BMP180_PRE_OSS3
Definition: BMP180.h:28
constexpr int BMP180_TMP_READ_WAIT_US
Definition: BMP180.h:78
constexpr int BMP180_PRE_OSS2_WAIT_US
Definition: BMP180.h:39
constexpr int BMP180_REG_TMP
Definition: BMP180.h:69
constexpr int BMP180_REG_B2_H
Definition: BMP180.h:54
constexpr int BMP180_CTRL
Definition: BMP180.h:66
constexpr int BMP180_PRE_OSS1_CMD
Definition: BMP180.h:32
constexpr int BMP180_PRE_OSS0_CMD
Definition: BMP180.h:31
static const int32_t BMP180RegisterTable[11][2]
Definition: BMP180.h:84
constexpr int BMP180_REG_PRE
Definition: BMP180.h:72
constexpr int BMP180_REG_AC4_H
Definition: BMP180.h:46
constexpr int BMP180_PRE_OSS3_WAIT_US
Definition: BMP180.h:40
constexpr int BMP180_REG_AC1_H
Definition: BMP180.h:43
constexpr int BMP180_PRE_OSS2
Definition: BMP180.h:27
constexpr int BMP180_PRE_OSS0
Definition: BMP180.h:25
constexpr int BMP180_PRE_OSS2_CMD
Definition: BMP180.h:33
constexpr int BMP180_TMP_READ_CMD
Definition: BMP180.h:75