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

📄 art2001.bas

📁 数据采集卡ART2002/1的VB原码 购买很贵的啊
💻 BAS
字号:
Attribute VB_Name = "Module_Driver"
' 用于AD采样的实际硬件参数
Type ART2001_PARA_AD
    ADMode        As Long ' 连续采集和分组采集方式选择
    FirstChannel  As Long ' 首通道号
    LastChannel   As Long ' 末通道号
    Frequency     As Long ' 采集频率(Hz)
    GroupInterval As Long ' 组间间隔(uS)(只有在分组采集中有效)
    Gains         As Long ' 增益选择
    TriggerSource As Long ' 内外触发源选择
    ClockSource   As Long ' 时钟源选择
    GroundingMode As Long ' 接地方式(单端或双端选择)
End Type
'***********************************************************
' AD参数(ART2001_PARA_AD)中的ADMode使用的采集方式选项
Public Const ART2001_SEQUENCE_MODE = &H0       '连续采集
Public Const ART2001_GROUP_MODE = &H1          '分组采集

'***********************************************************
' AD参数(ART2001_PARA_AD)中的ADGains使用的硬件增益选项
Public Const ART2001_1MULT_GAINS = &H0     ' 1倍增益(使用PGA202或PGA203放大器)
Public Const ART2001_10MULT_GAINS = &H1    ' 10倍增益(使用PGA202放大器)
Public Const ART2001_100MULT_GAINS = &H2   ' 100倍增益(使用PGA202放大器)
Public Const ART2001_1000MULT_GAINS = &H3  ' 1000倍增益(使用PGA202放大器)
Public Const ART2001_2MULT_GAINS = &H1     ' 2倍增益(使用PGA203放大器)
Public Const ART2001_4MULT_GAINS = &H2     ' 4倍增益(使用PGA203放大器)
Public Const ART2001_8MULT_GAINS = &H3     ' 8倍增益(使用PGA203放大器)

'***********************************************************
' AD硬件参数ART2001_PARA_AD中的TriggerSource成员变量所使用AD启动触发源选项
Public Const ART2001_IN_TRIGGER = &H0      ' 内触发方式
Public Const ART2001_OUT_TRIGGER = &H1     ' 外触发方式

'***********************************************************
' AD硬件参数ART2001_PARA_AD中的ClockSource成员变量所使用内部和外部时钟源选项
Public Const ART2001_IN_CLOCK = &H0         ' 内部时钟定时触发
Public Const ART2001_OUT_CLOCK = &H1        ' 外部时钟定时触发

'***********************************************************
' AD参数(ART2001_PARA_AD)中的GroundingMode使用的模拟信号接地方式选项
Public Const ART2001_SE_MODE = &H0         '单端方式(SE:Single end)
Public Const ART2001_DI_MODE = &H1         '双端方式(DI:Differential)

'***********************************************************
' CreateFileObject所用的文件操作方式控制字(可通过或指令实现多种方式并操作)
Public Const ART2001_modeRead = &H0               ' 只读文件方式
Public Const ART2001_modeWrite = &H1              ' 只写文件方式
Public Const ART2001_modeReadWrite = &H2          ' 既读又写文件方式
Public Const ART2001_modeCreate = &H1000          ' 如果文件不存可以创建该文件,如果存在,则重建此文件,并清0

'***********************************************************



'################### 常规通用函数(上层底层用户接口)####################
' 适用于本设备的最基本操作
Declare Function ART2001_CreateDevice Lib "ART2001" (ByVal BaseAddress As Integer) As Long    ' 创建设备对象
Declare Function ART2001_ReleaseDevice Lib "ART2001" (ByVal hDevice As Long) As Boolean  ' 关闭设备,禁止传输,且释放资源

'####################### AD数据读取函数 #################################
' 适于大多数普通用户,这些接口最简单、最快捷、最可靠,让用户不必知道设备
' 低层复杂的硬件控制协议和繁多的软件控制编程,仅用下面的初始化设备和读取
' AD数据两个函数便能轻松高效地实现高速、连续的数据采集

Declare Function ART2001_InitDeviceProAD Lib "ART2001" (ByVal hDevice As Long, ByRef pADPara As ART2001_PARA_AD) As Boolean          ' 硬件参数, 它仅在此函数中决定硬件状态
                                        
