| | |
| | | } else { |
| | | return strToULong(parameter->ptr, (uint32_t *)value, 10) > 0 ? TRUE : FALSE; |
| | | } |
| | | default: |
| | | return FALSE; |
| | | } |
| | | return FALSE; |
| | | } |
| | | |
| | | |
| | |
| | | */ |
| | | #include "stdio.h" |
| | | scpi_bool_t SCPI_ParamToDouble(scpi_t * context, scpi_parameter_t * parameter, double * value) { |
| | | scpi_bool_t result = FALSE; |
| | | scpi_bool_t result; |
| | | uint32_t valint; |
| | | |
| | | if (!value) { |
| | |
| | | case SCPI_TOKEN_DECIMAL_NUMERIC_PROGRAM_DATA_WITH_SUFFIX: |
| | | result = strToDouble(parameter->ptr, value) > 0 ? TRUE : FALSE; |
| | | break; |
| | | default: |
| | | result = FALSE; |
| | | } |
| | | return result; |
| | | } |
| | |
| | | |
| | | result = SCPI_Parameter(context, ¶m, mandatory); |
| | | if (result) { |
| | | *value = param.ptr; |
| | | *len = param.len; |
| | | switch(param.type) { |
| | | case SCPI_TOKEN_SINGLE_QUOTE_PROGRAM_DATA: |
| | | case SCPI_TOKEN_DOUBLE_QUOTE_PROGRAM_DATA: |
| | | *value = param.ptr + 1; |
| | | *len = param.len - 2; |
| | | break; |
| | | default: |
| | | *value = param.ptr; |
| | | *len = param.len; |
| | | break; |
| | | } |
| | | |
| | | // TODO: return also parameter type (ProgramMnemonic, ArbitraryBlockProgramData, SingleQuoteProgramData, DoubleQuoteProgramData |
| | | } |
| | |
| | | case SCPI_TOKEN_SINGLE_QUOTE_PROGRAM_DATA: |
| | | case SCPI_TOKEN_DOUBLE_QUOTE_PROGRAM_DATA: |
| | | quote = param.type == SCPI_TOKEN_SINGLE_QUOTE_PROGRAM_DATA ? '\'' : '"'; |
| | | for (i_from = 0, i_to = 0; i_from < (size_t) param.len; i_from++) { |
| | | for (i_from = 1, i_to = 0; i_from < (size_t) (param.len - 1); i_from++) { |
| | | if (i_from >= buffer_len) { |
| | | break; |
| | | } |
| | |
| | | scpi_bool_t SCPI_CommandNumbers(scpi_t * context, int32_t * numbers, size_t len) { |
| | | return matchCommand (context->param_list.cmd->pattern, context->param_list.cmd_raw.data, context->param_list.cmd_raw.length, numbers, len); |
| | | } |
| | | |
| | | /** |
| | | * If SCPI_Parameter() returns FALSE, this function can detect, if the parameter |
| | | * is just missing (TRUE) or if there was an error during processing of the command (FALSE) |
| | | * @param parameter |
| | | * @return |
| | | */ |
| | | scpi_bool_t SCPI_ParamIsValid(scpi_parameter_t * parameter) |
| | | { |
| | | return parameter->type == SCPI_TOKEN_UNKNOWN ? FALSE : TRUE; |
| | | } |
| | | |
| | | /** |
| | | * Returns TRUE if there was an error during parameter handling |
| | | * @param context |
| | | * @return |
| | | */ |
| | | scpi_bool_t SCPI_ParamErrorOccurred(scpi_t * context) |
| | | { |
| | | return context->cmd_error; |
| | | } |