From 3044205b9aeabb90757c6030f2dc4bcfd1c322bf Mon Sep 17 00:00:00 2001 From: Justin Fichtner <justin.fichtner@lakeshore.com> Date: ćšć, 30 11æ 2017 08:16:06 +0800 Subject: [PATCH] Implement condition register in Questionable register set --- libscpi/inc/scpi/minimal.h | 1 + libscpi/inc/scpi/types.h | 1 + libscpi/src/ieee488.c | 3 +++ libscpi/src/minimal.c | 12 ++++++++++++ libscpi/test/test_parser.c | 8 +++++++- 5 files changed, 24 insertions(+), 1 deletions(-) diff --git a/libscpi/inc/scpi/minimal.h b/libscpi/inc/scpi/minimal.h index 31713dd..6e53e4d 100644 --- a/libscpi/inc/scpi/minimal.h +++ b/libscpi/inc/scpi/minimal.h @@ -50,6 +50,7 @@ scpi_result_t SCPI_SystemErrorNextQ(scpi_t * context); scpi_result_t SCPI_SystemErrorCountQ(scpi_t * context); scpi_result_t SCPI_StatusQuestionableEventQ(scpi_t * context); + scpi_result_t SCPI_StatusQuestionableConditionQ(scpi_t * context); scpi_result_t SCPI_StatusQuestionableEnableQ(scpi_t * context); scpi_result_t SCPI_StatusQuestionableEnable(scpi_t * context); scpi_result_t SCPI_StatusOperationConditionQ(scpi_t * context); diff --git a/libscpi/inc/scpi/types.h b/libscpi/inc/scpi/types.h index 3584936..397e9bb 100644 --- a/libscpi/inc/scpi/types.h +++ b/libscpi/inc/scpi/types.h @@ -77,6 +77,7 @@ SCPI_REG_OPERC, /* OPERation Status Condition Register */ SCPI_REG_QUES, /* QUEStionable status register */ SCPI_REG_QUESE, /* QUEStionable status Enable Register */ + SCPI_REG_QUESC, /* QUEStionable status Condition Register /* last definition - number of registers */ SCPI_REG_COUNT diff --git a/libscpi/src/ieee488.c b/libscpi/src/ieee488.c index 6ae5437..4e1be81 100644 --- a/libscpi/src/ieee488.c +++ b/libscpi/src/ieee488.c @@ -153,6 +153,9 @@ case SCPI_REG_QUESE: regUpdate(context, SCPI_REG_QUES); break; + case SCPI_REG_QUESC: + regUpdateEvent(context, old_val, val, SCPI_REG_QUES); + break; case SCPI_REG_OPER: regUpdateSTB(context, val, SCPI_REG_OPERE, STB_OPS); break; diff --git a/libscpi/src/minimal.c b/libscpi/src/minimal.c index 05e351e..ae56da6 100644 --- a/libscpi/src/minimal.c +++ b/libscpi/src/minimal.c @@ -99,6 +99,18 @@ } /** + * STATus:QUEStionable:CONDition? + * @param context + * @return + */ +scpi_result_t SCPI_StatusQuestionableConditionQ(scpi_t * context) { + /* return value */ + SCPI_ResultInt32(context, SCPI_RegGet(context, SCPI_REG_QUESC)); + + return SCPI_RES_OK; +} + +/** * STATus:QUEStionable[:EVENt]? * @param context * @return diff --git a/libscpi/test/test_parser.c b/libscpi/test/test_parser.c index 0910731..4ca3ef8 100644 --- a/libscpi/test/test_parser.c +++ b/libscpi/test/test_parser.c @@ -78,6 +78,7 @@ { .pattern = "SYSTem:VERSion?", .callback = SCPI_SystemVersionQ,}, { .pattern = "STATus:QUEStionable[:EVENt]?", .callback = SCPI_StatusQuestionableEventQ,}, + { .pattern = "STATus:QUEStionable:CONDition?", .callback = SCPI_Status_QuestionableConditionQ,}, { .pattern = "STATus:QUEStionable:ENABle", .callback = SCPI_StatusQuestionableEnable,}, { .pattern = "STATus:QUEStionable:ENABle?", .callback = SCPI_StatusQuestionableEnableQ,}, @@ -439,6 +440,12 @@ TEST_IEEE4882("STATus:QUEStionable:ENABle 2\r\n", ""); TEST_IEEE4882_REG(SCPI_REG_QUESE, 2); + EST_IEEE4882("STATus:QUEStionable:CONDition?\r\n", "0\r\n"); + TEST_IEEE4882_REG_SET(SCPI_REG_QUESC, 1); + TEST_IEEE4882("STATus:QUEStionable:CONDition?\r\n", "1\r\n"); + TEST_IEEE4882("STATus:QUEStionable:EVENt?\r\n", "1\r\n"); + TEST_IEEE4882_REG_SET(SCPI_REG_QUESC, 0); + TEST_IEEE4882("STATus:QUEStionable:CONDition?\r\n", "0\r\n"); TEST_IEEE4882("STATus:QUEStionable:EVENt?\r\n", "0\r\n"); TEST_IEEE4882_REG_SET(SCPI_REG_QUES, 1); TEST_IEEE4882("STATus:QUEStionable:EVENt?\r\n", "1\r\n"); @@ -454,7 +461,6 @@ TEST_IEEE4882("STATus:OPERation:CONDition?\r\n", "0\r\n"); TEST_IEEE4882_REG_SET(SCPI_REG_OPERC, 1); TEST_IEEE4882("STATus:OPERation:CONDition?\r\n", "1\r\n"); - TEST_IEEE4882_REG(SCPI_REG_OPERC, 1); TEST_IEEE4882("STATus:OPERation:EVENt?\r\n", "1\r\n"); TEST_IEEE4882_REG_SET(SCPI_REG_OPERC, 0); TEST_IEEE4882("STATus:OPERation:CONDition?\r\n", "0\r\n"); -- Gitblit v1.9.1