summaryrefslogtreecommitdiff
path: root/libsensors_iio/software/simple_apps/common/mlerrorcode.c
blob: 25b0df64ddfd505e12588820c0b841a2c1191a21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/*
 $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;
        }

    }
}

/**
 *  @}
 */