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

📄 fl45.c

📁 经典LabWindows CVI方面的教材《LabWindows CVI开发入门和进阶》一书例题1-4章中的源码
💻 C
📖 第 1 页 / 共 5 页
字号:
/*****************************************************************************  *  Copyright 1998 National Instruments Corporation.  All Rights Reserved.   *  *****************************************************************************//***************************************************************************** *  Fluke 45 Digitial Multimeter Instrument Driver                                *  LabWindows/CVI 5.0 Instrument Driver                                      *  Original Release: 3/4/98                                   *  By: TKN, National Instruments, Austin Texas                               *      PH. 800-433-3488   Fax 512-794-5678                               *                                                                            *  Modification History:                                                     *                                                                            *       3/4/1998 - Instrument Driver Created. *       7/7/1998 - [sz] Added VI_NULL entry to the error table in the  *                  self_test function *                - [sz] Changed the timeout in self_test from 20s to 1 min *                - [sz] Changed attrRange_CheckCallback - deleted the  *                       condition for the DIODE and CONTINUITY function *                - [sz] Corrected the usage of checkErr and viCheckErr macros *                - [sz] Changed IVIDMM_ERROR_ACCURACY* to FL45_ERROR_ACCURACY* *                - [sz] Modified ?: operator parameters in *                       attrTriggerSource_WriteCallback *                - [sz] Morphed 'if' to 'switch' statement in  *                       attrTriggerDelay_WriteCallback and  *                       attrTriggerDelay_ReadCallback functions *                - [sz] Changed attrSecondaryFunction_WriteCallback function *                       (Reinstating the primary function will automatically  *                       remove the secondary function.) *                - [sz] Updated the minor version of the driver to 100 *****************************************************************************/#include <string.h>#include <stdio.h>  #include <stdlib.h>  #include <formatio.h>#include <stdlib.h>#include "fl45.h"/***************************************************************************** *--------------------- Hidden Attribute Declarations -----------------------* *****************************************************************************/#define FL45_ATTR_OPC_TIMEOUT      (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 1L)   /* ViInt32 */#define FL45_ATTR_MATH_MODIFIERS   (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 2L)/***************************************************************************** *---------------------------- Useful Macros --------------------------------* *****************************************************************************/    /*- 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    /*- Modifier mode Bits --------------------------------------------------*/#define FL45_VAL_MIN_MODE_BIT                   0x01#define FL45_VAL_MAX_MODE_BIT                   0x02#define FL45_VAL_HOLD_MODE                      0x04#define FL45_VAL_DB_MODE                        0x08#define FL45_VAL_DBPOWER_MODE                   0x10#define FL45_VAL_RELATIVE_MODE                  0x20#define FL45_VAL_COMPARE_MODE                   0x40    /*- List of channels passed to the Ivi_BuildChannelTable function -------*/ #define CHANNEL_LIST                            "1"/***************************************************************************** *-------------- Utility Function Declarations (Non-Exported) ---------------* *****************************************************************************/static ViStatus FL45_GetAccuracyTablePtr (ViSession vi, ViInt32 function,                                           ViReal64 range, ViReal64 resolution,                                           IviRangeTablePtr *accuracyTblPtr,                                           IviRangeTablePtr *addAccuracyTblPtr);         static ViStatus FL45_GetAccuracy (ViSession vi, ViReal64 freqOfInterest,                                   ViReal64 *multiplier, ViReal64 *offset);static ViStatus FL45_InitAttributes (ViSession vi);static ViStatus FL45_DefaultInstrSetup (ViSession openInstrSession);static ViStatus FL45_CheckStatus (ViSession vi);static ViStatus FL45_WaitForOPC (ViSession vi, ViInt32 maxTime);static ViStatus FL45_GetActualRange (ViSession vi, ViSession io, ViReal64 *value);/***************************************************************************** *----------------- Callback Declarations (Non-Exported) --------------------* *****************************************************************************/    /*- Global Session Callbacks --------------------------------------------*/    static ViStatus _VI_FUNC FL45_CheckStatusCallback (ViSession vi, ViSession io);static ViStatus _VI_FUNC FL45_WaitForOPCCallback (ViSession vi, ViSession io);    /*- Attribute callbacks -------------------------------------------------*/static ViStatus _VI_FUNC FL45AttrDriverRevision_ReadCallback (ViSession vi,                                                              ViSession io,                                                               ViConstString channelName,                                                              ViAttr attributeId,                                                               const ViConstString cacheValue);static ViStatus _VI_FUNC FL45AttrIdQueryResponse_ReadCallback (ViSession vi,                                                               ViSession io,                                                                ViConstString channelName,                                                                ViAttr attributeId,                                                                const ViConstString cacheValue);static ViStatus _VI_FUNC FL45AttrFunction_WriteCallback (ViSession vi,                                                         ViSession io,                                                         ViConstString channelName,                                                         ViAttr attributeId,                                                         ViInt32 value);static ViStatus _VI_FUNC FL45AttrFunction_ReadCallback (ViSession vi,                                                        ViSession io,                                                        ViConstString channelName,                                                        ViAttr attributeId,                                                        ViInt32 *value);static ViStatus _VI_FUNC FL45AttrRange_WriteCallback (ViSession vi, ViSession io,                                                      ViConstString channelName,                                                      ViAttr attributeId,                                                      ViReal64 value);static ViStatus _VI_FUNC FL45AttrRange_ReadCallback (ViSession vi, ViSession io,                                                     ViConstString channelName,                                                     ViAttr attributeId,                                                     ViReal64 *value);static ViStatus _VI_FUNC FL45AttrRange_CheckCallback (ViSession vi,                                                      ViConstString channelName,                                                      ViAttr attributeId,                                                      ViReal64 value);static ViStatus _VI_FUNC FL45AttrRange_RangeTableCallback (ViSession vi,                                                           ViConstString channelName,                                                           ViAttr attributeId,                                                           IviRangeTablePtr *rangeTablePtr);static ViStatus _VI_FUNC FL45AttrResolution_WriteCallback (ViSession vi,                                                           ViSession io,                                                           ViConstString channelName,                                                           ViAttr attributeId,                                                           ViReal64 value);static ViStatus _VI_FUNC FL45AttrResolution_ReadCallback (ViSession vi,                                                          ViSession io,                                                          ViConstString channelName,                                                          ViAttr attributeId,                                                          ViReal64 *value);static ViStatus _VI_FUNC FL45AttrTriggerSource_WriteCallback (ViSession vi,                                                              ViSession io,                                                              ViConstString channelName,                                                              ViAttr attributeId,                                                              ViInt32 value);static ViStatus _VI_FUNC FL45AttrTriggerSource_ReadCallback (ViSession vi,                                                             ViSession io,                                                             ViConstString channelName,                                                             ViAttr attributeId,                                                             ViInt32 *value);static ViStatus _VI_FUNC FL45AttrTriggerDelay_WriteCallback (ViSession vi,                                                             ViSession io,                                                             ViConstString channelName,                                                             ViAttr attributeId,                                                             ViReal64 value);static ViStatus _VI_FUNC FL45AttrTriggerDelay_ReadCallback (ViSession vi,                                                            ViSession io,                                                            ViConstString channelName,                                                            ViAttr attributeId,                                                            ViReal64 *value);static ViStatus _VI_FUNC FL45AttrTriggerDelay_CheckCallback (ViSession vi,                                                             ViConstString channelName,                                                             ViAttr attributeId,                                                             ViReal64 value);static ViStatus _VI_FUNC FL45AttrAcMinFreq_RangeTableCallback (ViSession vi,                                                               ViConstString channelName,                                                               ViAttr attributeId,                                                               IviRangeTablePtr *rangeTablePtr);static ViStatus _VI_FUNC FL45AttrAcMaxFreq_ReadCallback (ViSession vi,                                                         ViSession io,                                                         ViConstString channelName,                                                         ViAttr attributeId,                                                         ViReal64 *value);static ViStatus _VI_FUNC FL45AttrAcMaxFreq_RangeTableCallback (ViSession vi,                                                               ViConstString channelName,                                                               ViAttr attributeId,                                                               IviRangeTablePtr *rangeTablePtr);static ViStatus _VI_FUNC FL45AttrApertureTime_ReadCallback (ViSession vi,                                                            ViSession io,                                                            ViConstString channelName,                                                            ViAttr attributeId,                                                            ViReal64 *value);static ViStatus _VI_FUNC FL45AttrAutoRangeValue_ReadCallback (ViSession vi,                                                              ViSession io,                                                              ViConstString channelName,                                                              ViAttr attributeId,                                                              ViReal64 *value);static ViStatus _VI_FUNC FL45AttrDbMode_WriteCallback (ViSession vi,                                                       ViSession io,                                                       ViConstString channelName,                                                       ViAttr attributeId,                                                       ViInt32 value);static ViStatus _VI_FUNC FL45AttrDbMode_ReadCallback (ViSession vi, ViSession io,                                                      ViConstString channelName,                                                      ViAttr attributeId,                                                      ViInt32 *value);static ViStatus _VI_FUNC FL45AttrDbMode_CheckCallback (ViSession vi,                                                       ViConstString channelName,                                                       ViAttr attributeId,                                                       ViInt32 value);static ViStatus _VI_FUNC FL45AttrDbRef_WriteCallback (ViSession vi, ViSession io,                                                      ViConstString channelName,                                                      ViAttr attributeId,                                                      ViInt32 value);static ViStatus _VI_FUNC FL45AttrDbRef_ReadCallback (ViSession vi, ViSession io,                                                     ViConstString channelName,                                                     ViAttr attributeId,                                                     ViInt32 *value);static ViStatus _VI_FUNC FL45AttrDbRef_CheckCallback (ViSession vi,                                                      ViConstString channelName,                                                      ViAttr attributeId,                                                      ViInt32 value);static ViStatus _VI_FUNC FL45AttrHoldEnable_WriteCallback (ViSession vi,                                                           ViSession io,                                                           ViConstString channelName,                                                           ViAttr attributeId,                                                           ViBoolean value);static ViStatus _VI_FUNC FL45AttrHoldEnable_ReadCallback (ViSession vi,                                                          ViSession io,                                                          ViConstString channelName,                                                          ViAttr attributeId,                                                          ViBoolean *value);static ViStatus _VI_FUNC FL45AttrHoldThreshold_WriteCallback (ViSession vi,                                                              ViSession io,                                                              ViConstString channelName,                                                              ViAttr attributeId,                                                              ViInt32 value);static ViStatus _VI_FUNC FL45AttrHoldThreshold_ReadCallback (ViSession vi,                                                             ViSession io,                                                             ViConstString channelName,                                                             ViAttr attributeId,                                                             ViInt32 *value);static ViStatus _VI_FUNC FL45AttrCompareEnable_WriteCallback (ViSession vi,                                                              ViSession io,                                                              ViConstString channelName,                                                              ViAttr attributeId,                                                              ViBoolean value);static ViStatus _VI_FUNC FL45AttrCompareEnable_ReadCallback (ViSession vi,                                                             ViSession io,                                                             ViConstString channelName,                                                             ViAttr attributeId,                                                             ViBoolean *value);static ViStatus _VI_FUNC FL45AttrCompareHigh_WriteCallback (ViSession vi,                                                            ViSession io,                                                            ViConstString channelName,                                                            ViAttr attributeId,                                                            ViReal64 value);static ViStatus _VI_FUNC FL45AttrCompareLow_WriteCallback (ViSession vi,                                                           ViSession io,                                                           ViConstString channelName,                                                           ViAttr attributeId,                                                           ViReal64 value);static ViStatus _VI_FUNC FL45AttrMinMaxMode_WriteCallback (ViSession vi,                                                           ViSession io,                                                           ViConstString channelName,                                                           ViAttr attributeId,                                                           ViInt32 value);static ViStatus _VI_FUNC FL45AttrMinMaxMode_ReadCallback (ViSession vi,                                                          ViSession io,                                                          ViConstString channelName,                                                          ViAttr attributeId,                                                          ViInt32 *value);static ViStatus _VI_FUNC FL45AttrMinMaxMax_WriteCallback (ViSession vi,                                                          ViSession io,                                                          ViConstString channelName,                                                          ViAttr attributeId,                                                          ViReal64 value);static ViStatus _VI_FUNC FL45AttrMinMaxMax_CheckCallback (ViSession vi,                                                          ViConstString channelName,                                                          ViAttr attributeId,                                                          ViReal64 value);static ViStatus _VI_FUNC FL45AttrMinMaxMin_WriteCallback (ViSession vi,                                                          ViSession io,                                                          ViConstString channelName,

⌨️ 快捷键说明

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