From db0bfe56689d8ca9bd2f716836db04d4cd252588 Mon Sep 17 00:00:00 2001 From: Jack <jack.barraclough.1@gmail.com> Date: 周三, 22 2月 2017 00:59:26 +0800 Subject: [PATCH] Fix compiler warning with USE_COMMAND_TAGS 0 --- libscpi/inc/scpi/error.h | 31 +++++++++++++++++-------------- 1 files changed, 17 insertions(+), 14 deletions(-) diff --git a/libscpi/inc/scpi/error.h b/libscpi/inc/scpi/error.h index 358e1bc..4a762b4 100644 --- a/libscpi/inc/scpi/error.h +++ b/libscpi/inc/scpi/error.h @@ -44,21 +44,23 @@ extern "C" { #endif - void SCPI_ErrorInit(scpi_t * context); + void SCPI_ErrorInit(scpi_t * context, scpi_error_t * data, int16_t size); void SCPI_ErrorClear(scpi_t * context); - int16_t SCPI_ErrorPop(scpi_t * context); + scpi_bool_t SCPI_ErrorPop(scpi_t * context, scpi_error_t * error); + void SCPI_ErrorPushEx(scpi_t * context, int16_t err, char * info, size_t info_len); void SCPI_ErrorPush(scpi_t * context, int16_t err); int32_t SCPI_ErrorCount(scpi_t * context); const char * SCPI_ErrorTranslate(int16_t err); -/* Using X-Macro technique to define everything once - * http://en.wikipedia.org/wiki/X_Macro - * - * X macro is for minimal set of errors for library itself - * XE macro is for full set of SCPI errors available to user application - */ + /* Using X-Macro technique to define everything once + * http://en.wikipedia.org/wiki/X_Macro + * + * X macro is for minimal set of errors for library itself + * XE macro is for full set of SCPI errors available to user application + */ #define LIST_OF_ERRORS \ + X(SCPI_ERROR_NO_ERROR, 0, "No error") \ XE(SCPI_ERROR_COMMAND, -100, "Command error") \ X(SCPI_ERROR_INVALID_CHARACTER, -101, "Invalid character") \ XE(SCPI_ERROR_SYNTAX, -102, "Syntax error") \ @@ -164,11 +166,11 @@ XE(SCPI_ERROR_OUT_OF_DEVICE_MEMORY, -321, "Out of memory") \ XE(SCPI_ERROR_SELF_TEST_FAILED, -330, "Self-test failed") \ XE(SCPI_ERROR_CALIBRATION_FAILED, -340, "Calibration failed") \ - XE(SCPI_ERROR_QUEUE_OVERFLOW, -350, "Queue overflow") \ + X(SCPI_ERROR_QUEUE_OVERFLOW, -350, "Queue overflow") \ XE(SCPI_ERROR_COMMUNICATION_ERROR, -360, "Communication error") \ XE(SCPI_ERROR_PARITY_ERROR_IN_CMD_MSG, -361, "Parity error in program message") \ XE(SCPI_ERROR_FRAMING_ERROR_IN_CMD_MSG, -362, "Framing error in program message") \ - XE(SCPI_ERROR_INPUT_BUFFER_OVERRUN, -363, "Input buffer overrun") \ + X(SCPI_ERROR_INPUT_BUFFER_OVERRUN, -363, "Input buffer overrun") \ XE(SCPI_ERROR_TIME_OUT, -365, "Time out error") \ XE(SCPI_ERROR_QUERY_ERROR, -400, "Query error") \ XE(SCPI_ERROR_QUERY_INTERRUPTED, -410, "Query INTERRUPTED") \ @@ -180,21 +182,22 @@ XE(SCPI_ERROR_REQUEST_CONTROL, -700, "Request control") \ XE(SCPI_ERROR_OPERATION_COMPLETE, -800, "Operation complete") \ -enum { + + enum { #define X(def, val, str) def = val, #if USE_FULL_ERROR_LIST #define XE X #else #define XE(def, val, str) #endif -LIST_OF_ERRORS + LIST_OF_ERRORS #if USE_USER_ERROR_LIST -LIST_OF_USER_ERRORS + LIST_OF_USER_ERRORS #endif #undef X #undef XE -}; + }; #ifdef __cplusplus } -- Gitblit v1.9.1