Apply clang-format to source files
Some checks failed
Arduino Library CI / build (push) Has been cancelled

- Format Adafruit_STHS34PF80.h and Adafruit_STHS34PF80.cpp with Google C++ style
- 2-space indentation, 80-character line limit, left-aligned pointers
- Consistent formatting for function declarations and definitions
This commit is contained in:
ladyada 2025-08-23 16:00:03 -04:00
parent 2df7d9b529
commit 45bfd32b12
2 changed files with 325 additions and 297 deletions

View file

@ -96,8 +96,8 @@ bool Adafruit_STHS34PF80::isConnected() {
return false; return false;
} }
Adafruit_BusIO_Register chip_id = Adafruit_BusIO_Register( Adafruit_BusIO_Register chip_id =
i2c_dev, STHS34PF80_REG_WHO_AM_I, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_WHO_AM_I, 1);
return chip_id.read() == 0xD3; return chip_id.read() == 0xD3;
} }
@ -128,12 +128,13 @@ bool Adafruit_STHS34PF80::reset() {
* @param config The LPF configuration value * @param config The LPF configuration value
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setMotionLowPassFilter(sths34pf80_lpf_config_t config) { bool Adafruit_STHS34PF80::setMotionLowPassFilter(
Adafruit_BusIO_Register lpf1_reg = Adafruit_BusIO_Register( sths34pf80_lpf_config_t config) {
i2c_dev, STHS34PF80_REG_LPF1, 1); Adafruit_BusIO_Register lpf1_reg =
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF1, 1);
Adafruit_BusIO_RegisterBits lpf_m_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits lpf_m_bits =
&lpf1_reg, 3, 0); Adafruit_BusIO_RegisterBits(&lpf1_reg, 3, 0);
return lpf_m_bits.write(config); return lpf_m_bits.write(config);
} }
@ -143,11 +144,11 @@ bool Adafruit_STHS34PF80::setMotionLowPassFilter(sths34pf80_lpf_config_t config)
* @return The current LPF configuration value * @return The current LPF configuration value
*/ */
sths34pf80_lpf_config_t Adafruit_STHS34PF80::getMotionLowPassFilter() { sths34pf80_lpf_config_t Adafruit_STHS34PF80::getMotionLowPassFilter() {
Adafruit_BusIO_Register lpf1_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register lpf1_reg =
i2c_dev, STHS34PF80_REG_LPF1, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF1, 1);
Adafruit_BusIO_RegisterBits lpf_m_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits lpf_m_bits =
&lpf1_reg, 3, 0); Adafruit_BusIO_RegisterBits(&lpf1_reg, 3, 0);
return (sths34pf80_lpf_config_t)lpf_m_bits.read(); return (sths34pf80_lpf_config_t)lpf_m_bits.read();
} }
@ -157,12 +158,13 @@ sths34pf80_lpf_config_t Adafruit_STHS34PF80::getMotionLowPassFilter() {
* @param config The LPF configuration value * @param config The LPF configuration value
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setMotionPresenceLowPassFilter(sths34pf80_lpf_config_t config) { bool Adafruit_STHS34PF80::setMotionPresenceLowPassFilter(
Adafruit_BusIO_Register lpf1_reg = Adafruit_BusIO_Register( sths34pf80_lpf_config_t config) {
i2c_dev, STHS34PF80_REG_LPF1, 1); Adafruit_BusIO_Register lpf1_reg =
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF1, 1);
Adafruit_BusIO_RegisterBits lpf_p_m_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits lpf_p_m_bits =
&lpf1_reg, 3, 3); Adafruit_BusIO_RegisterBits(&lpf1_reg, 3, 3);
return lpf_p_m_bits.write(config); return lpf_p_m_bits.write(config);
} }
@ -172,11 +174,11 @@ bool Adafruit_STHS34PF80::setMotionPresenceLowPassFilter(sths34pf80_lpf_config_t
* @return The current LPF configuration value * @return The current LPF configuration value
*/ */
sths34pf80_lpf_config_t Adafruit_STHS34PF80::getMotionPresenceLowPassFilter() { sths34pf80_lpf_config_t Adafruit_STHS34PF80::getMotionPresenceLowPassFilter() {
Adafruit_BusIO_Register lpf1_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register lpf1_reg =
i2c_dev, STHS34PF80_REG_LPF1, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF1, 1);
Adafruit_BusIO_RegisterBits lpf_p_m_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits lpf_p_m_bits =
&lpf1_reg, 3, 3); Adafruit_BusIO_RegisterBits(&lpf1_reg, 3, 3);
return (sths34pf80_lpf_config_t)lpf_p_m_bits.read(); return (sths34pf80_lpf_config_t)lpf_p_m_bits.read();
} }
@ -186,12 +188,13 @@ sths34pf80_lpf_config_t Adafruit_STHS34PF80::getMotionPresenceLowPassFilter() {
* @param config The LPF configuration value * @param config The LPF configuration value
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setPresenceLowPassFilter(sths34pf80_lpf_config_t config) { bool Adafruit_STHS34PF80::setPresenceLowPassFilter(
Adafruit_BusIO_Register lpf2_reg = Adafruit_BusIO_Register( sths34pf80_lpf_config_t config) {
i2c_dev, STHS34PF80_REG_LPF2, 1); Adafruit_BusIO_Register lpf2_reg =
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF2, 1);
Adafruit_BusIO_RegisterBits lpf_p_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits lpf_p_bits =
&lpf2_reg, 3, 3); Adafruit_BusIO_RegisterBits(&lpf2_reg, 3, 3);
return lpf_p_bits.write(config); return lpf_p_bits.write(config);
} }
@ -201,40 +204,43 @@ bool Adafruit_STHS34PF80::setPresenceLowPassFilter(sths34pf80_lpf_config_t confi
* @return The current LPF configuration value * @return The current LPF configuration value
*/ */
sths34pf80_lpf_config_t Adafruit_STHS34PF80::getPresenceLowPassFilter() { sths34pf80_lpf_config_t Adafruit_STHS34PF80::getPresenceLowPassFilter() {
Adafruit_BusIO_Register lpf2_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register lpf2_reg =
i2c_dev, STHS34PF80_REG_LPF2, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF2, 1);
Adafruit_BusIO_RegisterBits lpf_p_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits lpf_p_bits =
&lpf2_reg, 3, 3); Adafruit_BusIO_RegisterBits(&lpf2_reg, 3, 3);
return (sths34pf80_lpf_config_t)lpf_p_bits.read(); return (sths34pf80_lpf_config_t)lpf_p_bits.read();
} }
/*! /*!
* @brief Set the ambient temperature shock detection low-pass filter configuration * @brief Set the ambient temperature shock detection low-pass filter
* configuration
* @param config The LPF configuration value * @param config The LPF configuration value
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setTemperatureLowPassFilter(sths34pf80_lpf_config_t config) { bool Adafruit_STHS34PF80::setTemperatureLowPassFilter(
Adafruit_BusIO_Register lpf2_reg = Adafruit_BusIO_Register( sths34pf80_lpf_config_t config) {
i2c_dev, STHS34PF80_REG_LPF2, 1); Adafruit_BusIO_Register lpf2_reg =
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF2, 1);
Adafruit_BusIO_RegisterBits lpf_a_t_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits lpf_a_t_bits =
&lpf2_reg, 3, 0); Adafruit_BusIO_RegisterBits(&lpf2_reg, 3, 0);
return lpf_a_t_bits.write(config); return lpf_a_t_bits.write(config);
} }
/*! /*!
* @brief Get the ambient temperature shock detection low-pass filter configuration * @brief Get the ambient temperature shock detection low-pass filter
* configuration
* @return The current LPF configuration value * @return The current LPF configuration value
*/ */
sths34pf80_lpf_config_t Adafruit_STHS34PF80::getTemperatureLowPassFilter() { sths34pf80_lpf_config_t Adafruit_STHS34PF80::getTemperatureLowPassFilter() {
Adafruit_BusIO_Register lpf2_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register lpf2_reg =
i2c_dev, STHS34PF80_REG_LPF2, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF2, 1);
Adafruit_BusIO_RegisterBits lpf_a_t_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits lpf_a_t_bits =
&lpf2_reg, 3, 0); Adafruit_BusIO_RegisterBits(&lpf2_reg, 3, 0);
return (sths34pf80_lpf_config_t)lpf_a_t_bits.read(); return (sths34pf80_lpf_config_t)lpf_a_t_bits.read();
} }
@ -245,11 +251,11 @@ sths34pf80_lpf_config_t Adafruit_STHS34PF80::getTemperatureLowPassFilter() {
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setAmbTempAveraging(sths34pf80_avg_t_t config) { bool Adafruit_STHS34PF80::setAmbTempAveraging(sths34pf80_avg_t_t config) {
Adafruit_BusIO_Register avg_trim_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register avg_trim_reg =
i2c_dev, STHS34PF80_REG_AVG_TRIM, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_AVG_TRIM, 1);
Adafruit_BusIO_RegisterBits avg_t_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits avg_t_bits =
&avg_trim_reg, 2, 4); Adafruit_BusIO_RegisterBits(&avg_trim_reg, 2, 4);
return avg_t_bits.write(config); return avg_t_bits.write(config);
} }
@ -259,11 +265,11 @@ bool Adafruit_STHS34PF80::setAmbTempAveraging(sths34pf80_avg_t_t config) {
* @return The current averaging configuration value * @return The current averaging configuration value
*/ */
sths34pf80_avg_t_t Adafruit_STHS34PF80::getAmbTempAveraging() { sths34pf80_avg_t_t Adafruit_STHS34PF80::getAmbTempAveraging() {
Adafruit_BusIO_Register avg_trim_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register avg_trim_reg =
i2c_dev, STHS34PF80_REG_AVG_TRIM, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_AVG_TRIM, 1);
Adafruit_BusIO_RegisterBits avg_t_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits avg_t_bits =
&avg_trim_reg, 2, 4); Adafruit_BusIO_RegisterBits(&avg_trim_reg, 2, 4);
return (sths34pf80_avg_t_t)avg_t_bits.read(); return (sths34pf80_avg_t_t)avg_t_bits.read();
} }
@ -274,11 +280,11 @@ sths34pf80_avg_t_t Adafruit_STHS34PF80::getAmbTempAveraging() {
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setObjAveraging(sths34pf80_avg_tmos_t config) { bool Adafruit_STHS34PF80::setObjAveraging(sths34pf80_avg_tmos_t config) {
Adafruit_BusIO_Register avg_trim_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register avg_trim_reg =
i2c_dev, STHS34PF80_REG_AVG_TRIM, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_AVG_TRIM, 1);
Adafruit_BusIO_RegisterBits avg_tmos_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits avg_tmos_bits =
&avg_trim_reg, 3, 0); Adafruit_BusIO_RegisterBits(&avg_trim_reg, 3, 0);
return avg_tmos_bits.write(config); return avg_tmos_bits.write(config);
} }
@ -288,11 +294,11 @@ bool Adafruit_STHS34PF80::setObjAveraging(sths34pf80_avg_tmos_t config) {
* @return The current averaging configuration value * @return The current averaging configuration value
*/ */
sths34pf80_avg_tmos_t Adafruit_STHS34PF80::getObjAveraging() { sths34pf80_avg_tmos_t Adafruit_STHS34PF80::getObjAveraging() {
Adafruit_BusIO_Register avg_trim_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register avg_trim_reg =
i2c_dev, STHS34PF80_REG_AVG_TRIM, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_AVG_TRIM, 1);
Adafruit_BusIO_RegisterBits avg_tmos_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits avg_tmos_bits =
&avg_trim_reg, 3, 0); Adafruit_BusIO_RegisterBits(&avg_trim_reg, 3, 0);
return (sths34pf80_avg_tmos_t)avg_tmos_bits.read(); return (sths34pf80_avg_tmos_t)avg_tmos_bits.read();
} }
@ -303,11 +309,11 @@ sths34pf80_avg_tmos_t Adafruit_STHS34PF80::getObjAveraging() {
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setWideGainMode(bool wide_mode) { bool Adafruit_STHS34PF80::setWideGainMode(bool wide_mode) {
Adafruit_BusIO_Register ctrl0_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl0_reg =
i2c_dev, STHS34PF80_REG_CTRL0, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL0, 1);
Adafruit_BusIO_RegisterBits gain_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits gain_bits =
&ctrl0_reg, 3, 4); Adafruit_BusIO_RegisterBits(&ctrl0_reg, 3, 4);
return gain_bits.write(wide_mode ? 0x00 : 0x07); return gain_bits.write(wide_mode ? 0x00 : 0x07);
} }
@ -317,11 +323,11 @@ bool Adafruit_STHS34PF80::setWideGainMode(bool wide_mode) {
* @return True if in wide mode, false if in default gain mode * @return True if in wide mode, false if in default gain mode
*/ */
bool Adafruit_STHS34PF80::getWideGainMode() { bool Adafruit_STHS34PF80::getWideGainMode() {
Adafruit_BusIO_Register ctrl0_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl0_reg =
i2c_dev, STHS34PF80_REG_CTRL0, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL0, 1);
Adafruit_BusIO_RegisterBits gain_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits gain_bits =
&ctrl0_reg, 3, 4); Adafruit_BusIO_RegisterBits(&ctrl0_reg, 3, 4);
return gain_bits.read() == 0x00; return gain_bits.read() == 0x00;
} }
@ -332,8 +338,8 @@ bool Adafruit_STHS34PF80::getWideGainMode() {
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setSensitivity(int8_t sensitivity) { bool Adafruit_STHS34PF80::setSensitivity(int8_t sensitivity) {
Adafruit_BusIO_Register sens_data_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register sens_data_reg =
i2c_dev, STHS34PF80_REG_SENS_DATA, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_SENS_DATA, 1);
return sens_data_reg.write((uint8_t)sensitivity); return sens_data_reg.write((uint8_t)sensitivity);
} }
@ -343,8 +349,8 @@ bool Adafruit_STHS34PF80::setSensitivity(int8_t sensitivity) {
* @return Signed 8-bit sensitivity value (two's complement) * @return Signed 8-bit sensitivity value (two's complement)
*/ */
int8_t Adafruit_STHS34PF80::getSensitivity() { int8_t Adafruit_STHS34PF80::getSensitivity() {
Adafruit_BusIO_Register sens_data_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register sens_data_reg =
i2c_dev, STHS34PF80_REG_SENS_DATA, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_SENS_DATA, 1);
return (int8_t)sens_data_reg.read(); return (int8_t)sens_data_reg.read();
} }
@ -355,11 +361,11 @@ int8_t Adafruit_STHS34PF80::getSensitivity() {
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setBlockDataUpdate(bool enable) { bool Adafruit_STHS34PF80::setBlockDataUpdate(bool enable) {
Adafruit_BusIO_Register ctrl1_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl1_reg =
i2c_dev, STHS34PF80_REG_CTRL1, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL1, 1);
Adafruit_BusIO_RegisterBits bdu_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits bdu_bit =
&ctrl1_reg, 1, 4); Adafruit_BusIO_RegisterBits(&ctrl1_reg, 1, 4);
return bdu_bit.write(enable ? 1 : 0); return bdu_bit.write(enable ? 1 : 0);
} }
@ -369,11 +375,11 @@ bool Adafruit_STHS34PF80::setBlockDataUpdate(bool enable) {
* @return True if block data update is enabled, false if disabled * @return True if block data update is enabled, false if disabled
*/ */
bool Adafruit_STHS34PF80::getBlockDataUpdate() { bool Adafruit_STHS34PF80::getBlockDataUpdate() {
Adafruit_BusIO_Register ctrl1_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl1_reg =
i2c_dev, STHS34PF80_REG_CTRL1, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL1, 1);
Adafruit_BusIO_RegisterBits bdu_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits bdu_bit =
&ctrl1_reg, 1, 4); Adafruit_BusIO_RegisterBits(&ctrl1_reg, 1, 4);
return bdu_bit.read() == 1; return bdu_bit.read() == 1;
} }
@ -399,7 +405,8 @@ bool Adafruit_STHS34PF80::setOutputDataRate(sths34pf80_odr_t odr) {
// ret = sths34pf80_read_reg(ctx, STHS34PF80_CTRL1, (uint8_t *)&ctrl1, 1); // ret = sths34pf80_read_reg(ctx, STHS34PF80_CTRL1, (uint8_t *)&ctrl1, 1);
// if (ret == 0) // if (ret == 0)
// { // {
// ret = sths34pf80_read_reg(ctx, STHS34PF80_AVG_TRIM, (uint8_t *)&avg_trim, 1); // ret = sths34pf80_read_reg(ctx, STHS34PF80_AVG_TRIM, (uint8_t *)&avg_trim,
// 1);
sths34pf80_avg_tmos_t avg_tmos = getObjAveraging(); sths34pf80_avg_tmos_t avg_tmos = getObjAveraging();
// switch(avg_trim.avg_tmos) // switch(avg_trim.avg_tmos)
@ -469,11 +476,11 @@ bool Adafruit_STHS34PF80::setOutputDataRate(sths34pf80_odr_t odr) {
* @return The current output data rate value * @return The current output data rate value
*/ */
sths34pf80_odr_t Adafruit_STHS34PF80::getOutputDataRate() { sths34pf80_odr_t Adafruit_STHS34PF80::getOutputDataRate() {
Adafruit_BusIO_Register ctrl1_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl1_reg =
i2c_dev, STHS34PF80_REG_CTRL1, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL1, 1);
Adafruit_BusIO_RegisterBits odr_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits odr_bits =
&ctrl1_reg, 4, 0); Adafruit_BusIO_RegisterBits(&ctrl1_reg, 4, 0);
return (sths34pf80_odr_t)odr_bits.read(); return (sths34pf80_odr_t)odr_bits.read();
} }
@ -483,11 +490,11 @@ sths34pf80_odr_t Adafruit_STHS34PF80::getOutputDataRate() {
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::rebootOTPmemory() { bool Adafruit_STHS34PF80::rebootOTPmemory() {
Adafruit_BusIO_Register ctrl2_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl2_reg =
i2c_dev, STHS34PF80_REG_CTRL2, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL2, 1);
Adafruit_BusIO_RegisterBits boot_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits boot_bit =
&ctrl2_reg, 1, 7); Adafruit_BusIO_RegisterBits(&ctrl2_reg, 1, 7);
return boot_bit.write(1); return boot_bit.write(1);
} }
@ -498,11 +505,11 @@ bool Adafruit_STHS34PF80::rebootOTPmemory() {
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::enableEmbeddedFuncPage(bool enable) { bool Adafruit_STHS34PF80::enableEmbeddedFuncPage(bool enable) {
Adafruit_BusIO_Register ctrl2_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl2_reg =
i2c_dev, STHS34PF80_REG_CTRL2, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL2, 1);
Adafruit_BusIO_RegisterBits func_cfg_access_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits func_cfg_access_bit =
&ctrl2_reg, 1, 4); Adafruit_BusIO_RegisterBits(&ctrl2_reg, 1, 4);
return func_cfg_access_bit.write(enable ? 1 : 0); return func_cfg_access_bit.write(enable ? 1 : 0);
} }
@ -512,11 +519,11 @@ bool Adafruit_STHS34PF80::enableEmbeddedFuncPage(bool enable) {
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::triggerOneshot() { bool Adafruit_STHS34PF80::triggerOneshot() {
Adafruit_BusIO_Register ctrl2_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl2_reg =
i2c_dev, STHS34PF80_REG_CTRL2, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL2, 1);
Adafruit_BusIO_RegisterBits oneshot_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits oneshot_bit =
&ctrl2_reg, 1, 0); Adafruit_BusIO_RegisterBits(&ctrl2_reg, 1, 0);
return oneshot_bit.write(1); return oneshot_bit.write(1);
} }
@ -527,11 +534,11 @@ bool Adafruit_STHS34PF80::triggerOneshot() {
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setIntPolarity(bool active_low) { bool Adafruit_STHS34PF80::setIntPolarity(bool active_low) {
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl3_reg =
i2c_dev, STHS34PF80_REG_CTRL3, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
Adafruit_BusIO_RegisterBits int_h_l_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits int_h_l_bit =
&ctrl3_reg, 1, 7); Adafruit_BusIO_RegisterBits(&ctrl3_reg, 1, 7);
return int_h_l_bit.write(active_low ? 1 : 0); return int_h_l_bit.write(active_low ? 1 : 0);
} }
@ -542,11 +549,11 @@ bool Adafruit_STHS34PF80::setIntPolarity(bool active_low) {
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setIntOpenDrain(bool open_drain) { bool Adafruit_STHS34PF80::setIntOpenDrain(bool open_drain) {
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl3_reg =
i2c_dev, STHS34PF80_REG_CTRL3, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
Adafruit_BusIO_RegisterBits pp_od_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits pp_od_bit =
&ctrl3_reg, 1, 6); Adafruit_BusIO_RegisterBits(&ctrl3_reg, 1, 6);
return pp_od_bit.write(open_drain ? 1 : 0); return pp_od_bit.write(open_drain ? 1 : 0);
} }
@ -557,40 +564,42 @@ bool Adafruit_STHS34PF80::setIntOpenDrain(bool open_drain) {
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setIntLatched(bool latched) { bool Adafruit_STHS34PF80::setIntLatched(bool latched) {
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl3_reg =
i2c_dev, STHS34PF80_REG_CTRL3, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
Adafruit_BusIO_RegisterBits int_latched_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits int_latched_bit =
&ctrl3_reg, 1, 2); Adafruit_BusIO_RegisterBits(&ctrl3_reg, 1, 2);
return int_latched_bit.write(latched ? 1 : 0); return int_latched_bit.write(latched ? 1 : 0);
} }
/*! /*!
* @brief Set interrupt mask for function status flags * @brief Set interrupt mask for function status flags
* @param mask Interrupt mask (bits 2:0 for PRES_FLAG, MOT_FLAG, TAMB_SHOCK_FLAG) * @param mask Interrupt mask (bits 2:0 for PRES_FLAG, MOT_FLAG,
* TAMB_SHOCK_FLAG)
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setIntMask(uint8_t mask) { bool Adafruit_STHS34PF80::setIntMask(uint8_t mask) {
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl3_reg =
i2c_dev, STHS34PF80_REG_CTRL3, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
Adafruit_BusIO_RegisterBits int_mask_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits int_mask_bits =
&ctrl3_reg, 3, 3); Adafruit_BusIO_RegisterBits(&ctrl3_reg, 3, 3);
return int_mask_bits.write(mask & 0x07); return int_mask_bits.write(mask & 0x07);
} }
/*! /*!
* @brief Get interrupt mask for function status flags * @brief Get interrupt mask for function status flags
* @return Current interrupt mask value (bits 2:0 for PRES_FLAG, MOT_FLAG, TAMB_SHOCK_FLAG) * @return Current interrupt mask value (bits 2:0 for PRES_FLAG, MOT_FLAG,
* TAMB_SHOCK_FLAG)
*/ */
uint8_t Adafruit_STHS34PF80::getIntMask() { uint8_t Adafruit_STHS34PF80::getIntMask() {
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl3_reg =
i2c_dev, STHS34PF80_REG_CTRL3, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
Adafruit_BusIO_RegisterBits int_mask_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits int_mask_bits =
&ctrl3_reg, 3, 3); Adafruit_BusIO_RegisterBits(&ctrl3_reg, 3, 3);
return int_mask_bits.read(); return int_mask_bits.read();
} }
@ -601,11 +610,11 @@ uint8_t Adafruit_STHS34PF80::getIntMask() {
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::setIntSignal(sths34pf80_int_signal_t signal) { bool Adafruit_STHS34PF80::setIntSignal(sths34pf80_int_signal_t signal) {
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl3_reg =
i2c_dev, STHS34PF80_REG_CTRL3, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
Adafruit_BusIO_RegisterBits ien_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits ien_bits =
&ctrl3_reg, 2, 0); Adafruit_BusIO_RegisterBits(&ctrl3_reg, 2, 0);
return ien_bits.write(signal); return ien_bits.write(signal);
} }
@ -615,11 +624,11 @@ bool Adafruit_STHS34PF80::setIntSignal(sths34pf80_int_signal_t signal) {
* @return Current interrupt signal type * @return Current interrupt signal type
*/ */
sths34pf80_int_signal_t Adafruit_STHS34PF80::getIntSignal() { sths34pf80_int_signal_t Adafruit_STHS34PF80::getIntSignal() {
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl3_reg =
i2c_dev, STHS34PF80_REG_CTRL3, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
Adafruit_BusIO_RegisterBits ien_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits ien_bits =
&ctrl3_reg, 2, 0); Adafruit_BusIO_RegisterBits(&ctrl3_reg, 2, 0);
return (sths34pf80_int_signal_t)ien_bits.read(); return (sths34pf80_int_signal_t)ien_bits.read();
} }
@ -629,11 +638,11 @@ sths34pf80_int_signal_t Adafruit_STHS34PF80::getIntSignal() {
* @return True if new data is available, false otherwise * @return True if new data is available, false otherwise
*/ */
bool Adafruit_STHS34PF80::isDataReady() { bool Adafruit_STHS34PF80::isDataReady() {
Adafruit_BusIO_Register status_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register status_reg =
i2c_dev, STHS34PF80_REG_STATUS, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_STATUS, 1);
Adafruit_BusIO_RegisterBits drdy_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits drdy_bit =
&status_reg, 1, 2); Adafruit_BusIO_RegisterBits(&status_reg, 1, 2);
return drdy_bit.read() == 1; return drdy_bit.read() == 1;
} }
@ -643,11 +652,11 @@ bool Adafruit_STHS34PF80::isDataReady() {
* @return True if presence is detected, false otherwise * @return True if presence is detected, false otherwise
*/ */
bool Adafruit_STHS34PF80::isPresence() { bool Adafruit_STHS34PF80::isPresence() {
Adafruit_BusIO_Register func_status_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register func_status_reg =
i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1);
Adafruit_BusIO_RegisterBits pres_flag_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits pres_flag_bit =
&func_status_reg, 1, 2); Adafruit_BusIO_RegisterBits(&func_status_reg, 1, 2);
return pres_flag_bit.read() == 1; return pres_flag_bit.read() == 1;
} }
@ -657,11 +666,11 @@ bool Adafruit_STHS34PF80::isPresence() {
* @return True if motion is detected, false otherwise * @return True if motion is detected, false otherwise
*/ */
bool Adafruit_STHS34PF80::isMotion() { bool Adafruit_STHS34PF80::isMotion() {
Adafruit_BusIO_Register func_status_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register func_status_reg =
i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1);
Adafruit_BusIO_RegisterBits mot_flag_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits mot_flag_bit =
&func_status_reg, 1, 1); Adafruit_BusIO_RegisterBits(&func_status_reg, 1, 1);
return mot_flag_bit.read() == 1; return mot_flag_bit.read() == 1;
} }
@ -671,11 +680,11 @@ bool Adafruit_STHS34PF80::isMotion() {
* @return True if temperature shock is detected, false otherwise * @return True if temperature shock is detected, false otherwise
*/ */
bool Adafruit_STHS34PF80::isTempShock() { bool Adafruit_STHS34PF80::isTempShock() {
Adafruit_BusIO_Register func_status_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register func_status_reg =
i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1);
Adafruit_BusIO_RegisterBits tamb_shock_flag_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits tamb_shock_flag_bit =
&func_status_reg, 1, 0); Adafruit_BusIO_RegisterBits(&func_status_reg, 1, 0);
return tamb_shock_flag_bit.read() == 1; return tamb_shock_flag_bit.read() == 1;
} }
@ -685,8 +694,8 @@ bool Adafruit_STHS34PF80::isTempShock() {
* @return 16-bit signed object temperature value * @return 16-bit signed object temperature value
*/ */
int16_t Adafruit_STHS34PF80::readObjectTemperature() { int16_t Adafruit_STHS34PF80::readObjectTemperature() {
Adafruit_BusIO_Register tobj_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register tobj_reg =
i2c_dev, STHS34PF80_REG_TOBJECT_L, 2, LSBFIRST); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_TOBJECT_L, 2, LSBFIRST);
return (int16_t)tobj_reg.read(); return (int16_t)tobj_reg.read();
} }
@ -696,8 +705,8 @@ int16_t Adafruit_STHS34PF80::readObjectTemperature() {
* @return Ambient temperature in degrees Celsius * @return Ambient temperature in degrees Celsius
*/ */
float Adafruit_STHS34PF80::readAmbientTemperature() { float Adafruit_STHS34PF80::readAmbientTemperature() {
Adafruit_BusIO_Register tamb_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register tamb_reg =
i2c_dev, STHS34PF80_REG_TAMBIENT_L, 2, LSBFIRST); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_TAMBIENT_L, 2, LSBFIRST);
int16_t raw_temp = (int16_t)tamb_reg.read(); int16_t raw_temp = (int16_t)tamb_reg.read();
return raw_temp / 100.0f; return raw_temp / 100.0f;
@ -708,8 +717,8 @@ float Adafruit_STHS34PF80::readAmbientTemperature() {
* @return 16-bit signed compensated object temperature value * @return 16-bit signed compensated object temperature value
*/ */
int16_t Adafruit_STHS34PF80::readCompensatedObjectTemperature() { int16_t Adafruit_STHS34PF80::readCompensatedObjectTemperature() {
Adafruit_BusIO_Register tobj_comp_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register tobj_comp_reg =
i2c_dev, STHS34PF80_REG_TOBJ_COMP_L, 2, LSBFIRST); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_TOBJ_COMP_L, 2, LSBFIRST);
return (int16_t)tobj_comp_reg.read(); return (int16_t)tobj_comp_reg.read();
} }
@ -719,8 +728,8 @@ int16_t Adafruit_STHS34PF80::readCompensatedObjectTemperature() {
* @return 16-bit signed presence detection value * @return 16-bit signed presence detection value
*/ */
int16_t Adafruit_STHS34PF80::readPresence() { int16_t Adafruit_STHS34PF80::readPresence() {
Adafruit_BusIO_Register tpres_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register tpres_reg =
i2c_dev, STHS34PF80_REG_TPRESENCE_L, 2, LSBFIRST); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_TPRESENCE_L, 2, LSBFIRST);
return (int16_t)tpres_reg.read(); return (int16_t)tpres_reg.read();
} }
@ -730,8 +739,8 @@ int16_t Adafruit_STHS34PF80::readPresence() {
* @return 16-bit signed motion detection value * @return 16-bit signed motion detection value
*/ */
int16_t Adafruit_STHS34PF80::readMotion() { int16_t Adafruit_STHS34PF80::readMotion() {
Adafruit_BusIO_Register tmot_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register tmot_reg =
i2c_dev, STHS34PF80_REG_TMOTION_L, 2, LSBFIRST); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_TMOTION_L, 2, LSBFIRST);
return (int16_t)tmot_reg.read(); return (int16_t)tmot_reg.read();
} }
@ -755,7 +764,8 @@ int16_t Adafruit_STHS34PF80::readTempShock() {
* @param len Number of bytes to write * @param len Number of bytes to write
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::writeEmbeddedFunction(uint8_t addr, uint8_t *data, uint8_t len) { bool Adafruit_STHS34PF80::writeEmbeddedFunction(uint8_t addr, uint8_t* data,
uint8_t len) {
// sths34pf80_ctrl1_t ctrl1; // sths34pf80_ctrl1_t ctrl1;
// uint8_t odr; // uint8_t odr;
// sths34pf80_page_rw_t page_rw = {0}; // sths34pf80_page_rw_t page_rw = {0};
@ -782,11 +792,12 @@ bool Adafruit_STHS34PF80::writeEmbeddedFunction(uint8_t addr, uint8_t *data, uin
// /* Enable write mode */ // /* Enable write mode */
// page_rw.func_cfg_write = 1; // page_rw.func_cfg_write = 1;
// ret += sths34pf80_write_reg(ctx, STHS34PF80_PAGE_RW, (uint8_t *)&page_rw, 1); // ret += sths34pf80_write_reg(ctx, STHS34PF80_PAGE_RW, (uint8_t *)&page_rw,
Adafruit_BusIO_Register page_rw_reg = Adafruit_BusIO_Register( // 1);
i2c_dev, STHS34PF80_REG_PAGE_RW, 1); Adafruit_BusIO_Register page_rw_reg =
Adafruit_BusIO_RegisterBits func_cfg_write_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_PAGE_RW, 1);
&page_rw_reg, 1, 6); Adafruit_BusIO_RegisterBits func_cfg_write_bit =
Adafruit_BusIO_RegisterBits(&page_rw_reg, 1, 6);
if (!func_cfg_write_bit.write(1)) { if (!func_cfg_write_bit.write(1)) {
enableEmbeddedFuncPage(false); enableEmbeddedFuncPage(false);
safeSetOutputDataRate(STHS34PF80_ODR_POWER_DOWN, current_odr); safeSetOutputDataRate(STHS34PF80_ODR_POWER_DOWN, current_odr);
@ -795,8 +806,8 @@ bool Adafruit_STHS34PF80::writeEmbeddedFunction(uint8_t addr, uint8_t *data, uin
// /* Select register address (it will autoincrement after each write) */ // /* Select register address (it will autoincrement after each write) */
// ret += sths34pf80_write_reg(ctx, STHS34PF80_FUNC_CFG_ADDR, &addr, 1); // ret += sths34pf80_write_reg(ctx, STHS34PF80_FUNC_CFG_ADDR, &addr, 1);
Adafruit_BusIO_Register func_cfg_addr_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register func_cfg_addr_reg =
i2c_dev, STHS34PF80_REG_FUNC_CFG_ADDR, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_FUNC_CFG_ADDR, 1);
if (!func_cfg_addr_reg.write(addr)) { if (!func_cfg_addr_reg.write(addr)) {
func_cfg_write_bit.write(0); func_cfg_write_bit.write(0);
enableEmbeddedFuncPage(false); enableEmbeddedFuncPage(false);
@ -808,8 +819,8 @@ bool Adafruit_STHS34PF80::writeEmbeddedFunction(uint8_t addr, uint8_t *data, uin
// for (i = 0; i < len; i++) { // for (i = 0; i < len; i++) {
// ret += sths34pf80_write_reg(ctx, STHS34PF80_FUNC_CFG_DATA, &data[i], 1); // ret += sths34pf80_write_reg(ctx, STHS34PF80_FUNC_CFG_DATA, &data[i], 1);
// } // }
Adafruit_BusIO_Register func_cfg_data_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register func_cfg_data_reg =
i2c_dev, STHS34PF80_REG_FUNC_CFG_DATA, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_FUNC_CFG_DATA, 1);
for (uint8_t i = 0; i < len; i++) { for (uint8_t i = 0; i < len; i++) {
if (!func_cfg_data_reg.write(data[i])) { if (!func_cfg_data_reg.write(data[i])) {
func_cfg_write_bit.write(0); func_cfg_write_bit.write(0);
@ -821,7 +832,8 @@ bool Adafruit_STHS34PF80::writeEmbeddedFunction(uint8_t addr, uint8_t *data, uin
// /* Disable write mode */ // /* Disable write mode */
// page_rw.func_cfg_write = 0; // page_rw.func_cfg_write = 0;
// ret += sths34pf80_write_reg(ctx, STHS34PF80_PAGE_RW, (uint8_t *)&page_rw, 1); // ret += sths34pf80_write_reg(ctx, STHS34PF80_PAGE_RW, (uint8_t *)&page_rw,
// 1);
if (!func_cfg_write_bit.write(0)) { if (!func_cfg_write_bit.write(0)) {
enableEmbeddedFuncPage(false); enableEmbeddedFuncPage(false);
safeSetOutputDataRate(STHS34PF80_ODR_POWER_DOWN, current_odr); safeSetOutputDataRate(STHS34PF80_ODR_POWER_DOWN, current_odr);
@ -864,7 +876,8 @@ bool Adafruit_STHS34PF80::algorithmReset() {
* @param new_odr The new output data rate to set * @param new_odr The new output data rate to set
* @return True if successful, false otherwise * @return True if successful, false otherwise
*/ */
bool Adafruit_STHS34PF80::safeSetOutputDataRate(sths34pf80_odr_t current_odr, sths34pf80_odr_t new_odr) { bool Adafruit_STHS34PF80::safeSetOutputDataRate(sths34pf80_odr_t current_odr,
sths34pf80_odr_t new_odr) {
// sths34pf80_func_status_t func_status; // sths34pf80_func_status_t func_status;
// sths34pf80_tmos_drdy_status_t status; // sths34pf80_tmos_drdy_status_t status;
// int32_t ret = 0; // int32_t ret = 0;
@ -872,11 +885,11 @@ bool Adafruit_STHS34PF80::safeSetOutputDataRate(sths34pf80_odr_t current_odr, st
return false; return false;
} }
Adafruit_BusIO_Register ctrl1_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register ctrl1_reg =
i2c_dev, STHS34PF80_REG_CTRL1, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL1, 1);
Adafruit_BusIO_RegisterBits odr_bits = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits odr_bits =
&ctrl1_reg, 4, 0); Adafruit_BusIO_RegisterBits(&ctrl1_reg, 4, 0);
// if (odr_new > 0U) { // if (odr_new > 0U) {
if (new_odr > STHS34PF80_ODR_POWER_DOWN) { if (new_odr > STHS34PF80_ODR_POWER_DOWN) {
@ -902,20 +915,21 @@ bool Adafruit_STHS34PF80::safeSetOutputDataRate(sths34pf80_odr_t current_odr, st
// if ((uint8_t)ctrl1.odr > 0U) { // if ((uint8_t)ctrl1.odr > 0U) {
if (current_odr > STHS34PF80_ODR_POWER_DOWN) { if (current_odr > STHS34PF80_ODR_POWER_DOWN) {
/* reset the DRDY bit */ /* reset the DRDY bit */
// ret = sths34pf80_read_reg(ctx, STHS34PF80_FUNC_STATUS, (uint8_t *)&func_status, 1); // ret = sths34pf80_read_reg(ctx, STHS34PF80_FUNC_STATUS, (uint8_t
Adafruit_BusIO_Register func_status_reg = Adafruit_BusIO_Register( // *)&func_status, 1);
i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1); Adafruit_BusIO_Register func_status_reg =
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1);
func_status_reg.read(); // Reading clears the DRDY bit func_status_reg.read(); // Reading clears the DRDY bit
/* wait DRDY bit go to '1' */ /* wait DRDY bit go to '1' */
// do { // do {
// ret += sths34pf80_tmos_drdy_status_get(ctx, &status); // ret += sths34pf80_tmos_drdy_status_get(ctx, &status);
// } while (status.drdy != 0U); // } while (status.drdy != 0U);
Adafruit_BusIO_Register status_reg = Adafruit_BusIO_Register( Adafruit_BusIO_Register status_reg =
i2c_dev, STHS34PF80_REG_STATUS, 1); Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_STATUS, 1);
Adafruit_BusIO_RegisterBits drdy_bit = Adafruit_BusIO_RegisterBits( Adafruit_BusIO_RegisterBits drdy_bit =
&status_reg, 1, 2); Adafruit_BusIO_RegisterBits(&status_reg, 1, 2);
uint32_t timeout = 1000; // 1 second timeout uint32_t timeout = 1000; // 1 second timeout
while (timeout-- > 0) { while (timeout-- > 0) {
@ -931,13 +945,15 @@ bool Adafruit_STHS34PF80::safeSetOutputDataRate(sths34pf80_odr_t current_odr, st
/* set ODR to 0 */ /* set ODR to 0 */
// ctrl1.odr = 0; // ctrl1.odr = 0;
// ret += sths34pf80_write_reg(ctx, STHS34PF80_CTRL1, (uint8_t *)&ctrl1, 1); // ret += sths34pf80_write_reg(ctx, STHS34PF80_CTRL1, (uint8_t *)&ctrl1,
// 1);
if (!odr_bits.write(STHS34PF80_ODR_POWER_DOWN)) { if (!odr_bits.write(STHS34PF80_ODR_POWER_DOWN)) {
return false; return false;
} }
/* reset the DRDY bit */ /* reset the DRDY bit */
// ret += sths34pf80_read_reg(ctx, STHS34PF80_FUNC_STATUS, (uint8_t *)&func_status, 1); // ret += sths34pf80_read_reg(ctx, STHS34PF80_FUNC_STATUS, (uint8_t
// *)&func_status, 1);
func_status_reg.read(); // Reading clears the DRDY bit again func_status_reg.read(); // Reading clears the DRDY bit again
} }
} }

View file

@ -21,11 +21,12 @@
#ifndef __ADAFRUIT_STHS34PF80_H__ #ifndef __ADAFRUIT_STHS34PF80_H__
#define __ADAFRUIT_STHS34PF80_H__ #define __ADAFRUIT_STHS34PF80_H__
#include "Arduino.h"
#include <Adafruit_BusIO_Register.h> #include <Adafruit_BusIO_Register.h>
#include <Adafruit_I2CDevice.h> #include <Adafruit_I2CDevice.h>
#include <Wire.h> #include <Wire.h>
#include "Arduino.h"
#define STHS34PF80_DEFAULT_ADDR 0x5A ///< Default I2C address for the STHS34PF80 #define STHS34PF80_DEFAULT_ADDR 0x5A ///< Default I2C address for the STHS34PF80
#define STHS34PF80_REG_LPF1 0x0C ///< Low-pass filter configuration 1 register #define STHS34PF80_REG_LPF1 0x0C ///< Low-pass filter configuration 1 register
@ -35,28 +36,37 @@
#define STHS34PF80_REG_CTRL0 0x17 ///< Control register 0 (gain mode) #define STHS34PF80_REG_CTRL0 0x17 ///< Control register 0 (gain mode)
#define STHS34PF80_REG_SENS_DATA 0x1D ///< Sensitivity data register #define STHS34PF80_REG_SENS_DATA 0x1D ///< Sensitivity data register
#define STHS34PF80_REG_CTRL1 0x20 ///< Control register 1 (ODR configuration) #define STHS34PF80_REG_CTRL1 0x20 ///< Control register 1 (ODR configuration)
#define STHS34PF80_REG_CTRL2 0x21 ///< Control register 2 (boot, function access, one-shot) #define STHS34PF80_REG_CTRL2 \
#define STHS34PF80_REG_CTRL3 0x22 ///< Control register 3 (interrupt configuration) 0x21 ///< Control register 2 (boot, function access, one-shot)
#define STHS34PF80_REG_CTRL3 \
0x22 ///< Control register 3 (interrupt configuration)
#define STHS34PF80_REG_STATUS 0x23 ///< Status register #define STHS34PF80_REG_STATUS 0x23 ///< Status register
#define STHS34PF80_REG_FUNC_STATUS 0x25 ///< Function status register #define STHS34PF80_REG_FUNC_STATUS 0x25 ///< Function status register
#define STHS34PF80_REG_TOBJECT_L 0x26 ///< Object temperature LSB register #define STHS34PF80_REG_TOBJECT_L 0x26 ///< Object temperature LSB register
#define STHS34PF80_REG_TOBJECT_H 0x27 ///< Object temperature MSB register #define STHS34PF80_REG_TOBJECT_H 0x27 ///< Object temperature MSB register
#define STHS34PF80_REG_TAMBIENT_L 0x28 ///< Ambient temperature LSB register #define STHS34PF80_REG_TAMBIENT_L 0x28 ///< Ambient temperature LSB register
#define STHS34PF80_REG_TAMBIENT_H 0x29 ///< Ambient temperature MSB register #define STHS34PF80_REG_TAMBIENT_H 0x29 ///< Ambient temperature MSB register
#define STHS34PF80_REG_TOBJ_COMP_L 0x38 ///< Compensated object temperature LSB register #define STHS34PF80_REG_TOBJ_COMP_L \
#define STHS34PF80_REG_TOBJ_COMP_H 0x39 ///< Compensated object temperature MSB register 0x38 ///< Compensated object temperature LSB register
#define STHS34PF80_REG_TOBJ_COMP_H \
0x39 ///< Compensated object temperature MSB register
#define STHS34PF80_REG_TPRESENCE_L 0x3A ///< Presence detection LSB register #define STHS34PF80_REG_TPRESENCE_L 0x3A ///< Presence detection LSB register
#define STHS34PF80_REG_TPRESENCE_H 0x3B ///< Presence detection MSB register #define STHS34PF80_REG_TPRESENCE_H 0x3B ///< Presence detection MSB register
#define STHS34PF80_REG_TMOTION_L 0x3C ///< Motion detection LSB register #define STHS34PF80_REG_TMOTION_L 0x3C ///< Motion detection LSB register
#define STHS34PF80_REG_TMOTION_H 0x3D ///< Motion detection MSB register #define STHS34PF80_REG_TMOTION_H 0x3D ///< Motion detection MSB register
#define STHS34PF80_REG_TAMB_SHOCK_L 0x3E ///< Ambient shock detection LSB register #define STHS34PF80_REG_TAMB_SHOCK_L \
#define STHS34PF80_REG_TAMB_SHOCK_H 0x3F ///< Ambient shock detection MSB register 0x3E ///< Ambient shock detection LSB register
#define STHS34PF80_REG_TAMB_SHOCK_H \
0x3F ///< Ambient shock detection MSB register
#define STHS34PF80_REG_FUNC_CFG_ADDR 0x08 ///< Embedded function configuration address register #define STHS34PF80_REG_FUNC_CFG_ADDR \
#define STHS34PF80_REG_FUNC_CFG_DATA 0x09 ///< Embedded function configuration data register 0x08 ///< Embedded function configuration address register
#define STHS34PF80_REG_FUNC_CFG_DATA \
0x09 ///< Embedded function configuration data register
#define STHS34PF80_REG_PAGE_RW 0x11 ///< Page read/write control register #define STHS34PF80_REG_PAGE_RW 0x11 ///< Page read/write control register
#define STHS34PF80_EMBEDDED_RESET_ALGO 0x2A ///< Embedded function RESET_ALGO register address #define STHS34PF80_EMBEDDED_RESET_ALGO \
0x2A ///< Embedded function RESET_ALGO register address
#define STHS34PF80_PRES_FLAG 0x04 ///< Presence detection flag #define STHS34PF80_PRES_FLAG 0x04 ///< Presence detection flag
#define STHS34PF80_MOT_FLAG 0x02 ///< Motion detection flag #define STHS34PF80_MOT_FLAG 0x02 ///< Motion detection flag
@ -124,7 +134,8 @@ typedef enum {
} sths34pf80_int_signal_t; } sths34pf80_int_signal_t;
/*! /*!
* @brief Class that stores state and functions for interacting with the STHS34PF80 * @brief Class that stores state and functions for interacting with the
* STHS34PF80
*/ */
class Adafruit_STHS34PF80 { class Adafruit_STHS34PF80 {
public: public:
@ -188,7 +199,8 @@ public:
private: private:
Adafruit_I2CDevice* i2c_dev; Adafruit_I2CDevice* i2c_dev;
bool safeSetOutputDataRate(sths34pf80_odr_t current_odr, sths34pf80_odr_t new_odr); bool safeSetOutputDataRate(sths34pf80_odr_t current_odr,
sths34pf80_odr_t new_odr);
bool algorithmReset(); // TODO: Implement algorithm reset procedure bool algorithmReset(); // TODO: Implement algorithm reset procedure
}; };