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 */ MLErrorCode(inv_error_t errorcode)31char* 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