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

📄 tktds754.c

📁 CVI教程,用于信号采集系统的多任务开发软件.学习简单,功能实用.
💻 C
📖 第 1 页 / 共 5 页
字号:
/*****************************************************************************  *  Copyright 1998 National Instruments Corporation.  All Rights Reserved.   *  *****************************************************************************//***************************************************************************** *  TKTDS754 4-CH Digitizing Oscilloscope Instrument Driver                                *  LabWindows/CVI 5.0 Instrument Driver                                      *  Original Release: 3/17/98                                   *  By: SF, National Instruments                               *      PH. 1-512-795-8248   Fax 1-512-794-5678                               *                                                                            *  Modification History:                                                     *                                                                            *       3/17/98 - Instrument Driver Created.                   *                                                                            *****************************************************************************/#include <string.h>#include <stdio.h>  #include <formatio.h>#include <stdlib.h>#include <math.h>#include "tktds754.h"/***************************************************************************** *--------------------- Hidden Attribute Declarations -----------------------* *****************************************************************************/#define TKTDS754_ATTR_OPC_TIMEOUT               (IVI_SPECIFIC_PRIVATE_ATTR_BASE +  1L)   /* ViInt32   */#define TKTDS754_ATTR_TRIGGER_SOURCE_SW_COPY    (IVI_SPECIFIC_PRIVATE_ATTR_BASE +  2L)   /* ViString  */#define TKTDS754_ATTR_HORZ_SEC_PER_DIV          (IVI_SPECIFIC_PRIVATE_ATTR_BASE +  3L)   /* ViReal64  */ #define TKTDS754_ATTR_NUM_EN_INPUT_CHANS        (IVI_SPECIFIC_PRIVATE_ATTR_BASE +  4L)   /* ViInt32   */#define TKTDS754_ATTR_MAX_NUM_EN_INPUT_CHANS    (IVI_SPECIFIC_PRIVATE_ATTR_BASE +  5L)   /* ViInt32   */#define TKTDS754_ATTR_NUM_EN_REF_CHANS          (IVI_SPECIFIC_PRIVATE_ATTR_BASE +  6L)   /* ViInt32   */#define TKTDS754_ATTR_MAX_NUM_EN_REF_CHANS      (IVI_SPECIFIC_PRIVATE_ATTR_BASE +  7L)   /* ViInt32   */#define TKTDS754_ATTR_NUM_EN_MATH_CHANS         (IVI_SPECIFIC_PRIVATE_ATTR_BASE +  8L)   /* ViInt32   */#define TKTDS754_ATTR_LOGIC_LEVEL               (IVI_SPECIFIC_PRIVATE_ATTR_BASE +  9L)   /* ViInt32  Channel-Based */#define TKTDS754_ATTR_LOGIC_THRESHOLD           (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 10L)   /* ViReal64 Channel-Based */#define TKTDS754_ATTR_LOGIC_FUNCTION            (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 11L)   /* ViInt32   */#define TKTDS754_ATTR_INPUT_DATA_SOURCE         (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 12L)   /* ViString  */#define TKTDS754_ATTR_ACQUISITION_STOP_AFTER    (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 15L)   /* ViInt32   */#define TKTDS754_ATTR_VERTICAL_SCALE            (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 16L)   /* ViReal64  */#define TKTDS754_ATTR_FORCE_REAL_TIME           (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 17L)   /* ViBoolean */#define TKTDS754_ATTR_HISTO_BOX_POSITIONS       (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 18L)   /* ViString  */#define TKTDS754_ATTR_MASK_STANDARD             (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 19L)   /* ViInt32   */#define TKTDS754_ATTR_MAIN_TRIGGER_TYPE         (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 20L)   /* ViInt32   */#define TKTDS754_ATTR_PULSE_TRIGGER_CLASS       (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 21L)   /* ViInt32   */#define TKTDS754_ATTR_LOGIC_TRIGGER_CLASS       (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 22L)   /* ViInt32   */#define TKTDS754_ATTR_OPTION_STRING             (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 23L)   /* ViString  */    /*- TKTDS754_ATTR_LOGIC_LEVEL Values -*/#define TKTDS754_VAL_LOGIC_HIGH                 1#define TKTDS754_VAL_LOGIC_LOW                  2#define TKTDS754_VAL_LOGIC_DONT_CARE            3    /*- TKTDS754_ATTR_LOGIC_FUNCTION Values -*/#define TKTDS754_VAL_LOGIC_AND                  1#define TKTDS754_VAL_LOGIC_OR                   2#define TKTDS754_VAL_LOGIC_NAND                 3#define TKTDS754_VAL_LOGIC_NOR                  4    /*- TKTDS754_ATTR_ACQUISITION_STOP_AFTER Values -*/#define TKTDS754_VAL_COMMAND                    1/* #define TKTDS754_VAL_SINGLE_SEQUENCE         Defined in Header File */    /* #define TKTDS754_VAL_LIMIT                   Defined in Header File */    /*- TKTDS754_ATTR_MAIN_TRIGGER_TYPE Values -*//* #define TKTDS754_VAL_EDGE                    Defined in Header File *//* #define TKTDS754_VAL_COMM                    Defined in Header File *//* #define TKTDS754_VAL_TV                      Defined in Header File */#define TKTDS754_VAL_LOGIC                      (IVISCOPE_VAL_TRIGGER_TYPE_SPECIFIC_EXT_BASE + 101)#define TKTDS754_VAL_PULSE                      (IVISCOPE_VAL_TRIGGER_TYPE_SPECIFIC_EXT_BASE + 102)/***************************************************************************** *---------------------------- Useful Macros --------------------------------* *****************************************************************************/    /*- I/O buffer size -----------------------------------------------------*/#define BUFFER_SIZE                             512L#define FETCH_BUFFER_SIZE                       1000L    /*- 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    /*- List of channels passed to the Ivi_BuildChannelTable function -------*/ #define CHANNEL_LIST    "CH1,CH2,CH3,CH4,MATH1,MATH2,MATH3,REF1,REF2,REF3,REF4"                                /*- Channel Types -------------------------------------------------------*/#define TKTDS754_VAL_INPUT_CHANNEL              0#define TKTDS754_VAL_REF_CHANNEL                1#define TKTDS754_VAL_MATH_CHANNEL               2    /*- Channels lists to which to restrict channel-based attributes --------*/#define INPUT_CHANNEL_LIST                      "CH1,CH2,CH3,CH4"#define MATH_CHANNEL_LIST                       "MATH1,MATH2,MATH3"#define REF_CHANNEL_LIST                        "REF1,REF2,REF3,REF4"    /*- 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/***************************************************************************** *--- Typedefs for string/string tables used in trigger source callbacks ----* *****************************************************************************/typedef struct    {        ViString col1;        ViString col2;    } tktds754StringTableEntries;typedef tktds754StringTableEntries* tktds754StringTable;/***************************************************************************** *------------------------------- Global Data -------------------------------* *****************************************************************************/        /*- TKTDS754_ATTR_MODEL -*/static IviRangeTableEntry attrModelRangeTableEntries[] =    {           {TKTDS754_VAL_TDS_754A,   0,      0,        "TDS 754A",    0},         {TKTDS754_VAL_TDS_754C,   0,      0,        "TDS 754C",    0},         {IVI_RANGE_TABLE_LAST_ENTRY}    };   static IviRangeTable  attrModelRangeTable =           {        IVI_VAL_DISCRETE,         VI_FALSE,         VI_FALSE,         VI_NULL,         attrModelRangeTableEntries,     };    /*- TKTDS754_ATTR_TRIGGER_SOURCE -*/static tktds754StringTableEntries triggerSourceStringTableEntries[] = /* for non-channel sources only */    {        { TKTDS754_VAL_EXTERNAL     ,      "AUX"   },         { TKTDS754_VAL_AC_LINE      ,      "LINE"  },         { TKTDS754_VAL_SW_TRIG_FUNC ,      ""      },         { TKTDS754_VAL_GPIB_GET     ,      ""      },         { VI_NULL                   ,      VI_NULL }    };                                static tktds754StringTable triggerSourceStringTable = triggerSourceStringTableEntries;    /*          Range Tables used by the tktds754_ConfigureMathChannel        and tktds754_ConfigureMathChannelFFT functions     */static IviRangeTableEntry mathFunctionRangeTableEntries[] =    {        {TKTDS754_VAL_MATH_INVERT, 0, 0, "INV", 0},         {TKTDS754_VAL_MATH_ADD, 0, 0, "+", 0},         {TKTDS754_VAL_MATH_SUBTRACT, 0, 0, "-", 0},         {TKTDS754_VAL_MATH_MULTIPLY, 0, 0, "*", 0},         {TKTDS754_VAL_MATH_DIVIDE, 0, 0, "/", 0},         {TKTDS754_VAL_MATH_INTEGRATE, 0, 0, "INT", 0},         {TKTDS754_VAL_MATH_DIFFERENTIATE, 0, 0, "DIF", 0},         {TKTDS754_VAL_MATH_FFT, 0, 0, "FFT", 0},         {IVI_RANGE_TABLE_LAST_ENTRY}    };static IviRangeTable mathFunctionRangeTable =    {        IVI_VAL_DISCRETE,         VI_FALSE,         VI_FALSE,         "",         mathFunctionRangeTableEntries, 

⌨️ 快捷键说明

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