Declare Function ART2001_SetDevFreqenceAD Lib "ART2001" (ByVal hDevice As Long, ByVal ADFrequence As Long) As Boolean         ' AD采样频率(Hz)

Declare Function ART2001_StartDeviceProAD Lib "ART2001" (ByVal hDevice As Long) As Boolean  ' 在初始化之后,用此函数启动设备

Declare Function ART2001_ReadDeviceProAD_NotEmpty Lib "ART2001" (ByVal hDevice As Long, ByRef pADBuffer As Integer, ByVal nReadSizeWords As Long, Optional ByVal bCheckOverflow As Boolean = False) As Long          ' 是否检测FIFO溢出状态(默认为不检测)
                            
Declare Function ART2001_GetDevStatusProAD Lib "ART2001" (ByVal hDevice As Long, ByRef bNotEmpty As Boolean, ByRef bHalf As Boolean, ByRef bOverflow As Boolean) As Boolean                           ' 取得溢出状态,TRUE表示已溢出,FALSE表示未溢出

'''''''''''''''''''''''''''''''''''/
Declare Function ART2001_ReadDeviceProAD_Half Lib "ART2001" (ByVal hDevice As Long, ByRef pADBuffer As Integer, ByVal nReadSizeWords As Long) As Long
                                
Declare Function ART2001_StopDeviceProAD Lib "ART2001" (ByVal hDevice As Long) As Boolean  ' 在启动设备之后,暂停设备
Declare Function ART2001_ReleaseDeviceProAD Lib "ART2001" (ByVal hDevice As Long) As Boolean  ' 关闭设备,禁止传输,且释放资源
                                        
'##################### AD数据读取函数(中断方式)(上层用户函数) ###########################
' 中断方式暂没有提供
Declare Function ART2001_CheckInterrupter Lib "ART2001" (ByVal hDevice As Long, ByVal IRQNumber As Integer) As Boolean      ' 检查中断资源,如果指定的中断号可用,则返回TRUE
Declare Function ART2001_InitDeviceIntAD Lib "ART2001" (ByVal hDevice As Long, ByVal hEvent As Long, ByVal nFifoHalfLength As Long, ByRef pADPara As ART2001_PARA_AD, ByVal nIRQNumber As Integer) As Boolean          ' 当前使用的硬件中断号
Declare Function ART2001_StartDeviceIntAD Lib "ART2001" (ByVal hDevice As Long) As Boolean  ' 以中断方式启动AD
Declare Function ART2001_ReadDeviceIntAD Lib "ART2001" (ByVal hDevice As Long, ByRef pADBuffer As Integer, ByVal ReadSizeWords As Long) As Long
Declare Function ART2001_StopDeviceIntAD Lib "ART2001" (ByVal hDevice As Long) As Boolean
Declare Function ART2001_ReleaseDeviceIntAD Lib "ART2001" (ByVal hDevice As Long) As Boolean
'##################### AD数据读取函数(DMA方式)(上层用户函数) ###########################
Declare Function ART2001_CheckDmaAdapter Lib "ART2001" (ByVal hDevice As Long, ByVal DMAChannel As Integer) ' 申请DMA资源,如果指定的DMA通道号可用,则返回TRUE
Declare Function ART2001_InitDeviceDmaAD Lib "ART2001" (ByVal hDevice As Long, ByRef pADBuffer As Integer, ByVal DMALengthWords As Long, ByRef pADPara As ART2001_PARA_AD, ByVal nDMAChannel As Integer) As Boolean                 ' 当前使用的DMA通道
Declare Function ART2001_StartDeviceDmaAD Lib "ART2001" (ByVal hDevice As Long) As Boolean   ' 开始启动设备进行DMA传输
Declare Function ART2001_GetDevIndexDmaAD Lib "ART2001" (ByVal hDevice As Long) As Long   ' 返回在当前周期内完成的点数, 其变化区间为[0, 65535].该函数每执行一次只需要3微秒左右
Declare Function ART2001_MapDevBufferDmaAD Lib "ART2001" (ByVal hDevice As Long, ByVal nDMABufferOffset As Long, ByVal nMapSizeWords As Long)              ' 指定从数据区起点开始所取的点数(即字数)
Declare Function ART2001_StopDeviceDmaAD Lib "ART2001" (ByVal hDevice As Long) As Boolean  ' 暂停DMA设备
Declare Function ART2001_ReleaseDeviceDmaAD Lib "ART2001" (ByVal hDevice As Long) As Boolean  ' 释放DMA资源

'#################### AD硬件参数保存、读取函数(上层用户函数) ###########################
Declare Function ART2001_SaveParaAD Lib "ART2001" (ByVal hDevice As Long, ByRef pADPara As ART2001_PARA_AD) As Boolean
Declare Function ART2001_LoadParaAD Lib "ART2001" (ByVal hDevice As Long, ByRef pADPara As ART2001_PARA_AD) As Boolean

'############### I/O端口直接操作及读写函数(底层用户接口) #####################
' 适用于用户对本设备更直接、更特殊、更低层、更复杂的控制。比如根据特殊的
' 控制对象需要特殊的控制流程和控制效率时,则用户可以使用这些接口予以实现。
' 但这些函数主要适用于传统设备,如ISA总线、并口、串口等设备
Declare Function ART2001_WritePortByte Lib "ART2001" (ByVal hDevice As Long, ByVal nPort As Long, ByVal Value As Byte) As Boolean
Declare Function ART2001_WritePortWord Lib "ART2001" (ByVal hDevice As Long, ByVal nPort As Long, ByVal Value As Integer) As Boolean
Declare Function ART2001_WritePortULong Lib "ART2001" (ByVal hDevice As Long, ByVal nPort As Long, ByVal Value As Long) As Boolean

Declare Function ART2001_ReadPortByte Lib "ART2001" (ByVal hDevice As Long, ByVal nPort As Long) As Byte
Declare Function ART2001_ReadPortWord Lib "ART2001" (ByVal hDevice As Long, ByVal nPort As Long) As Integer
Declare Function ART2001_ReadPortULong Lib "ART2001" (ByVal hDevice As Long, ByVal nPort As Long) As Long

'########################### 文件操作函数 #####################################
Declare Function ART2001_CreateFileObject Lib "ART2001" (ByVal hDevice As Long, ByVal NewFileName As String, ByVal Mode As Integer) As Long                       ' 文件操作方式
Declare Function ART2001_WriteFile Lib "ART2001" (ByVal hFileObject As Long, ByRef pUserRegion As Long, ByVal nWriteSizeBytes As Long) As Boolean                ' 缓冲区大小(字节)

Declare Function ART2001_ReadFile Lib "ART2001" (ByVal hFileObject As Long, ByRef pFileUserRegion As Long, ByVal OffsetBytes As Long, ByVal nReadSizeBytes As Long) As Boolean            ' 从偏移位置开始读的字节数

Declare Function ART2001_GetFileLength Lib "ART2001" (ByVal hFileObject As Long) As Long  ' 取得指定文件长度(字节)
Declare Function ART2001_SetFileOffset Lib "ART2001" (ByVal hFileObject As Long, ByVal nOffsetBytes As Long) As Boolean              ' 文件偏移位置(以字为单位)

Declare Function ART2001_ReleaseFile Lib "ART2001" (ByVal hFileObject As Long) As Boolean
Declare Function ART2001_GetDiskFreeBytes Lib "ART2001" (ByVal DiskName As String) As Currency                  ' 盘符名,如C盘为"C:\\", D盘为"D:\\"

'################# 线程操作函数 ########################
Declare Function ART2001_CreateSystemEvent Lib "ART2001" (void) As Long  ' 创建内核事件对象
Declare Function ART2001_ReleaseSystemEvent Lib "ART2001" (ByVal hEvent As Long) As Boolean  ' 释放内核事件对象
Declare Function ART2001_CreateVBThread Lib "ART2001" (ByRef hThread As Long, ByVal StartThread As Long) As Boolean
Declare Function ART2001_TerminateVBThread Lib "ART2001" (ByVal hThreadHandle As Long) As Boolean
Declare Function ART2001_DelayTime Lib "ART2001" (ByVal hDevice As Long, ByVal nTime As Long) As Boolean
Declare Function ART2001_EnableShowMessage Lib "ART2001" (ByVal bShowMessage As Boolean) As Boolean  ' 是否允许驱动底层弹出各种提示信息
''''''''''''''''''''''''''''''''''''''''

⌨️ 快捷键说明

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