mirror of https://github.com/arendst/Tasmota.git
Added option to set i2c address in measure...Once in lib
This commit is contained in:
parent
9d2d22558c
commit
325564fbc7
|
@ -183,7 +183,23 @@ int16_t LOLIN_HP303B::standby(void)
|
||||||
*/
|
*/
|
||||||
int16_t LOLIN_HP303B::measureTempOnce(float &result)
|
int16_t LOLIN_HP303B::measureTempOnce(float &result)
|
||||||
{
|
{
|
||||||
return measureTempOnce(result, m_tempOsr);
|
return measureTempOnce(result, m_slaveAddress, m_tempOsr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* performs one temperature measurement and writes result to the given address
|
||||||
|
*
|
||||||
|
* &result: reference to a 32-Bit signed Integer value where the result will be written
|
||||||
|
* It will not be written if result==NULL
|
||||||
|
* returns: 0 on success
|
||||||
|
* -4 if the HP303B is could not finish its measurement in time
|
||||||
|
* -3 if the HP303B is already busy
|
||||||
|
* -2 if the object initialization failed
|
||||||
|
* -1 on other fail
|
||||||
|
*/
|
||||||
|
int16_t LOLIN_HP303B::measureTempOnce(float &result, uint8_t slaveAddress)
|
||||||
|
{
|
||||||
|
return measureTempOnce(result, slaveAddress, m_tempOsr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -202,8 +218,11 @@ int16_t LOLIN_HP303B::measureTempOnce(float &result)
|
||||||
* -2 if the object initialization failed
|
* -2 if the object initialization failed
|
||||||
* -1 on other fail
|
* -1 on other fail
|
||||||
*/
|
*/
|
||||||
int16_t LOLIN_HP303B::measureTempOnce(float &result, uint8_t oversamplingRate)
|
int16_t LOLIN_HP303B::measureTempOnce(float &result, uint8_t slaveAddress, uint8_t oversamplingRate)
|
||||||
{
|
{
|
||||||
|
//Set I2C bus connection
|
||||||
|
m_slaveAddress = slaveAddress;
|
||||||
|
|
||||||
//Start measurement
|
//Start measurement
|
||||||
int16_t ret = startMeasureTempOnce(oversamplingRate);
|
int16_t ret = startMeasureTempOnce(oversamplingRate);
|
||||||
if(ret!=HP303B__SUCCEEDED)
|
if(ret!=HP303B__SUCCEEDED)
|
||||||
|
@ -288,7 +307,23 @@ int16_t LOLIN_HP303B::startMeasureTempOnce(uint8_t oversamplingRate)
|
||||||
*/
|
*/
|
||||||
int16_t LOLIN_HP303B::measurePressureOnce(float &result)
|
int16_t LOLIN_HP303B::measurePressureOnce(float &result)
|
||||||
{
|
{
|
||||||
return measurePressureOnce(result, m_prsOsr);
|
return measurePressureOnce(result, m_slaveAddress, m_prsOsr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* performs one pressure measurement and writes result to the given address
|
||||||
|
*
|
||||||
|
* &result: reference to a 32-Bit signed Integer value where the result will be written
|
||||||
|
* It will not be written if result==NULL
|
||||||
|
* returns: 0 on success
|
||||||
|
* -4 if the HP303B is could not finish its measurement in time
|
||||||
|
* -3 if the HP303B is already busy
|
||||||
|
* -2 if the object initialization failed
|
||||||
|
* -1 on other fail
|
||||||
|
*/
|
||||||
|
int16_t LOLIN_HP303B::measurePressureOnce(float &result, uint8_t slaveAddress)
|
||||||
|
{
|
||||||
|
return measurePressureOnce(result, slaveAddress, m_prsOsr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -307,8 +342,11 @@ int16_t LOLIN_HP303B::measurePressureOnce(float &result)
|
||||||
* -2 if the object initialization failed
|
* -2 if the object initialization failed
|
||||||
* -1 on other fail
|
* -1 on other fail
|
||||||
*/
|
*/
|
||||||
int16_t LOLIN_HP303B::measurePressureOnce(float &result, uint8_t oversamplingRate)
|
int16_t LOLIN_HP303B::measurePressureOnce(float &result, uint8_t slaveAddress, uint8_t oversamplingRate)
|
||||||
{
|
{
|
||||||
|
//Set I2C bus connection
|
||||||
|
m_slaveAddress = slaveAddress;
|
||||||
|
|
||||||
//start the measurement
|
//start the measurement
|
||||||
int16_t ret = startMeasurePressureOnce(oversamplingRate);
|
int16_t ret = startMeasurePressureOnce(oversamplingRate);
|
||||||
if(ret != HP303B__SUCCEEDED)
|
if(ret != HP303B__SUCCEEDED)
|
||||||
|
|
|
@ -35,11 +35,13 @@ public:
|
||||||
|
|
||||||
//Command Mode
|
//Command Mode
|
||||||
int16_t measureTempOnce(float &result);
|
int16_t measureTempOnce(float &result);
|
||||||
int16_t measureTempOnce(float &result, uint8_t oversamplingRate);
|
int16_t measureTempOnce(float &result, uint8_t slaveAddress);
|
||||||
|
int16_t measureTempOnce(float &result, uint8_t slaveAddress, uint8_t oversamplingRate);
|
||||||
int16_t startMeasureTempOnce(void);
|
int16_t startMeasureTempOnce(void);
|
||||||
int16_t startMeasureTempOnce(uint8_t oversamplingRate);
|
int16_t startMeasureTempOnce(uint8_t oversamplingRate);
|
||||||
int16_t measurePressureOnce(float &result);
|
int16_t measurePressureOnce(float &result);
|
||||||
int16_t measurePressureOnce(float &result, uint8_t oversamplingRate);
|
int16_t measurePressureOnce(float &result, uint8_t slaveAddress);
|
||||||
|
int16_t measurePressureOnce(float &result, uint8_t slaveAddress, uint8_t oversamplingRate);
|
||||||
int16_t startMeasurePressureOnce(void);
|
int16_t startMeasurePressureOnce(void);
|
||||||
int16_t startMeasurePressureOnce(uint8_t oversamplingRate);
|
int16_t startMeasurePressureOnce(uint8_t oversamplingRate);
|
||||||
int16_t getSingleResult(float &result);
|
int16_t getSingleResult(float &result);
|
||||||
|
|
|
@ -58,11 +58,11 @@ bool HP303B_Read(uint8_t hp303b_idx)
|
||||||
float p;
|
float p;
|
||||||
int16_t ret;
|
int16_t ret;
|
||||||
|
|
||||||
ret = HP303BSensor.measureTempOnce(t, hp303b_cfg.oversampling);
|
ret = HP303BSensor.measureTempOnce(t, hp303b_sensor[hp303b_idx].address, hp303b_cfg.oversampling);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
ret = HP303BSensor.measurePressureOnce(p, hp303b_cfg.oversampling);
|
ret = HP303BSensor.measurePressureOnce(p, hp303b_sensor[hp303b_idx].address, hp303b_cfg.oversampling);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue