| | |
| | | #include "scpi/parser.h" |
| | | #include "scpi/ieee488.h" |
| | | #include "scpi/error.h" |
| | | #include "scpi/fifo.h" |
| | | #include "fifo_private.h" |
| | | |
| | | /* basic FIFO */ |
| | | static fifo_t local_error_queue; |
| | | static scpi_fifo_t local_error_queue; |
| | | |
| | | |
| | | |
| | | /** |
| | | * Initialize error queue |
| | | * @param context - scpi context |
| | | */ |
| | | void SCPI_ErrorInit(scpi_t * context) { |
| | | /* |
| | | * // FreeRTOS |
| | |
| | | |
| | | /* basic FIFO */ |
| | | context->error_queue = (scpi_error_queue_t)&local_error_queue; |
| | | fifo_init((fifo_t *)context->error_queue); |
| | | fifo_init((scpi_fifo_t *)context->error_queue); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | |
| | | /* basic FIFO */ |
| | | fifo_clear((fifo_t *)context->error_queue); |
| | | fifo_clear((scpi_fifo_t *)context->error_queue); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | |
| | | /* basic FIFO */ |
| | | fifo_remove((fifo_t *)context->error_queue, &result); |
| | | fifo_remove((scpi_fifo_t *)context->error_queue, &result); |
| | | |
| | | return result; |
| | | } |
| | |
| | | */ |
| | | |
| | | /* basic FIFO */ |
| | | fifo_count((fifo_t *)context->error_queue, &result); |
| | | fifo_count((scpi_fifo_t *)context->error_queue, &result); |
| | | |
| | | return result; |
| | | } |
| | |
| | | */ |
| | | |
| | | /* basic FIFO */ |
| | | fifo_add((fifo_t *)context->error_queue, err); |
| | | fifo_add((scpi_fifo_t *)context->error_queue, err); |
| | | } |
| | | |
| | | struct error_reg { |
| | |
| | | const char * SCPI_ErrorTranslate(int16_t err) { |
| | | switch (err) { |
| | | case 0: return "No error"; |
| | | case SCPI_ERROR_SYNTAX: return "Syntax error"; |
| | | case SCPI_ERROR_INVALID_SEPARATOR: return "Invalid separator"; |
| | | case SCPI_ERROR_UNDEFINED_HEADER: return "Undefined header"; |
| | | case SCPI_ERROR_PARAMETER_NOT_ALLOWED: return "Parameter not allowed"; |
| | | case SCPI_ERROR_MISSING_PARAMETER: return "Missing parameter"; |
| | | case SCPI_ERROR_INVALID_SUFFIX: return "Invalid suffix"; |
| | | case SCPI_ERROR_SUFFIX_NOT_ALLOWED: return "Suffix not allowed"; |
| | | #define X(def, val, str) case def: return str; |
| | | LIST_OF_ERRORS |
| | | #undef X |
| | | default: return "Unknown error"; |
| | | } |
| | | } |