From 9b43058766282733ab8c2c290f4736e2d8bd5014 Mon Sep 17 00:00:00 2001 From: Jan Breuer <jan.breuer@jaybee.cz> Date: 周日, 24 4月 2016 22:12:06 +0800 Subject: [PATCH] Add tests for Device dependent error information --- libscpi/src/parser.c | 38 +++++++++++++++++++++++++------------- 1 files changed, 25 insertions(+), 13 deletions(-) diff --git a/libscpi/src/parser.c b/libscpi/src/parser.c index 6ced497..db6f5df 100644 --- a/libscpi/src/parser.c +++ b/libscpi/src/parser.c @@ -246,9 +246,17 @@ /** * Initialize SCPI context structure * @param context - * @param command_list - * @param buffer + * @param commands * @param interface + * @param units + * @param idn1 + * @param idn2 + * @param idn3 + * @param idn4 + * @param input_buffer + * @param input_buffer_length + * @param error_queue_data + * @param error_queue_size */ void SCPI_Init(scpi_t * context, const scpi_command_t * commands, @@ -256,8 +264,7 @@ const scpi_unit_def_t * units, const char * idn1, const char * idn2, const char * idn3, const char * idn4, char * input_buffer, size_t input_buffer_length, - scpi_error_t * error_queue_data, int16_t error_queue_size, - char * error_info_heap, size_t error_info_heap_length) { + scpi_error_t * error_queue_data, int16_t error_queue_size) { memset(context, 0, sizeof (*context)); context->cmdlist = commands; context->interface = interface; @@ -269,13 +276,22 @@ context->buffer.data = input_buffer; context->buffer.length = input_buffer_length; context->buffer.position = 0; - context->error_info_heap.data = error_info_heap; - context->error_info_heap.wr = 0; - context->error_info_heap.size = error_info_heap_length; - context->error_info_heap.count = context->error_info_heap.size; - memset(context->error_info_heap.data, 0, context->error_info_heap.size); SCPI_ErrorInit(context, error_queue_data, error_queue_size); } + +#if USE_DEVICE_DEPENDENT_ERROR_INFORMATION && !USE_MEMORY_ALLOCATION_FREE +/** + * Initialize context's + * @param context + * @param data + * @param len + * @return + */ +void SCPI_InitHeap(scpi_t * context, + char * error_info_heap, size_t error_info_heap_length) { + scpiheap_init(&context->error_info_heap, error_info_heap, error_info_heap_length); +} +#endif /** * Interface to the application. Adds data to system buffer and try to search @@ -576,10 +592,6 @@ outputlimit -= len[i]; } result += writeData(context, "\"", 1); - -#if USE_DEVICE_DEPENDENT_ERROR_INFORMATION - SCPIDEFINE_free(&context->error_info_heap, error->device_dependent_info, false); -#endif return result; } -- Gitblit v1.9.1