| | |
| | | * Copyright (c) 2012-2013 Jan Breuer, |
| | | * |
| | | * All Rights Reserved |
| | | * |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are |
| | | * met: |
| | |
| | | * 2. Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * |
| | | * |
| | | * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR |
| | | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| | | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| | |
| | | /** |
| | | * @file scpi_error.h |
| | | * @date Thu Nov 15 10:58:45 UTC 2012 |
| | | * |
| | | * |
| | | * @brief Error handling and storing routines |
| | | * |
| | | * |
| | | * |
| | | * |
| | | */ |
| | | |
| | | #ifndef SCPI_ERROR_H |
| | |
| | | #ifdef __cplusplus |
| | | extern "C" { |
| | | #endif |
| | | |
| | | |
| | | void SCPI_ErrorInit(scpi_t * context); |
| | | void SCPI_ErrorClear(scpi_t * context); |
| | | int16_t SCPI_ErrorPop(scpi_t * context); |
| | | void SCPI_ErrorPush(scpi_t * context, int16_t err); |
| | | int32_t SCPI_ErrorCount(scpi_t * context); |
| | | int32_t SCPI_ErrorCount(scpi_t * context); |
| | | const char * SCPI_ErrorTranslate(int16_t err); |
| | | |
| | | #define SCPI_ERROR_SYNTAX -102 |
| | | #define SCPI_ERROR_INVALID_SEPARATOR -103 |
| | | #define SCPI_ERROR_UNDEFINED_HEADER -113 |
| | | #define SCPI_ERROR_PARAMETER_NOT_ALLOWED -108 |
| | | #define SCPI_ERROR_MISSING_PARAMETER -109 |
| | | #define SCPI_ERROR_INVALID_SUFFIX -131 |
| | | #define SCPI_ERROR_SUFFIX_NOT_ALLOWED -138 |
| | | #define SCPI_ERROR_UNKNOWN_PARAMETER -199 // TODO: fix name and value |
| | | #define SCPI_ERROR_INVALID_PARAMETER -198 // TODO: fix name and value |
| | | |
| | | |
| | | #define SCPI_ERROR_EXECUTION_ERROR -200 |
| | | |
| | | /* http://en.wikipedia.org/wiki/X_Macro */ |
| | | #define LIST_OF_ERRORS \ |
| | | X(SCPI_ERROR_SYNTAX, -102, "Syntax error") \ |
| | | X(SCPI_ERROR_INVALID_SEPARATOR, -103, "Invalid separator") \ |
| | | X(SCPI_ERROR_UNDEFINED_HEADER, -113, "Undefined header") \ |
| | | X(SCPI_ERROR_PARAMETER_NOT_ALLOWED,-108, "Parameter not allowed") \ |
| | | X(SCPI_ERROR_MISSING_PARAMETER, -109, "Missing parameter") \ |
| | | X(SCPI_ERROR_INVALID_SUFFIX, -131, "Invalid suffix") \ |
| | | X(SCPI_ERROR_SUFFIX_NOT_ALLOWED, -138, "Suffix not allowed") \ |
| | | X(SCPI_ERROR_UNKNOWN_PARAMETER, -199, "Unknown parameter") \ |
| | | X(SCPI_ERROR_INVALID_PARAMETER, -198, "Invalid parameter") \ |
| | | X(SCPI_ERROR_UNEXPECTED_CHARACTER, -197, "Unexpected character") \ |
| | | X(SCPI_ERROR_EXECUTION_ERROR, -200, "Execution error") \ |
| | | |
| | | |
| | | enum { |
| | | #define X(def, val, str) def = val, |
| | | LIST_OF_ERRORS |
| | | #undef X |
| | | }; |
| | | |
| | | #ifdef __cplusplus |
| | | } |
| | | #endif |