Пример #1
0
/**
 * Sets Analog Pin value in volts
 * @param context SCPI context
 * @return success or failure
 */
scpi_result_t RP_AnalogPinValue(scpi_t * context) {
    
    int32_t choice;
    double value;

    /* Read first parameter - APIN */
    if (!SCPI_ParamChoice(context, scpi_RpApin, &choice, true)) {
    	RP_LOG(LOG_ERR, "*ANALOG:PIN is missing first parameter.\n");
    	return SCPI_RES_ERR;
    }


    /* Read second parameter - VALUE */
    if (!SCPI_ParamDouble(context, &value, true)) {
        RP_LOG(LOG_ERR, "*ANALOG:PIN is missing second parameter.\n");
        return SCPI_RES_ERR;
    }
    // Convert port into pin id
    rp_apin_t pin = choice;

    /* Set pin value */
    int result = rp_ApinSetValue(pin, (float) value);
    if (RP_OK != result){
		RP_LOG(LOG_ERR, "*ANALOG:PIN Failed to set pin value: %s\n", rp_GetError(result));
		return SCPI_RES_ERR;
	}

	RP_LOG(LOG_INFO, "*ANALOG:PIN Successfully set port value.\n");
	return SCPI_RES_OK;
}
Пример #2
0
static scpi_result_t DMM_ConfigureVoltageDc(scpi_t * context) {
    double param1, param2;
    printf( "conf:volt:dc\r\n"); // debug command name   

    // read first parameter if present
    if (!SCPI_ParamDouble(context, &param1, TRUE)) {
        return SCPI_RES_ERR;
    }

    // read second paraeter if present
    if (!SCPI_ParamDouble(context, &param2, FALSE)) {
        // do something, if parameter not present
    }

    printf( "\tP1=%lf\r\n", param1);
    printf( "\tP2=%lf\r\n", param2);

    return SCPI_RES_OK;
}
Пример #3
0
scpi_result_t RP_APP_OscSetProbeAtt(rp_channel_t channel, scpi_t *context) {
    double value;
    if (!SCPI_ParamDouble(context, &value, true)) {
        syslog(LOG_ERR, "*OSC:CH<n>:PROBE is missing first parameter.");
        return SCPI_RES_ERR;
    }

    int result = rpApp_OscSetProbeAtt(channel, (float) value);
    if (RP_OK != result) {
        syslog(LOG_ERR, "*OSC:CH<n>:PROBE Failed: %s", rp_GetError(result));
        return SCPI_RES_ERR;
    }
    syslog(LOG_INFO, "*OSC:CH<n>:PROBE set successfully.");
    return SCPI_RES_OK;
}
Пример #4
0
scpi_result_t RP_APP_OscSetAmplitudeScale(rpApp_osc_source source, scpi_t *context) {
    double value;
    if (!SCPI_ParamDouble(context, &value, true)) {
        syslog(LOG_ERR, "*OSC:CH<n>:SCALE is missing first parameter.");
        return SCPI_RES_ERR;
    }

    int result = rpApp_OscSetAmplitudeScale(source, (float) value);
    if (RP_OK != result) {
        syslog(LOG_ERR, "*OSC:CH<n>:SCALE Failed to set amplitude scale: %s", rp_GetError(result));
        return SCPI_RES_ERR;
    }
    syslog(LOG_INFO, "*OSC:CH<n>:SCALE set successfully.");
    return SCPI_RES_OK;
}
Пример #5
0
scpi_result_t RP_APP_OscSetTriggerLevel(scpi_t *context) {
    double value;
    if (!SCPI_ParamDouble(context, &value, true)) {
        syslog(LOG_ERR, "*OSC:TRIG:LEVEL is missing first parameter.");
        return SCPI_RES_ERR;
    }

    int result = rpApp_OscSetTriggerLevel((float) (value / 1000.0));
    if (RP_OK != result) {
        syslog(LOG_ERR, "*OSC:TRIG:LEVEL Failed to set trigger level: %s", rp_GetError(result));
        return SCPI_RES_ERR;
    }
    syslog(LOG_INFO, "*OSC:TRIG:LEVEL set successfully.");
    return SCPI_RES_OK;
}
Пример #6
0
scpi_result_t RP_APP_OscSetTimeScale(scpi_t *context) {
    double value;
    if (!SCPI_ParamDouble(context, &value, true)) {
        syslog(LOG_ERR, "*OSC:TIME:OFFSET is missing first parameter.");
        return SCPI_RES_ERR;
    }

    int result = rpApp_OscSetTimeScale((float) value);
    if (RP_OK != result) {
        syslog(LOG_ERR, "*OSC:TIME:OFFSET Failed to set time offset: %s", rp_GetError(result));
        return SCPI_RES_ERR;
    }
    syslog(LOG_INFO, "*OSC:TIME:OFFSET set successfully.");
    return SCPI_RES_OK;
}
Пример #7
0
scpi_result_t RP_APP_SpecSetFreqMax(scpi_t *context) {
    double freq;
    if (!SCPI_ParamDouble(context, &freq, true)) {
        syslog(LOG_ERR, "*SPEC:FREQ:MAX is missing first parameter.");
        return SCPI_RES_ERR;
    }

	int result = rpApp_SpecSetFreqMax(freq);
    if (RP_OK != result) {
        syslog(LOG_ERR, "*SPEC:FREQ:MAX Failed to get: %s", rp_GetError(result));
        return SCPI_RES_ERR;
    }

    SCPI_ResultDouble(context, freq);
    syslog(LOG_INFO, "*SPEC:FREQ:MAX get successfully.");
    return SCPI_RES_OK;
}