The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
mbed library. Release version 164

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 #ifndef STATUS_CODES_H_INCLUDED
AnnaBridge 171:3a7713b1edbc 2 #define STATUS_CODES_H_INCLUDED
AnnaBridge 171:3a7713b1edbc 3
AnnaBridge 171:3a7713b1edbc 4 #include <stdint.h>
AnnaBridge 171:3a7713b1edbc 5
AnnaBridge 171:3a7713b1edbc 6 /**
AnnaBridge 171:3a7713b1edbc 7 * \defgroup group_sam0_utils_status_codes Status Codes
AnnaBridge 171:3a7713b1edbc 8 *
AnnaBridge 171:3a7713b1edbc 9 * \ingroup group_sam0_utils
AnnaBridge 171:3a7713b1edbc 10 *
AnnaBridge 171:3a7713b1edbc 11 * @{
AnnaBridge 171:3a7713b1edbc 12 */
AnnaBridge 171:3a7713b1edbc 13
AnnaBridge 171:3a7713b1edbc 14 /** Mask to retrieve the error category of a status code. */
AnnaBridge 171:3a7713b1edbc 15 #define STATUS_CATEGORY_MASK 0xF0
AnnaBridge 171:3a7713b1edbc 16
AnnaBridge 171:3a7713b1edbc 17 /** Mask to retrieve the error code within the category of a status code. */
AnnaBridge 171:3a7713b1edbc 18 #define STATUS_ERROR_MASK 0x0F
AnnaBridge 171:3a7713b1edbc 19
AnnaBridge 171:3a7713b1edbc 20 /** Status code error categories. */
AnnaBridge 171:3a7713b1edbc 21 enum status_categories {
AnnaBridge 171:3a7713b1edbc 22 STATUS_CATEGORY_OK = 0x00,
AnnaBridge 171:3a7713b1edbc 23 STATUS_CATEGORY_COMMON = 0x10,
AnnaBridge 171:3a7713b1edbc 24 STATUS_CATEGORY_ANALOG = 0x30,
AnnaBridge 171:3a7713b1edbc 25 STATUS_CATEGORY_COM = 0x40,
AnnaBridge 171:3a7713b1edbc 26 STATUS_CATEGORY_IO = 0x50,
AnnaBridge 171:3a7713b1edbc 27 };
AnnaBridge 171:3a7713b1edbc 28
AnnaBridge 171:3a7713b1edbc 29 /**
AnnaBridge 171:3a7713b1edbc 30 * Status code that may be returned by shell commands and protocol
AnnaBridge 171:3a7713b1edbc 31 * implementations.
AnnaBridge 171:3a7713b1edbc 32 *
AnnaBridge 171:3a7713b1edbc 33 * \note Any change to these status codes and the corresponding
AnnaBridge 171:3a7713b1edbc 34 * message strings is strictly forbidden. New codes can be added,
AnnaBridge 171:3a7713b1edbc 35 * however, but make sure that any message string tables are updated
AnnaBridge 171:3a7713b1edbc 36 * at the same time.
AnnaBridge 171:3a7713b1edbc 37 */
AnnaBridge 171:3a7713b1edbc 38 enum status_code {
AnnaBridge 171:3a7713b1edbc 39 STATUS_OK = STATUS_CATEGORY_OK | 0x00,
AnnaBridge 171:3a7713b1edbc 40 STATUS_VALID_DATA = STATUS_CATEGORY_OK | 0x01,
AnnaBridge 171:3a7713b1edbc 41 STATUS_NO_CHANGE = STATUS_CATEGORY_OK | 0x02,
AnnaBridge 171:3a7713b1edbc 42 STATUS_ABORTED = STATUS_CATEGORY_OK | 0x04,
AnnaBridge 171:3a7713b1edbc 43 STATUS_BUSY = STATUS_CATEGORY_OK | 0x05,
AnnaBridge 171:3a7713b1edbc 44 STATUS_SUSPEND = STATUS_CATEGORY_OK | 0x06,
AnnaBridge 171:3a7713b1edbc 45
AnnaBridge 171:3a7713b1edbc 46 STATUS_ERR_IO = STATUS_CATEGORY_COMMON | 0x00,
AnnaBridge 171:3a7713b1edbc 47 STATUS_ERR_REQ_FLUSHED = STATUS_CATEGORY_COMMON | 0x01,
AnnaBridge 171:3a7713b1edbc 48 STATUS_ERR_TIMEOUT = STATUS_CATEGORY_COMMON | 0x02,
AnnaBridge 171:3a7713b1edbc 49 STATUS_ERR_BAD_DATA = STATUS_CATEGORY_COMMON | 0x03,
AnnaBridge 171:3a7713b1edbc 50 STATUS_ERR_NOT_FOUND = STATUS_CATEGORY_COMMON | 0x04,
AnnaBridge 171:3a7713b1edbc 51 STATUS_ERR_UNSUPPORTED_DEV = STATUS_CATEGORY_COMMON | 0x05,
AnnaBridge 171:3a7713b1edbc 52 STATUS_ERR_NO_MEMORY = STATUS_CATEGORY_COMMON | 0x06,
AnnaBridge 171:3a7713b1edbc 53 STATUS_ERR_INVALID_ARG = STATUS_CATEGORY_COMMON | 0x07,
AnnaBridge 171:3a7713b1edbc 54 STATUS_ERR_BAD_ADDRESS = STATUS_CATEGORY_COMMON | 0x08,
AnnaBridge 171:3a7713b1edbc 55 STATUS_ERR_BAD_FORMAT = STATUS_CATEGORY_COMMON | 0x0A,
AnnaBridge 171:3a7713b1edbc 56 STATUS_ERR_BAD_FRQ = STATUS_CATEGORY_COMMON | 0x0B,
AnnaBridge 171:3a7713b1edbc 57 STATUS_ERR_DENIED = STATUS_CATEGORY_COMMON | 0x0c,
AnnaBridge 171:3a7713b1edbc 58 STATUS_ERR_ALREADY_INITIALIZED = STATUS_CATEGORY_COMMON | 0x0d,
AnnaBridge 171:3a7713b1edbc 59 STATUS_ERR_OVERFLOW = STATUS_CATEGORY_COMMON | 0x0e,
AnnaBridge 171:3a7713b1edbc 60 STATUS_ERR_NOT_INITIALIZED = STATUS_CATEGORY_COMMON | 0x0f,
AnnaBridge 171:3a7713b1edbc 61
AnnaBridge 171:3a7713b1edbc 62 STATUS_ERR_SAMPLERATE_UNAVAILABLE = STATUS_CATEGORY_ANALOG | 0x00,
AnnaBridge 171:3a7713b1edbc 63 STATUS_ERR_RESOLUTION_UNAVAILABLE = STATUS_CATEGORY_ANALOG | 0x01,
AnnaBridge 171:3a7713b1edbc 64
AnnaBridge 171:3a7713b1edbc 65 STATUS_ERR_BAUDRATE_UNAVAILABLE = STATUS_CATEGORY_COM | 0x00,
AnnaBridge 171:3a7713b1edbc 66 STATUS_ERR_PACKET_COLLISION = STATUS_CATEGORY_COM | 0x01,
AnnaBridge 171:3a7713b1edbc 67 STATUS_ERR_PROTOCOL = STATUS_CATEGORY_COM | 0x02,
AnnaBridge 171:3a7713b1edbc 68
AnnaBridge 171:3a7713b1edbc 69 STATUS_ERR_PIN_MUX_INVALID = STATUS_CATEGORY_IO | 0x00,
AnnaBridge 171:3a7713b1edbc 70 };
AnnaBridge 171:3a7713b1edbc 71 typedef enum status_code status_code_genare_t;
AnnaBridge 171:3a7713b1edbc 72
AnnaBridge 171:3a7713b1edbc 73 /**
AnnaBridge 171:3a7713b1edbc 74 Status codes used by MAC stack.
AnnaBridge 171:3a7713b1edbc 75 */
AnnaBridge 171:3a7713b1edbc 76 enum status_code_wireless {
AnnaBridge 171:3a7713b1edbc 77 //STATUS_OK = 0, //!< Success
AnnaBridge 171:3a7713b1edbc 78 ERR_IO_ERROR = -1, //!< I/O error
AnnaBridge 171:3a7713b1edbc 79 ERR_FLUSHED = -2, //!< Request flushed from queue
AnnaBridge 171:3a7713b1edbc 80 ERR_TIMEOUT = -3, //!< Operation timed out
AnnaBridge 171:3a7713b1edbc 81 ERR_BAD_DATA = -4, //!< Data integrity check failed
AnnaBridge 171:3a7713b1edbc 82 ERR_PROTOCOL = -5, //!< Protocol error
AnnaBridge 171:3a7713b1edbc 83 ERR_UNSUPPORTED_DEV = -6, //!< Unsupported device
AnnaBridge 171:3a7713b1edbc 84 ERR_NO_MEMORY = -7, //!< Insufficient memory
AnnaBridge 171:3a7713b1edbc 85 ERR_INVALID_ARG = -8, //!< Invalid argument
AnnaBridge 171:3a7713b1edbc 86 ERR_BAD_ADDRESS = -9, //!< Bad address
AnnaBridge 171:3a7713b1edbc 87 ERR_BUSY = -10, //!< Resource is busy
AnnaBridge 171:3a7713b1edbc 88 ERR_BAD_FORMAT = -11, //!< Data format not recognized
AnnaBridge 171:3a7713b1edbc 89 ERR_NO_TIMER = -12, //!< No timer available
AnnaBridge 171:3a7713b1edbc 90 ERR_TIMER_ALREADY_RUNNING = -13, //!< Timer already running
AnnaBridge 171:3a7713b1edbc 91 ERR_TIMER_NOT_RUNNING = -14, //!< Timer not running
AnnaBridge 171:3a7713b1edbc 92
AnnaBridge 171:3a7713b1edbc 93 /**
AnnaBridge 171:3a7713b1edbc 94 * \brief Operation in progress
AnnaBridge 171:3a7713b1edbc 95 *
AnnaBridge 171:3a7713b1edbc 96 * This status code is for driver-internal use when an operation
AnnaBridge 171:3a7713b1edbc 97 * is currently being performed.
AnnaBridge 171:3a7713b1edbc 98 *
AnnaBridge 171:3a7713b1edbc 99 * \note Drivers should never return this status code to any
AnnaBridge 171:3a7713b1edbc 100 * callers. It is strictly for internal use.
AnnaBridge 171:3a7713b1edbc 101 */
AnnaBridge 171:3a7713b1edbc 102 OPERATION_IN_PROGRESS = -128,
AnnaBridge 171:3a7713b1edbc 103 };
AnnaBridge 171:3a7713b1edbc 104
AnnaBridge 171:3a7713b1edbc 105 typedef enum status_code_wireless status_code_t;
AnnaBridge 171:3a7713b1edbc 106
AnnaBridge 171:3a7713b1edbc 107 /** @} */
AnnaBridge 171:3a7713b1edbc 108
AnnaBridge 171:3a7713b1edbc 109 #endif /* STATUS_CODES_H_INCLUDED */