static const char *get_error_name(int error_code) { #define ERROR_NAME(code) case code: return #code switch (error_code) { ERROR_NAME(ERROR_INVALID_DATA); ERROR_NAME(ERROR_ACCESS_DENIED); ERROR_NAME(ERROR_INVALID_HANDLE); ERROR_NAME(ERROR_INVALID_NAME); ERROR_NAME(ERROR_INVALID_PARAMETER); ERROR_NAME(ERROR_INSUFFICIENT_BUFFER); ERROR_NAME(ERROR_INVALID_WINDOW_HANDLE); ERROR_NAME(ERROR_PIPE_BUSY); // FIXME default: return "<unknown>"; } }
static void do_info() { char c; int i, tmp; struct chan *channel; input_stop(); if ((c = getchar()) == 'V') { tmp = AD7793_voltmon(); printf("%u.%uV\n", tmp/1000000, tmp%1000000); } else if (c == 'T') { tmp = AD7793_temperature(); printf("%u.%uC\n", tmp/10000, tmp%10000); } else { if ((i = CHANNEL_ID(c)) < CHANNELS) // print only one channel tmp = i+1; else { // print all channels and state information i = 0; tmp = CHANNELS; printf("%s\n", STATE_NAME(state_getState())); } while (i < tmp) { channel = conf_get(i); printf("%c %s ch%u %ux %i ... %i %iuV\n", CHANNEL_NAME(i), ERROR_NAME(state_getError(i)), channel->num, 1<<channel->gain, channel->min, channel->max, input_latest(i)); i++; } } input_start(); }
/** * @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(tMLError errorcode) { switch(errorcode) { ERROR_CODE_CASE(ML_SUCCESS); ERROR_CODE_CASE(ML_ERROR); ERROR_CODE_CASE(ML_ERROR_INVALID_PARAMETER); ERROR_CODE_CASE(ML_ERROR_FEATURE_NOT_ENABLED); ERROR_CODE_CASE(ML_ERROR_FEATURE_NOT_IMPLEMENTED); ERROR_CODE_CASE(ML_ERROR_DMP_NOT_STARTED); ERROR_CODE_CASE(ML_ERROR_DMP_STARTED); ERROR_CODE_CASE(ML_ERROR_NOT_OPENED); ERROR_CODE_CASE(ML_ERROR_OPENED); ERROR_CODE_CASE(ML_ERROR_INVALID_MODULE); ERROR_CODE_CASE(ML_ERROR_MEMORY_EXAUSTED); ERROR_CODE_CASE(ML_ERROR_DIVIDE_BY_ZERO); ERROR_CODE_CASE(ML_ERROR_ASSERTION_FAILURE); ERROR_CODE_CASE(ML_ERROR_FILE_OPEN); ERROR_CODE_CASE(ML_ERROR_FILE_READ); ERROR_CODE_CASE(ML_ERROR_FILE_WRITE); ERROR_CODE_CASE(ML_ERROR_SERIAL_CLOSED); ERROR_CODE_CASE(ML_ERROR_SERIAL_OPEN_ERROR); ERROR_CODE_CASE(ML_ERROR_SERIAL_READ); ERROR_CODE_CASE(ML_ERROR_SERIAL_WRITE); ERROR_CODE_CASE(ML_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED); ERROR_CODE_CASE(ML_ERROR_SM_TRANSITION); ERROR_CODE_CASE(ML_ERROR_SM_IMPROPER_STATE); ERROR_CODE_CASE(ML_ERROR_FIFO_OVERFLOW); ERROR_CODE_CASE(ML_ERROR_FIFO_FOOTER); ERROR_CODE_CASE(ML_ERROR_FIFO_READ_COUNT); ERROR_CODE_CASE(ML_ERROR_FIFO_READ_DATA); ERROR_CODE_CASE(ML_ERROR_MEMORY_SET); ERROR_CODE_CASE(ML_ERROR_LOG_MEMORY_ERROR); ERROR_CODE_CASE(ML_ERROR_LOG_OUTPUT_ERROR); ERROR_CODE_CASE(ML_ERROR_OS_BAD_PTR); ERROR_CODE_CASE(ML_ERROR_OS_BAD_HANDLE); ERROR_CODE_CASE(ML_ERROR_OS_CREATE_FAILED); ERROR_CODE_CASE(ML_ERROR_OS_LOCK_FAILED); ERROR_CODE_CASE(ML_ERROR_COMPASS_DATA_OVERFLOW); ERROR_CODE_CASE(ML_ERROR_COMPASS_DATA_UNDERFLOW); ERROR_CODE_CASE(ML_ERROR_COMPASS_DATA_NOT_READY); ERROR_CODE_CASE(ML_ERROR_COMPASS_DATA_ERROR); ERROR_CODE_CASE(ML_ERROR_CALIBRATION_LOAD); ERROR_CODE_CASE(ML_ERROR_CALIBRATION_STORE); ERROR_CODE_CASE(ML_ERROR_CALIBRATION_LEN); ERROR_CODE_CASE(ML_ERROR_CALIBRATION_CHECKSUM); default: { #define UNKNOWN_ERROR_CODE 1234 return ERROR_NAME(UNKNOWN_ERROR_CODE); break; } } }