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)
|
||||
{
|
||||
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
|
||||
* -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
|
||||
int16_t ret = startMeasureTempOnce(oversamplingRate);
|
||||
if(ret!=HP303B__SUCCEEDED)
|
||||
|
@ -288,7 +307,23 @@ int16_t LOLIN_HP303B::startMeasureTempOnce(uint8_t oversamplingRate)
|
|||
*/
|
||||
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
|
||||
* -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
|
||||
int16_t ret = startMeasurePressureOnce(oversamplingRate);
|
||||
if(ret != HP303B__SUCCEEDED)
|
||||
|
|
|
@ -35,11 +35,13 @@ public:
|
|||
|
||||
//Command Mode
|
||||
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(uint8_t oversamplingRate);
|
||||
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(uint8_t oversamplingRate);
|
||||
int16_t getSingleResult(float &result);
|
||||
|
|
|
@ -58,11 +58,11 @@ bool HP303B_Read(uint8_t hp303b_idx)
|
|||
float p;
|
||||
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)
|
||||
return false;
|
||||
|
||||
ret = HP303BSensor.measurePressureOnce(p, hp303b_cfg.oversampling);
|
||||
ret = HP303BSensor.measurePressureOnce(p, hp303b_sensor[hp303b_idx].address, hp303b_cfg.oversampling);
|
||||
if (ret != 0)
|
||||
return false;
|
||||
|
||||
|
|
Loading…
Reference in New Issue