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

📄 hp33120a.c

📁 CVI教程,用于信号采集系统的多任务开发软件.学习简单,功能实用.
💻 C
📖 第 1 页 / 共 5 页
字号:
/*****************************************************************************  *  Copyright 1998 National Instruments Corporation.  All Rights Reserved.   *  *****************************************************************************//***************************************************************************** *  Hewlett Packard 33120A Instrument Driver                                *  LabWindows/CVI 5.0 Instrument Driver                                      *  Original Release: 3/16/98                                   *  By: GGB, NI                               *      PH. 1-800-433-3488   Fax                                *                                                                            *  Modification History:                                                     *                                                                            *       3/16/98 - Instrument Driver Created.                   *        *       7/22/98 - Added calls to Ivi_UnlockSession to hp33120a_EnableOutput *                 and hp33120a_DisableOutput. *               - Modified documentation of hp33120a.fp to reflect correct  *                 value information. *               - Corrected behavior of ClearArbWaveform and *                 HP33120A_ATTR_ARB_SAMPLE_RATE attribute to behave correctly *                 for simulation mode. *****************************************************************************/#include <string.h>#include <stdio.h>  #include <formatio.h>#include <math.h>#include "hp33120a.h"/***************************************************************************** *--------------------- Hidden Attribute Declarations -----------------------* *****************************************************************************/#define HP33120A_ATTR_OPC_TIMEOUT            (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 1L)     /* ViInt32 */#define HP33120A_ATTR_WFM_STRUCTURE          (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 102L)   /* ViAddr *//***************************************************************************** *---------------------------- Useful Macros --------------------------------* *****************************************************************************/    /*- Modulation Modes -------------------------*/#define HP33120A_VAL_AM                      (1L)#define HP33120A_VAL_FM                      (2L)#define HP33120A_VAL_FSK                     (3L)#define HP33120A_VAL_BURST                   (4L)#define HP33120A_VAL_SWEEP                   (5L)    /*- Length of Arbitrary Waveform Names -------*/#define HP33120A_VAL_NAME_LENGTH             (9L)    /*- I/O buffer size --------------------------*/#define BUFFER_SIZE                             512L            /*- 488.2 Event Status Register (ESR) Bits ---*/#define IEEE_488_2_QUERY_ERROR_BIT              0x04#define IEEE_488_2_DEVICE_DEPENDENT_ERROR_BIT   0x08#define IEEE_488_2_EXECUTION_ERROR_BIT          0x10#define IEEE_488_2_COMMAND_ERROR_BIT            0x20/* The driver uses this structure in its utility functions for creating and *//* removing arbitray waveforms. */struct wfmNode    {    ViInt32 wfmSize;    ViChar  wfmName[HP33120A_VAL_NAME_LENGTH];    };typedef struct wfmNode wfmNode;typedef wfmNode *wfmNodePtr;/***************************************************************************** *-------------- Utility Function Declarations (Non-Exported) ---------------* *****************************************************************************/static ViStatus hp33120a_InitAttributes (ViSession vi);static ViStatus hp33120a_DefaultInstrSetup (ViSession openInstrSession);static ViStatus hp33120a_CheckStatus (ViSession vi);static ViStatus hp33120a_WaitForOPC (ViSession vi, ViInt32 maxTime);static ViStatus hp33120a_VerifyOutputMode   (ViSession vi, ViInt32 outputMode);static ViStatus hp33120a_GetEquivalentFrequency (ViSession vi, ViConstString channelName,                         ViReal64 *frequency, ViReal64 *maxFreq);                         static ViStatus hp33120a_AnyModulationEnabled (ViSession vi, ViConstString channelName,                            ViInt32 modType, ViBoolean *modOn);static ViStatus hp33120a_CreateDriverWfmRecord (ViSession vi);static ViStatus hp33120a_VerifyWfmCreatable (ViSession vi, ViInt32 wfmSize, ViReal64 wfmData[]);static ViStatus hp33120a_GetNewWfmInfo (ViSession vi, ViInt32 *wfmHandle, ViChar wfmName[]);static ViStatus hp33120a_GetNewWfmName (ViSession vi, wfmNodePtr wfmRecord, ViInt32 maxWfms, ViInt32 wfmHandle, ViChar wfmName[]);static ViStatus hp33120a_GetNumDefinedWaveforms (ViSession vi, ViInt32 maxNumWfms, ViInt32 *numWfms);static ViStatus hp33120a_UpdateDriverWfmRecord (ViSession vi, ViInt32 newWfmHandle, ViInt32 wfmSize, ViChar wfmName[]);static ViStatus hp33120a_WfmExists (ViSession vi, ViInt32 wfmHandle, ViBoolean *wfmExists);static ViStatus hp33120a_ClearDriverWfmRecord (ViSession vi, ViInt32 wfmHandle);static ViStatus hp33120a_GetWfmNameFromHandleUtil (ViSession vi, ViInt32 wfmHandle, ViInt32 arraySize, ViChar wfmName[]);static ViStatus hp33120a_GetWfmHandleFromNameUtil (ViSession vi, ViConstString wfmName, ViInt32 *wfmHandle);static ViStatus hp33120a_GetWfmSize (ViSession vi, ViInt32 wfmHandle, ViInt32 *wfmSize);    /*- File I/O Utility Functions -*/static ViStatus hp33120a_ReadToFile (ViSession vi, ViConstString filename,                      ViInt32 maxBytesToRead, ViInt32 fileAction, ViInt32 *totalBytesWritten);static ViStatus hp33120a_WriteFromFile (ViSession vi, ViConstString filename,                     ViInt32 maxBytesToWrite, ViInt32 byteOffset,                     ViInt32 *totalBytesWritten);/***************************************************************************** *----------------- Callback Declarations (Non-Exported) --------------------* *****************************************************************************/    /*- Global Session Callbacks --------------------------------------------*/    static ViStatus _VI_FUNC hp33120a_CheckStatusCallback (ViSession vi, ViSession io);static ViStatus _VI_FUNC hp33120a_WaitForOPCCallback (ViSession vi, ViSession io);    /*- Attribute callbacks -------------------------------------------------*/static ViStatus _VI_FUNC hp33120aAttrDriverRevision_ReadCallback (ViSession vi,                                  ViSession io,                                   ViConstString channelName,                                  ViAttr attributeId,                                   const ViConstString cacheValue);static ViStatus _VI_FUNC hp33120aAttrIdQueryResponse_ReadCallback (ViSession vi,                                   ViSession io,                                    ViConstString channelName,                                    ViAttr attributeId,                                    const ViConstString cacheValue);static ViStatus _VI_FUNC hp33120aAttrOutputMode_WriteCallback (ViSession vi,                                   ViSession io,                                   ViConstString channelName,                                   ViAttr attributeId,                                   ViInt32 value);static ViStatus _VI_FUNC hp33120aAttrOutputEnabled_CheckCallback (ViSession vi,                                  ViConstString channelName,                                  ViAttr attributeId,                                  ViBoolean value);static ViStatus _VI_FUNC hp33120aAttrOutputImpedance_WriteCallback (ViSession vi,                                    ViSession io,                                    ViConstString channelName,                                    ViAttr attributeId,                                    ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrOutputImpedance_ReadCallback (ViSession vi,                                   ViSession io,                                   ViConstString channelName,                                   ViAttr attributeId,                                   ViReal64 *value);static ViStatus _VI_FUNC hp33120aAttrFuncWaveform_WriteCallback (ViSession vi,                                 ViSession io,                                 ViConstString channelName,                                 ViAttr attributeId,                                 ViInt32 value);static ViStatus _VI_FUNC hp33120aAttrFuncWaveform_ReadCallback (ViSession vi,                                ViSession io,                                ViConstString channelName,                                ViAttr attributeId,                                ViInt32 *value);static ViStatus _VI_FUNC hp33120aAttrFuncWaveform_CheckCallback (ViSession vi,                                 ViConstString channelName,                                 ViAttr attributeId,                                 ViInt32 value);static ViStatus _VI_FUNC hp33120aAttrFuncAmplitude_WriteCallback (ViSession vi,                                  ViSession io,                                  ViConstString channelName,                                  ViAttr attributeId,                                  ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrFuncAmplitude_ReadCallback (ViSession vi,                                 ViSession io,                                 ViConstString channelName,                                 ViAttr attributeId,                                 ViReal64 *value);static ViStatus _VI_FUNC hp33120aAttrFuncAmplitude_CheckCallback (ViSession vi,                                  ViConstString channelName,                                  ViAttr attributeId,                                  ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrFuncDCOffset_WriteCallback (ViSession vi,                                 ViSession io,                                 ViConstString channelName,                                 ViAttr attributeId,                                 ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrFuncDCOffset_ReadCallback (ViSession vi,                                ViSession io,                                ViConstString channelName,                                ViAttr attributeId,                                ViReal64 *value);static ViStatus _VI_FUNC hp33120aAttrFuncDCOffset_CheckCallback (ViSession vi,                                 ViConstString channelName,                                 ViAttr attributeId,                                 ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrFuncFrequency_WriteCallback (ViSession vi,                                  ViSession io,                                  ViConstString channelName,                                  ViAttr attributeId,                                  ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrFuncFrequency_ReadCallback (ViSession vi,                                 ViSession io,                                 ViConstString channelName,                                 ViAttr attributeId,                                 ViReal64 *value);static ViStatus _VI_FUNC hp33120aAttrFuncFrequency_CheckCallback (ViSession vi,                                  ViConstString channelName,                                  ViAttr attributeId,                                  ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrFuncFrequency_RangeTableCallback (ViSession vi,                                       ViConstString channelName,                                       ViAttr attributeId,                                       IviRangeTablePtr *rangeTablePtr);static ViStatus _VI_FUNC hp33120aAttrFuncDutyCycleHigh_WriteCallback (ViSession vi,                                      ViSession io,                                      ViConstString channelName,                                      ViAttr attributeId,                                      ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrFuncDutyCycleHigh_ReadCallback (ViSession vi,                                     ViSession io,                                     ViConstString channelName,                                     ViAttr attributeId,                                     ViReal64 *value);static ViStatus _VI_FUNC hp33120aAttrFuncDutyCycleHigh_CheckCallback (ViSession vi,                                      ViConstString channelName,                                      ViAttr attributeId,                                      ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrArbWaveformHandle_WriteCallback (ViSession vi,                                      ViSession io,                                      ViConstString channelName,                                      ViAttr attributeId,                                      ViInt32 value);static ViStatus _VI_FUNC hp33120aAttrArbWaveformHandle_ReadCallback (ViSession vi,                                     ViSession io,                                     ViConstString channelName,                                     ViAttr attributeId,                                     ViInt32 *value);static ViStatus _VI_FUNC hp33120aAttrArbWaveformHandle_CheckCallback (ViSession vi,                                      ViConstString channelName,                                      ViAttr attributeId,                                      ViInt32 value);static ViStatus _VI_FUNC hp33120aAttrArbGain_WriteCallback (ViSession vi,                                ViSession io,                                ViConstString channelName,                                ViAttr attributeId,                                ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrArbGain_ReadCallback (ViSession vi,                               ViSession io,                               ViConstString channelName,                               ViAttr attributeId,                               ViReal64 *value);static ViStatus _VI_FUNC hp33120aAttrArbGain_CheckCallback (ViSession vi,                                ViConstString channelName,                                ViAttr attributeId,                                ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrArbOffset_WriteCallback (ViSession vi,                                  ViSession io,                                  ViConstString channelName,                                  ViAttr attributeId,                                  ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrArbOffset_ReadCallback (ViSession vi,                                 ViSession io,                                 ViConstString channelName,                                 ViAttr attributeId,                                 ViReal64 *value);static ViStatus _VI_FUNC hp33120aAttrArbOffset_CheckCallback (ViSession vi,                                  ViConstString channelName,                                  ViAttr attributeId,                                  ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrArbSampleRate_WriteCallback (ViSession vi,                                  ViSession io,                                  ViConstString channelName,                                  ViAttr attributeId,                                  ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrArbSampleRate_ReadCallback (ViSession vi,                                 ViSession io,                                 ViConstString channelName,                                 ViAttr attributeId,                                 ViReal64 *value);static ViStatus _VI_FUNC hp33120aAttrArbSampleRate_CheckCallback (ViSession vi,                                  ViConstString channelName,                                  ViAttr attributeId,                                  ViReal64 value);static ViStatus _VI_FUNC hp33120aAttrAMEnabled_WriteCallback (ViSession vi,                                  ViSession io,                                  ViConstString channelName,                                  ViAttr attributeId,

⌨️ 快捷键说明

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