in AZ3166/src/libraries/Sensors/src/LSM6DSLSensor.cpp [1986:2084]
int LSM6DSLSensor::getEventStatus(LSM6DSL_Event_Status_t *status)
{
uint8_t Wake_Up_Src = 0, Tap_Src = 0, D6D_Src = 0, Func_Src = 0, Md1_Cfg = 0, Md2_Cfg = 0, Int1_Ctrl = 0;
memset((void *)status, 0x0, sizeof(LSM6DSL_Event_Status_t));
if(readReg(LSM6DSL_ACC_GYRO_WAKE_UP_SRC, &Wake_Up_Src) != 0)
{
return 1;
}
if(readReg(LSM6DSL_ACC_GYRO_TAP_SRC, &Tap_Src) != 0)
{
return 1;
}
if(readReg(LSM6DSL_ACC_GYRO_D6D_SRC, &D6D_Src) != 0)
{
return 1;
}
if(readReg(LSM6DSL_ACC_GYRO_FUNC_SRC, &Func_Src) != 0)
{
return 1;
}
if(readReg(LSM6DSL_ACC_GYRO_MD1_CFG, &Md1_Cfg ) != 0 )
{
return 1;
}
if(readReg(LSM6DSL_ACC_GYRO_MD2_CFG, &Md2_Cfg ) != 0)
{
return 1;
}
if(readReg(LSM6DSL_ACC_GYRO_INT1_CTRL, &Int1_Ctrl ) != 0)
{
return 1;
}
if((Md1_Cfg & LSM6DSL_ACC_GYRO_INT1_FF_MASK) || (Md2_Cfg & LSM6DSL_ACC_GYRO_INT2_FF_MASK))
{
if((Wake_Up_Src & LSM6DSL_ACC_GYRO_FF_EV_STATUS_MASK))
{
status->FreeFallStatus = 1;
}
}
if((Md1_Cfg & LSM6DSL_ACC_GYRO_INT1_WU_MASK) || (Md2_Cfg & LSM6DSL_ACC_GYRO_INT2_WU_MASK))
{
if((Wake_Up_Src & LSM6DSL_ACC_GYRO_WU_EV_STATUS_MASK))
{
status->WakeUpStatus = 1;
}
}
if((Md1_Cfg & LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_MASK) || (Md2_Cfg & LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_MASK))
{
if((Tap_Src & LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_MASK))
{
status->TapStatus = 1;
}
}
if((Md1_Cfg & LSM6DSL_ACC_GYRO_INT1_TAP_MASK) || (Md2_Cfg & LSM6DSL_ACC_GYRO_INT2_TAP_MASK))
{
if((Tap_Src & LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_MASK))
{
status->DoubleTapStatus = 1;
}
}
if((Md1_Cfg & LSM6DSL_ACC_GYRO_INT1_6D_MASK) || (Md2_Cfg & LSM6DSL_ACC_GYRO_INT2_6D_MASK))
{
if((D6D_Src & LSM6DSL_ACC_GYRO_D6D_EV_STATUS_MASK))
{
status->D6DOrientationStatus = 1;
}
}
if((Int1_Ctrl & LSM6DSL_ACC_GYRO_INT1_PEDO_MASK))
{
if((Func_Src & LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_MASK))
{
status->StepStatus = 1;
}
}
if((Md1_Cfg & LSM6DSL_ACC_GYRO_INT1_TILT_MASK) || (Md2_Cfg & LSM6DSL_ACC_GYRO_INT2_TILT_MASK))
{
if((Func_Src & LSM6DSL_ACC_GYRO_TILT_EV_STATUS_MASK))
{
status->TiltStatus = 1;
}
}
return 0;
}