Thundersoft
/
IKS01A2_for_TT_Mxx
Creating a project about IKS10A2 for TT_Mxx
Diff: IKS01A2.cpp
- Revision:
- 0:69ddd5bce0a0
diff -r 000000000000 -r 69ddd5bce0a0 IKS01A2.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/IKS01A2.cpp Thu Mar 21 09:34:41 2019 +0000 @@ -0,0 +1,124 @@ +#include "IKS01A2.h" + + +IKS01A2::IKS01A2(I2C *i2c) +{ + lsm = new LSM6DSLSensor(i2c,LSM6DSL_ACC_GYRO_I2C_ADDRESS_HIGH); + Acc = new LSM303AGR_ACC_Sensor(i2c); + Mag = new LSM303AGR_MAG_Sensor(i2c); + + HumTemp = new HTS221Sensor (i2c); + PressTemp = new LPS22HBSensor(i2c); + //init + init(); +} + +uint32_t IKS01A2::isConnect() +{ + uint32_t temp_value = CONNECT; + uint8_t temp_id; + lsm->ReadID(&temp_id); + if(temp_id != LSM6DSL_ACC_GYRO_WHO_AM_I) + temp_value |= LSM6D_NOT_CONNECT; + Acc->ReadID(&temp_id); + if(temp_id != LSM303AGR_ACC_WHO_AM_I) + temp_value |= LSM303_ACC_NOT_CONNECT; + Mag->ReadID(&temp_id); + if(temp_id != LSM303AGR_MAG_WHO_AM_I) + temp_value |= LSM303_MAG_NOT_CONNECT; + HumTemp->ReadID(&temp_id); + if(temp_id != HTS221_WHO_AM_I_VAL) + temp_value |= HTS221_NOT_CONNECT; + PressTemp->ReadID(&temp_id); + if(temp_id != LPS22HB_WHO_AM_I_VAL) + temp_value |= LPS22_NOT_CONNECT; + return temp_value; +} + +void IKS01A2::init() +{ + lsm->Enable_X(); + lsm->Enable_G(); + // + Acc->Enable(); + Mag->Enable(); + + HumTemp->Enable(); + PressTemp->Enable(); +} + +void IKS01A2::getXAxesLSM6DSL(int32_t *arg) +{ + lsm->Get_X_Axes(arg); +} + +void IKS01A2::getGAxesLSM6DSL(int32_t *arg) +{ + lsm->Get_G_Axes(arg); +} + +void IKS01A2::getDataLSM303AGR(int32_t *arg) +{ + Acc->GetAxes(arg); +} + +void IKS01A2::getDataLSM303MAG(int32_t *arg) +{ + Mag->GetAxes(arg); +} + +void IKS01A2::GetHumidity(float *arg) +{ + HumTemp->GetHumidity(arg); +} + +void IKS01A2::GetTemperatureHTS221(float *arg) +{ + HumTemp->GetTemperature(arg); +} + +void IKS01A2::GetPressure(float *arg) +{ + PressTemp->GetPressure(arg); +} + +void IKS01A2::GetTemperatureLPS22HB(float *arg) +{ + PressTemp->GetTemperature(arg); +} + + +char IKS01A2::getIdLSM6DSL() +{ + uint8_t temp_id; + lsm->ReadID(&temp_id); + return temp_id; +} + +char IKS01A2::getIdLSM303AGR() +{ + uint8_t temp_id; + Acc->ReadID(&temp_id); + return temp_id; +} + +char IKS01A2::getIdLSM303MAG() +{ + uint8_t temp_id; + Mag->ReadID(&temp_id); + return temp_id; +} + +char IKS01A2::getIdHTS221() +{ + uint8_t temp_id; + HumTemp->ReadID(&temp_id); + return temp_id; +} + +char IKS01A2::getIdLPS22HB() +{ + uint8_t temp_id; + PressTemp->ReadID(&temp_id); + return temp_id; +}