Index: Accel.c =================================================================== diff -u -r01695bc10ee97cdeb3e68387668c1d234d05438e -r03d7cd41280b3e78925adb317b6e7af14118bf96 --- Accel.c (.../Accel.c) (revision 01695bc10ee97cdeb3e68387668c1d234d05438e) +++ Accel.c (.../Accel.c) (revision 03d7cd41280b3e78925adb317b6e7af14118bf96) @@ -491,6 +491,14 @@ SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_EXCESSIVE_TILT, x, y ) #endif } + } + else if ( ( TRUE == tiltErrorDetected ) && ( ( fabs( x ) > MAX_TILT_ANGLE_TO_CLEAR_ALARM ) || ( fabs( y ) > MAX_TILT_ANGLE_TO_CLEAR_ALARM ) ) ) + { +#ifdef _DG_ + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_EXCESSIVE_TILT, x, y ) +#else + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_EXCESSIVE_TILT, x, y ) +#endif } else if ( ( TRUE == tiltErrorDetected ) && ( ( fabs( x ) > MAX_TILT_ANGLE_TO_CLEAR_ALARM ) || ( fabs( y ) > MAX_TILT_ANGLE_TO_CLEAR_ALARM ) ) ) { @@ -585,33 +593,31 @@ *************************************************************************/ SELF_TEST_STATUS_T execAccelTest( void ) { - SELF_TEST_STATUS_T result = SELF_TEST_STATUS_IN_PROGRESS; + SELF_TEST_STATUS_T result = SELF_TEST_STATUS_IN_PROGRESS; + +#ifdef _HD_ + HD_ACCELEROMETER_SENSOR_CAL_RECORD_T cal = getHDAccelerometerSensorCalibrationRecord(); +#endif +#ifdef _DG_ + DG_ACCELEROMETER_SENSOR_CAL_RECORD_T cal = getDGAccelerometerSensorCalibrationRecord(); +#endif switch ( accelSelfTestState ) { - case ACCELEROMETER_SELF_TEST_STATE_START: - { - CALIBRATION_DATA_T cal; + case ACCELEROMETER_SELF_TEST_STATE_START: - // Retrieve blood flow sensor calibration data - if ( TRUE == getCalibrationData( &cal ) ) - { - accelCalOffsets[ ACCEL_AXIS_X ] = cal.accelXOffset; - accelCalOffsets[ ACCEL_AXIS_Y ] = cal.accelYOffset; - accelCalOffsets[ ACCEL_AXIS_Z ] = cal.accelZOffset; - accelSelfTestState = ACCELEROMETER_SELF_TEST_STATE_IN_PROGRESS; - } - else - { // shouldn't get here - should have failed NV-Data POST prior - result = SELF_TEST_STATUS_FAILED; - accelSelfTestState = ACCELEROMETER_SELF_TEST_STATE_COMPLETE; + accelCalOffsets[ ACCEL_AXIS_X ] = cal.accelXOffset; + accelCalOffsets[ ACCEL_AXIS_Y ] = cal.accelYOffset; + accelCalOffsets[ ACCEL_AXIS_Z ] = cal.accelZOffset; + accelSelfTestState = ACCELEROMETER_SELF_TEST_STATE_IN_PROGRESS; + + result = SELF_TEST_STATUS_FAILED; + accelSelfTestState = ACCELEROMETER_SELF_TEST_STATE_COMPLETE; #ifdef _DG_ - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_DG_ACCELEROMETER_SELF_TEST_FAILURE, 0 ) + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_DG_ACCELEROMETER_SELF_TEST_FAILURE, 0 ) #else - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_ACCELEROMETER_SELF_TEST_FAILURE, 0 ) + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_ACCELEROMETER_SELF_TEST_FAILURE, 0 ) #endif - } - } break; case ACCELEROMETER_SELF_TEST_STATE_IN_PROGRESS: @@ -654,62 +660,8 @@ * TEST SUPPORT FUNCTIONS *************************************************************************/ - /*********************************************************************//** * @brief - * The setAccelCalibration function sets the accelerometer calibration - * factors and has them stored in non-volatile memory. - * @details Inputs: accelCalOffsets - * @details Outputs: accelCalOffsets - * @param offsetX offset calibration factor for X axis - * @param offsetY offset calibration factor for Y axis - * @param offsetZ offset calibration factor for Z axis - * @return TRUE if calibration factors successfully set/stored, FALSE if not - *************************************************************************/ -BOOL setAccelCalibration( F32 offsetX, F32 offsetY, F32 offsetZ ) -{ - BOOL result = FALSE; - - if ( TRUE == isTestingActivated() ) - { - CALIBRATION_DATA_T cal; - - getCalibrationData( &cal ); - // keep locally and apply immediately - accelCalOffsets[ ACCEL_AXIS_X ] = offsetX; - accelCalOffsets[ ACCEL_AXIS_Y ] = offsetY; - accelCalOffsets[ ACCEL_AXIS_Z ] = offsetZ; - // also update calibration record in non-volatile memory - cal.accelXOffset = offsetX; - cal.accelYOffset = offsetY; - cal.accelZOffset = offsetZ; - setCalibrationData( cal ); - result = TRUE; - } - - return result; -} - -/*********************************************************************//** - * @brief - * The getAccelCalibration function retrieves the current accelerometer - * calibration factors. - * @details Inputs: accelCalOffsets - * @details Outputs: none - * @param offsetX value to populate with X axis offset calibration factor - * @param offsetY value to populate with Y axis offset calibration factor - * @param offsetZ value to populate with Z axis offset calibration factor - * @return none - *************************************************************************/ -void getAccelCalibration( F32 *offsetX, F32 *offsetY, F32 *offsetZ ) -{ - *offsetX = accelCalOffsets[ ACCEL_AXIS_X ]; - *offsetY = accelCalOffsets[ ACCEL_AXIS_Y ]; - *offsetZ = accelCalOffsets[ ACCEL_AXIS_Z ]; -} - -/*********************************************************************//** - * @brief * The testSetAccelDataPublishIntervalOverride function overrides the * accelerometer data publish interval. * @details Inputs: accelDataPublishInterval