📄 art2001.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 + -