From 5a5250218db5ecf87ff03106b7575419865d07ba Mon Sep 17 00:00:00 2001 From: nancy.liao <huihui.liao@greentest.com.cn> Date: 周三, 16 4月 2025 18:59:28 +0800 Subject: [PATCH] scpi修改 --- libscpi/inc/scpi/types.h | 5 ++++- libscpi/src/ieee488.c | 25 +++++++++++++++++++------ libscpi/inc/scpi/scpi-def.h | 6 +++--- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/libscpi/inc/scpi/scpi-def.h b/libscpi/inc/scpi/scpi-def.h index 8ce5c0c..46e5f94 100644 --- a/libscpi/inc/scpi/scpi-def.h +++ b/libscpi/inc/scpi/scpi-def.h @@ -46,10 +46,10 @@ */ #define SCPI_INPUT_BUFFER_LENGTH 256 #define SCPI_ERROR_QUEUE_SIZE 17 -#define SCPI_IDN1 "MANUFACTURE" -#define SCPI_IDN2 "INSTR2013" +#define SCPI_IDN1 "MANUFACTURE\n" +#define SCPI_IDN2 "INSTR2013\n" #define SCPI_IDN3 NULL -#define SCPI_IDN4 "01-02" +#define SCPI_IDN4 "01-02\n" extern const scpi_command_t scpi_commands[]; extern scpi_interface_t scpi_interface; diff --git a/libscpi/inc/scpi/types.h b/libscpi/inc/scpi/types.h index 0e9bc30..1644708 100644 --- a/libscpi/inc/scpi/types.h +++ b/libscpi/inc/scpi/types.h @@ -427,7 +427,7 @@ scpi_buffer_t buffer; //瑙f瀽鍛戒护鐨勫弬鏁板垪琛� scpi_param_list_t param_list; - //SCPI鐨勭‖浠舵帴鍙o紝鍒锋柊 閲嶇疆 鍐欏叆 鎶ラ敊 + //SCPI鐨勫閮ㄦ帴鍙o紝鍒锋柊 閲嶇疆 鍐欏叆 鎶ラ敊 scpi_interface_t * interface; //杈撳嚭鏁版嵁鐨勪釜鏁� int_fast16_t output_count; @@ -455,6 +455,9 @@ const char * idn[4]; //鍓╀綑寰呬紶杈撶殑瀛楄妭 size_t arbitrary_remaining; + + //output涓鸿嚜澧炲瓧娈碉紝淇濆瓨杩斿洖缁撴灉,鎻愪緵缁欑▼搴忓搷搴斿唴閮ㄨ緭鍑� + char outPut[1024]; }; enum _scpi_array_format_t { diff --git a/libscpi/src/ieee488.c b/libscpi/src/ieee488.c index 6e20a4c..6703c1b 100644 --- a/libscpi/src/ieee488.c +++ b/libscpi/src/ieee488.c @@ -174,10 +174,12 @@ if (stb & sre) { ptrans = ((old_val ^ val) & val); context->registers[SCPI_REG_STB] |= STB_SRQ; - if (ptrans & val) { + if (ptrans & val) + { writeControl(context, SCPI_CTRL_SRQ, context->registers[SCPI_REG_STB]); } - } else { + } else + { context->registers[SCPI_REG_STB] &= ~STB_SRQ; } break; @@ -322,8 +324,13 @@ */ scpi_result_t SCPI_CoreIdnQ(scpi_t * context) { int i; - for (i = 0; i < 4; i++) { - if (context->idn[i]) { + for (i = 0; i < 4; i++) + { + if (context->idn[i]) + { + char* outPut = "IDNS鍝嶅簲"; + memcpy(context->outPut,outPut,strlen(outPut)); + context->interface->write(context,context->idn[i],0); SCPI_ResultMnemonic(context, context->idn[i]); } else { SCPI_ResultMnemonic(context, "0"); @@ -384,8 +391,14 @@ * @param context * @return */ -scpi_result_t SCPI_CoreSreQ(scpi_t * context) { - SCPI_ResultInt32(context, SCPI_RegGet(context, SCPI_REG_SRE)); +scpi_result_t SCPI_CoreSreQ(scpi_t * context) +{ + context->interface->write(context,"Registers request start",0); + for(int i =0;i<SCPI_REG_COUNT;i++) + { + context->interface->write(context,(char*)context->registers[i],0); + } + context->interface->write(context,"Registers request end",0); return SCPI_RES_OK; } -- Gitblit v1.9.1