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