Home | History | Annotate | Download | only in common
      1 /*
      2  $License:
      3     Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
      4  $
      5  */
      6 
      7 /******************************************************************************
      8  *
      9  * $Id: mlerrorcode.c 5629 2011-06-11 03:13:08Z mcaramello $
     10  *
     11  *****************************************************************************/
     12 
     13 #include <stdio.h>
     14 #include <string.h>
     15 
     16 #include "mltypes.h"
     17 #include "mlerrorcode.h"
     18 
     19 #define ERROR_CODE_CASE(CODE)   \
     20     case CODE:                  \
     21         return #CODE            \
     22 
     23 /**
     24  *  @brief  return a string containing the label assigned to the error code.
     25  *
     26  *  @param  errorcode
     27  *              The errorcode value of which the label has to be returned.
     28  *
     29  *  @return A string containing the error code label.
     30  */
     31 char* MLErrorCode(inv_error_t errorcode)
     32 {
     33     switch(errorcode) {
     34         ERROR_CODE_CASE(INV_SUCCESS);
     35         ERROR_CODE_CASE(INV_ERROR);
     36         ERROR_CODE_CASE(INV_ERROR_INVALID_PARAMETER);
     37         ERROR_CODE_CASE(INV_ERROR_FEATURE_NOT_ENABLED);
     38         ERROR_CODE_CASE(INV_ERROR_FEATURE_NOT_IMPLEMENTED);
     39         ERROR_CODE_CASE(INV_ERROR_DMP_NOT_STARTED);
     40         ERROR_CODE_CASE(INV_ERROR_DMP_STARTED);
     41         ERROR_CODE_CASE(INV_ERROR_NOT_OPENED);
     42         ERROR_CODE_CASE(INV_ERROR_OPENED);
     43         ERROR_CODE_CASE(INV_ERROR_INVALID_MODULE);
     44         ERROR_CODE_CASE(INV_ERROR_MEMORY_EXAUSTED);
     45         ERROR_CODE_CASE(INV_ERROR_DIVIDE_BY_ZERO);
     46         ERROR_CODE_CASE(INV_ERROR_ASSERTION_FAILURE);
     47         ERROR_CODE_CASE(INV_ERROR_FILE_OPEN);
     48         ERROR_CODE_CASE(INV_ERROR_FILE_READ);
     49         ERROR_CODE_CASE(INV_ERROR_FILE_WRITE);
     50 
     51         ERROR_CODE_CASE(INV_ERROR_SERIAL_CLOSED);
     52         ERROR_CODE_CASE(INV_ERROR_SERIAL_OPEN_ERROR);
     53         ERROR_CODE_CASE(INV_ERROR_SERIAL_READ);
     54         ERROR_CODE_CASE(INV_ERROR_SERIAL_WRITE);
     55         ERROR_CODE_CASE(INV_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED);
     56 
     57         ERROR_CODE_CASE(INV_ERROR_SM_TRANSITION);
     58         ERROR_CODE_CASE(INV_ERROR_SM_IMPROPER_STATE);
     59 
     60         ERROR_CODE_CASE(INV_ERROR_FIFO_OVERFLOW);
     61         ERROR_CODE_CASE(INV_ERROR_FIFO_FOOTER);
     62         ERROR_CODE_CASE(INV_ERROR_FIFO_READ_COUNT);
     63         ERROR_CODE_CASE(INV_ERROR_FIFO_READ_DATA);
     64         ERROR_CODE_CASE(INV_ERROR_MEMORY_SET);
     65 
     66         ERROR_CODE_CASE(INV_ERROR_LOG_MEMORY_ERROR);
     67         ERROR_CODE_CASE(INV_ERROR_LOG_OUTPUT_ERROR);
     68 
     69         ERROR_CODE_CASE(INV_ERROR_OS_BAD_PTR);
     70         ERROR_CODE_CASE(INV_ERROR_OS_BAD_HANDLE);
     71         ERROR_CODE_CASE(INV_ERROR_OS_CREATE_FAILED);
     72         ERROR_CODE_CASE(INV_ERROR_OS_LOCK_FAILED);
     73 
     74         ERROR_CODE_CASE(INV_ERROR_COMPASS_DATA_OVERFLOW);
     75         ERROR_CODE_CASE(INV_ERROR_COMPASS_DATA_UNDERFLOW);
     76         ERROR_CODE_CASE(INV_ERROR_COMPASS_DATA_NOT_READY);
     77         ERROR_CODE_CASE(INV_ERROR_COMPASS_DATA_ERROR);
     78 
     79         ERROR_CODE_CASE(INV_ERROR_CALIBRATION_LOAD);
     80         ERROR_CODE_CASE(INV_ERROR_CALIBRATION_STORE);
     81         ERROR_CODE_CASE(INV_ERROR_CALIBRATION_LEN);
     82         ERROR_CODE_CASE(INV_ERROR_CALIBRATION_CHECKSUM);
     83 
     84         default:
     85         {
     86             #define UNKNOWN_ERROR_CODE 1234
     87             return ERROR_NAME(UNKNOWN_ERROR_CODE);
     88             break;
     89         }
     90 
     91     }
     92 }
     93 
     94 /**
     95  *  @}
     96  */
     97