| | |
| | | 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); |
| | | scpi_bool_t SCPI_ErrorPopEx(scpi_t * context, scpi_error_t * error); |
| | | int16_t SCPI_ErrorPop(scpi_t * context); |
| | | void SCPI_ErrorPushEx(scpi_t * context, int16_t err, char * info); |
| | | 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 \ |
| | | XE(SCPI_ERROR_COMMAND, -100, "Command error") \ |
| | | X(SCPI_ERROR_INVALID_CHARACTER, -101, "Invalid character") \ |
| | |
| | | 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") \ |
| | |
| | | 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 |
| | | } |