コード例 #1
0
ファイル: parser.c プロジェクト: WCP52/gpha
/**
 * Parse text parameter (can be inside "")
 * @param context
 * @param value Pointer to string buffer where pointer to non-null terminated string will be returned
 * @param len Length of returned non-null terminated string
 * @param mandatory
 * @return 
 */
scpi_bool_t SCPI_ParamText(scpi_t * context, const char ** value, size_t * len, scpi_bool_t mandatory) {
    size_t length;

    if (!value || !len) {
        return FALSE;
    }

    if (!paramNext(context, mandatory)) {
        return FALSE;
    }

    if (locateText(context->paramlist.parameters, context->paramlist.length, value, &length)) {
        paramSkipBytes(context, length);
        if (len) {
            *len = length;
        }
        return TRUE;
    }

    return FALSE;
}
コード例 #2
0
ファイル: scpiparser.cpp プロジェクト: Zaher220/scpi-parser
/**
 * Parse string parameter
 * @param context
 * @param value
 * @param len
 * @param mandatory
 * @return
 */
scpi_bool_t SCPIParser::SCPI_ParamString(const char ** value, size_t * len, scpi_bool_t mandatory) {
    size_t length;

    if (!value || !len) {
        return FALSE;
    }

    if (!paramNext(mandatory)) {
        return FALSE;
    }

    if (locateStr(context.paramlist.parameters, context.paramlist.length, value, &length)) {
        paramSkipBytes(length);
        paramSkipWhitespace();
        if (len) {
            *len = length;
        }
        return TRUE;
    }

    return FALSE;
}