⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hp33120a.c

📁 CVI教程,用于信号采集系统的多任务开发软件.学习简单,功能实用.
💻 C
📖 第 1 页 / 共 5 页
字号:
    if (!Ivi_Simulating(vi))                /* call only when locked */    {    ViSession   io = Ivi_IOSession(vi); /* call only when locked */        checkErr( Ivi_SetNeedToCheckStatus (vi, VI_TRUE));    viCheckErr( viPrintf(io, ":SYST:ERR?"));        viCheckErr( viScanf (io, "%ld,\"%256[^\"]", errCode, errMessage));        }    else if (Ivi_UseSpecificSimulation(vi)) /* call only when locked */    {        /* Simulate Error Query */    *errCode = 0;    strcpy (errMessage, "No error.");    }    Error:    Ivi_UnlockSession(vi, VI_NULL);    return error;}/***************************************************************************** * Function: hp33120a_error_message                                                   * Purpose:  This function translates the error codes returned by this        *           instrument driver into user-readable strings.   * *           Note:  The caller can pass VI_NULL for the vi parameter.  This  *           is usefull if one of the init functions fail. *****************************************************************************/ViStatus _VI_FUNC hp33120a_error_message (ViSession vi, ViStatus errorCode,                      ViChar errorMessage[256]){    ViStatus    error = VI_SUCCESS;        static      IviStringValueTable errorTable =     {        IVIFGEN_ERROR_CODES_AND_MSGS,        {VI_NULL,                               VI_NULL}    };        if (vi)    Ivi_LockSession(vi, VI_NULL);    /* all VISA and IVI error codes are handled as well as codes in the table */    if (errorMessage == VI_NULL)    viCheckParm( IVI_ERROR_INVALID_PARAMETER, 3, "Null address for Error Message");    checkErr( Ivi_GetSpecificDriverStatusDesc(vi, errorCode, errorMessage, errorTable));Error:    if (vi)    Ivi_UnlockSession(vi, VI_NULL);    return error;}/***************************************************************************** * Function: hp33120a_revision_query                                                   * Purpose:  This function returns the driver and instrument revisions.       *****************************************************************************/ViStatus _VI_FUNC hp33120a_revision_query (ViSession vi, ViChar driverRev[],                        ViChar instrRev[]){    ViChar      rdBuffer[BUFFER_SIZE];    ViStatus    error = VI_SUCCESS;        checkErr( Ivi_LockSession (vi, VI_NULL));    if (driverRev == VI_NULL)    viCheckParm( IVI_ERROR_INVALID_PARAMETER, 2, "Null address for Driver Revision");    if (instrRev == VI_NULL)    viCheckParm( IVI_ERROR_INVALID_PARAMETER, 3, "Null address for Instrument Revision");    checkErr( Ivi_GetAttributeViString (vi, VI_NULL, IVI_ATTR_DRIVER_REVISION,                     0, -1, driverRev));    if (!Ivi_Simulating(vi))                /* call only when locked */    {    ViSession   io = Ivi_IOSession(vi); /* call only when locked */        checkErr( Ivi_SetNeedToCheckStatus (vi, VI_TRUE));    viCheckErr( viPrintf (io, "*IDN?"));        viCheckErr( viScanf (io, "%*[^,],%*[^,],%*[^,],%256[^\n]", instrRev));    }    else if (Ivi_UseSpecificSimulation(vi)) /* call only when locked */    {        /* Simulate Instrument Revision Query */    strcpy (instrRev, "No revision information available while simulating.");    }    checkErr( hp33120a_CheckStatus (vi));Error:        Ivi_UnlockSession(vi, VI_NULL);    return error;}/***************************************************************************** * Function: hp33120a_ConfigureOutputMode * Purpose: This function configures the output mode of the function *          generator.  The output mode determines how the function *          generator produces waveforms.  For example, you can select to *          output a standard waveform, an arbitrary waveform, or a sequence *          of arbitrary waveforms. *****************************************************************************/ViStatus _VI_FUNC hp33120a_ConfigureOutputMode (ViSession vi, ViInt32 outputMode){    ViStatus   error = VI_SUCCESS;        checkErr( Ivi_LockSession (vi, VI_NULL));        /* Set attribute: */    viCheckParm( Ivi_SetAttributeViInt32 (vi, VI_NULL, HP33120A_ATTR_OUTPUT_MODE,                      IVI_VAL_DIRECT_USER_CALL, outputMode),                      2, "Output Mode");                          checkErr( hp33120a_CheckStatus (vi));    Error:    Ivi_UnlockSession (vi, VI_NULL);    return error;}/***************************************************************************** * Function: hp33120a_ConfigureOutputImpedance * Purpose:  This function configures the output impedance for the channel *           you specify. *****************************************************************************/ViStatus _VI_FUNC hp33120a_ConfigureOutputImpedance (ViSession vi, ViConstString channelName,                           ViReal64 outputImpedance){    ViStatus   error = VI_SUCCESS;        checkErr( Ivi_LockSession (vi, VI_NULL));        /* Set attribute: */    viCheckParm( Ivi_SetAttributeViReal64 (vi, channelName, HP33120A_ATTR_OUTPUT_IMPEDANCE,                       IVI_VAL_DIRECT_USER_CALL, outputImpedance),                       3, "Output Impedance");                          checkErr( hp33120a_CheckStatus (vi));    Error:    Ivi_UnlockSession (vi, VI_NULL);    return error;}    /***************************************************************************** * Function: hp33120a_ConfigureRefClockSource * Purpose: This function configures the function generator's reference *          clock source.  The function generator uses the reference clock *          to derive frequencies and sample rates when generating output. *****************************************************************************/ViStatus _VI_FUNC hp33120a_ConfigureRefClockSource (ViSession vi, ViInt32 refClockSource){    ViStatus error = VI_SUCCESS;        checkErr( Ivi_LockSession (vi, VI_NULL));        /* Set attribute: */    viCheckParm( Ivi_SetAttributeViInt32 (vi, VI_NULL,                      HP33120A_ATTR_REF_CLOCK_SOURCE,                      IVI_VAL_DIRECT_USER_CALL,                      refClockSource),                      2, "Reference Clock Source");    checkErr( hp33120a_CheckStatus (vi));    Error:    Ivi_UnlockSession (vi, VI_NULL);    return error;}/***************************************************************************** * Function: hp33120a_EnableOutput * Purpose:  This function configures the function generator so that the *           signal the function generator produces appears at the channel's *           output connector.   *****************************************************************************/ViStatus _VI_FUNC  hp33120a_EnableOutput (ViSession vi, ViConstString channelName){    ViStatus error = VI_SUCCESS;        checkErr( Ivi_LockSession (vi, VI_NULL));        /* Set attribute: */    checkErr( Ivi_SetAttributeViBoolean (vi, channelName,                     HP33120A_ATTR_OUTPUT_ENABLED,                     IVI_VAL_DIRECT_USER_CALL, VI_TRUE));                     Error:    Ivi_UnlockSession (vi, VI_NULL);    return error;}/***************************************************************************** * Function: hp33120a_DisableOutput * Purpose: This function configures the function generator so that the *          signal the function generator produces does not appear at the *          channel's output connector. *****************************************************************************/ViStatus _VI_FUNC  hp33120a_DisableOutput (ViSession vi, ViConstString channelName){    ViStatus error = VI_SUCCESS;        checkErr( Ivi_LockSession (vi, VI_NULL));        /* Set attribute: */    checkErr( Ivi_SetAttributeViBoolean (vi, channelName,                     HP33120A_ATTR_OUTPUT_ENABLED,                     IVI_VAL_DIRECT_USER_CALL, VI_FALSE));                     Error:    Ivi_UnlockSession (vi, VI_NULL);    return error;}/***************************************************************************** * Function: hp33120a_InitiateGeneration * Purpose: This function initiates signal generation.  This causes the *          function generator to leave its Configuration state and enter *          its Signal Generation state.   *****************************************************************************/ViStatus _VI_FUNC  hp33120a_InitiateGeneration (ViSession vi){    return VI_SUCCESS;}    /***************************************************************************** * Function: hp33120a_AbortGeneration * Purpose:  This function aborts a previously initiated output generation. *           After you call this function, the function generator leaves its *           Signal Generation state and returns to its Configuration state. *****************************************************************************/ViStatus _VI_FUNC  hp33120a_AbortGeneration (ViSession vi){    return VI_SUCCESS;}/***************************************************************************** * Function: hp33120a_ConfigureStandardWaveform * Purpose:  This function configures the attributes of the function *           generator that affect standard waveform generation.  These *           attributes are the waveform, amplitude, DC offset, frequency, *           and start phase. *****************************************************************************/ViStatus _VI_FUNC hp33120a_ConfigureStandardWaveform (ViSession vi,                              ViConstString channelName,                              ViInt32 waveform,                              ViReal64 amplitude,                              ViReal64 dcOffset,                              ViReal64 frequency,                              ViReal64 startPhase){    ViStatus error = VI_SUCCESS;        checkErr( Ivi_LockSession (vi, VI_NULL));        /* Set attributes: */    viCheckParm( Ivi_SetAttributeViInt32 (vi, channelName,                     HP33120A_ATTR_FUNC_WAVEFORM, 0,                     waveform), 3, "Standard Waveform");    viCheckParm( Ivi_SetAttributeViReal64 (vi, channelName,                       HP33120A_ATTR_FUNC_AMPLITUDE, 0,                       amplitude), 4, "Amplitude");    viCheckParm( Ivi_SetAttributeViReal64 (vi, channelName,                       HP33120A_ATTR_FUNC_DC_OFFSET, 0,                       dcOffset), 5, "DC Offset");    viCheckParm( Ivi_SetAttributeViReal64 (vi, channelName,                       HP33120A_ATTR_FUNC_FREQUENCY, 0,                       frequency), 6, "Frequency");    viCheckParm( Ivi_SetAttributeViReal64 (vi, channelName,                       HP33120A_ATTR_FUNC_START_PHASE, 0,                       startPhase), 7, "Start Phase");    checkErr( hp33120a_CheckStatus (vi));    Error:    Ivi_UnlockSession (vi, VI_NULL);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -