From 6e5e3e0e3fc450eaf53feee059824ad85c4f270d Mon Sep 17 00:00:00 2001 From: Jan Breuer <jan.breuer@jaybee.cz> Date: ćšć, 06 8æ 2015 22:32:35 +0800 Subject: [PATCH] Resolve #38 Error queue not empty bit --- examples/common/scpi-def.c | 62 ++++++++++++++++++++----------- 1 files changed, 40 insertions(+), 22 deletions(-) diff --git a/examples/common/scpi-def.c b/examples/common/scpi-def.c index 562b67b..e1089cc 100644 --- a/examples/common/scpi-def.c +++ b/examples/common/scpi-def.c @@ -40,18 +40,18 @@ #include "scpi/scpi.h" #include "scpi-def.h" -scpi_result_t DMM_MeasureVoltageDcQ(scpi_t * context) { +static scpi_result_t DMM_MeasureVoltageDcQ(scpi_t * context) { scpi_number_t param1, param2; char bf[15]; fprintf(stderr, "meas:volt:dc\r\n"); // debug command name // read first parameter if present - if (!SCPI_ParamNumber(context, scpi_special_numbers_def, ¶m1, false)) { + if (!SCPI_ParamNumber(context, scpi_special_numbers_def, ¶m1, FALSE)) { // do something, if parameter not present } // read second paraeter if present - if (!SCPI_ParamNumber(context, scpi_special_numbers_def, ¶m2, false)) { + if (!SCPI_ParamNumber(context, scpi_special_numbers_def, ¶m2, FALSE)) { // do something, if parameter not present } @@ -69,18 +69,18 @@ } -scpi_result_t DMM_MeasureVoltageAcQ(scpi_t * context) { +static scpi_result_t DMM_MeasureVoltageAcQ(scpi_t * context) { scpi_number_t param1, param2; char bf[15]; fprintf(stderr, "meas:volt:ac\r\n"); // debug command name // read first parameter if present - if (!SCPI_ParamNumber(context, scpi_special_numbers_def, ¶m1, false)) { + if (!SCPI_ParamNumber(context, scpi_special_numbers_def, ¶m1, FALSE)) { // do something, if parameter not present } // read second paraeter if present - if (!SCPI_ParamNumber(context, scpi_special_numbers_def, ¶m2, false)) { + if (!SCPI_ParamNumber(context, scpi_special_numbers_def, ¶m2, FALSE)) { // do something, if parameter not present } @@ -97,17 +97,17 @@ return SCPI_RES_OK; } -scpi_result_t DMM_ConfigureVoltageDc(scpi_t * context) { +static scpi_result_t DMM_ConfigureVoltageDc(scpi_t * context) { double param1, param2; fprintf(stderr, "conf:volt:dc\r\n"); // debug command name // read first parameter if present - if (!SCPI_ParamDouble(context, ¶m1, true)) { + if (!SCPI_ParamDouble(context, ¶m1, TRUE)) { return SCPI_RES_ERR; } // read second paraeter if present - if (!SCPI_ParamDouble(context, ¶m2, false)) { + if (!SCPI_ParamDouble(context, ¶m2, FALSE)) { // do something, if parameter not present } @@ -117,12 +117,12 @@ return SCPI_RES_OK; } -scpi_result_t TEST_Bool(scpi_t * context) { +static scpi_result_t TEST_Bool(scpi_t * context) { scpi_bool_t param1; fprintf(stderr, "TEST:BOOL\r\n"); // debug command name // read first parameter if present - if (!SCPI_ParamBool(context, ¶m1, true)) { + if (!SCPI_ParamBool(context, ¶m1, TRUE)) { return SCPI_RES_ERR; } @@ -139,49 +139,67 @@ }; -scpi_result_t TEST_ChoiceQ(scpi_t * context) { +static scpi_result_t TEST_ChoiceQ(scpi_t * context) { int32_t param; const char * name; - if (!SCPI_ParamChoice(context, trigger_source, ¶m, true)) { + if (!SCPI_ParamChoice(context, trigger_source, ¶m, TRUE)) { return SCPI_RES_ERR; } SCPI_ChoiceToName(trigger_source, param, &name); - fprintf(stderr, "\tP1=%s (%d)\r\n", name, param); + fprintf(stderr, "\tP1=%s (%ld)\r\n", name, (long int)param); SCPI_ResultInt(context, param); return SCPI_RES_OK; } -scpi_result_t TEST_Numbers(scpi_t * context) { +static scpi_result_t TEST_Numbers(scpi_t * context) { + int32_t numbers[2]; - fprintf(stderr, "RAW CMD %.*s\r\n", (int)context->param_list.cmd_raw.length, context->param_list.cmd_raw.data); + SCPI_CommandNumbers(context, numbers, 2); + + fprintf(stderr, "TEST numbers %d %d\r\n", numbers[0], numbers[1]); return SCPI_RES_OK; } -scpi_result_t TEST_Text(scpi_t * context) { +static scpi_result_t TEST_Text(scpi_t * context) { char buffer[100]; size_t copy_len; buffer[0] = 0; - SCPI_ParamCopyText(context, buffer, 100, ©_len, false); + SCPI_ParamCopyText(context, buffer, 100, ©_len, FALSE); fprintf(stderr, "TEXT: ***%s***\r\n", buffer); return SCPI_RES_OK; } -scpi_result_t TEST_ArbQ(scpi_t * context) { +static scpi_result_t TEST_ArbQ(scpi_t * context) { const char * data; size_t len; - SCPI_ParamArbitraryBlock(context, &data, &len, false); + SCPI_ParamArbitraryBlock(context, &data, &len, FALSE); SCPI_ResultArbitraryBlock(context, data, len); + + return SCPI_RES_OK; +} + +/** + * Reimplement IEEE488.2 *TST? + * + * Result should be 0 if everything is ok + * Result should be 1 if something goes wrong + * + * Return SCPI_RES_OK + */ +static scpi_result_t My_CoreTstQ(scpi_t * context) { + + SCPI_ResultInt(context, 0); return SCPI_RES_OK; } @@ -199,7 +217,7 @@ { .pattern = "*SRE", .callback = SCPI_CoreSre,}, { .pattern = "*SRE?", .callback = SCPI_CoreSreQ,}, { .pattern = "*STB?", .callback = SCPI_CoreStbQ,}, - { .pattern = "*TST?", .callback = SCPI_CoreTstQ,}, + { .pattern = "*TST?", .callback = My_CoreTstQ,}, { .pattern = "*WAI", .callback = SCPI_CoreWai,}, /* Required SCPI commands (SCPI std V1999.0 4.2.1) */ @@ -249,7 +267,6 @@ .control = SCPI_Control, .flush = SCPI_Flush, .reset = SCPI_Reset, - .test = SCPI_Test, }; #define SCPI_INPUT_BUFFER_LENGTH 256 @@ -269,3 +286,4 @@ .units = scpi_units_def, .idn = {"MANUFACTURE", "INSTR2013", NULL, "01-02"}, }; + -- Gitblit v1.9.1