mbed official / mbed-dev

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
mbed library release version 165

Who changed what in which revision?

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