blob: 25b0df64ddfd505e12588820c0b841a2c1191a21 [file] [log] [blame]
/*
$License:
Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
$
*/
/******************************************************************************
*
* $Id: mlerrorcode.c 5629 2011-06-11 03:13:08Z mcaramello $
*
*****************************************************************************/
#include <stdio.h>
#include <string.h>
#include "mltypes.h"
#include "mlerrorcode.h"
#define ERROR_CODE_CASE(CODE) \
case CODE: \
return #CODE \
/**
* @brief return a string containing the label assigned to the error code.
*
* @param errorcode
* The errorcode value of which the label has to be returned.
*
* @return A string containing the error code label.
*/
char* MLErrorCode(inv_error_t errorcode)
{
switch(errorcode) {
ERROR_CODE_CASE(INV_SUCCESS);
ERROR_CODE_CASE(INV_ERROR);
ERROR_CODE_CASE(INV_ERROR_INVALID_PARAMETER);
ERROR_CODE_CASE(INV_ERROR_FEATURE_NOT_ENABLED);
ERROR_CODE_CASE(INV_ERROR_FEATURE_NOT_IMPLEMENTED);
ERROR_CODE_CASE(INV_ERROR_DMP_NOT_STARTED);
ERROR_CODE_CASE(INV_ERROR_DMP_STARTED);
ERROR_CODE_CASE(INV_ERROR_NOT_OPENED);
ERROR_CODE_CASE(INV_ERROR_OPENED);
ERROR_CODE_CASE(INV_ERROR_INVALID_MODULE);
ERROR_CODE_CASE(INV_ERROR_MEMORY_EXAUSTED);
ERROR_CODE_CASE(INV_ERROR_DIVIDE_BY_ZERO);
ERROR_CODE_CASE(INV_ERROR_ASSERTION_FAILURE);
ERROR_CODE_CASE(INV_ERROR_FILE_OPEN);
ERROR_CODE_CASE(INV_ERROR_FILE_READ);
ERROR_CODE_CASE(INV_ERROR_FILE_WRITE);
ERROR_CODE_CASE(INV_ERROR_SERIAL_CLOSED);
ERROR_CODE_CASE(INV_ERROR_SERIAL_OPEN_ERROR);
ERROR_CODE_CASE(INV_ERROR_SERIAL_READ);
ERROR_CODE_CASE(INV_ERROR_SERIAL_WRITE);
ERROR_CODE_CASE(INV_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED);
ERROR_CODE_CASE(INV_ERROR_SM_TRANSITION);
ERROR_CODE_CASE(INV_ERROR_SM_IMPROPER_STATE);
ERROR_CODE_CASE(INV_ERROR_FIFO_OVERFLOW);
ERROR_CODE_CASE(INV_ERROR_FIFO_FOOTER);
ERROR_CODE_CASE(INV_ERROR_FIFO_READ_COUNT);
ERROR_CODE_CASE(INV_ERROR_FIFO_READ_DATA);
ERROR_CODE_CASE(INV_ERROR_MEMORY_SET);
ERROR_CODE_CASE(INV_ERROR_LOG_MEMORY_ERROR);
ERROR_CODE_CASE(INV_ERROR_LOG_OUTPUT_ERROR);
ERROR_CODE_CASE(INV_ERROR_OS_BAD_PTR);
ERROR_CODE_CASE(INV_ERROR_OS_BAD_HANDLE);
ERROR_CODE_CASE(INV_ERROR_OS_CREATE_FAILED);
ERROR_CODE_CASE(INV_ERROR_OS_LOCK_FAILED);
ERROR_CODE_CASE(INV_ERROR_COMPASS_DATA_OVERFLOW);
ERROR_CODE_CASE(INV_ERROR_COMPASS_DATA_UNDERFLOW);
ERROR_CODE_CASE(INV_ERROR_COMPASS_DATA_NOT_READY);
ERROR_CODE_CASE(INV_ERROR_COMPASS_DATA_ERROR);
ERROR_CODE_CASE(INV_ERROR_CALIBRATION_LOAD);
ERROR_CODE_CASE(INV_ERROR_CALIBRATION_STORE);
ERROR_CODE_CASE(INV_ERROR_CALIBRATION_LEN);
ERROR_CODE_CASE(INV_ERROR_CALIBRATION_CHECKSUM);
default:
{
#define UNKNOWN_ERROR_CODE 1234
return ERROR_NAME(UNKNOWN_ERROR_CODE);
break;
}
}
}
/**
* @}
*/