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

📄 pci8613.bas

📁 VB PCI8613控制卡AD转换的例程
💻 BAS
📖 第 1 页 / 共 2 页
字号:

Declare Function PCI8613_StopDeviceProAD Lib "PCI8613" (ByVal hDevice As Long) As Boolean
' 在启动设备之后,暂停设备
' 设备对象句柄,它由CreateDevice函数创建


Declare Function PCI8613_ReleaseDeviceProAD Lib "PCI8613" (ByVal hDevice As Long) As Boolean
' 关闭AD设备,禁止传输,且释放资源
' 设备句柄,它由CreateDevice函数创建

Declare Function PCI8613_GetDevTriggerPos Lib "PCI8613" (ByVal hDevice As Long, ByRef nTriggerPos As Long) As Boolean
' 取得触发位置
' 设备对象句柄,它由CreateDevice函数创建
' 取得触发位置值


    '##################### AD数据读取函数(中断方式)(上层用户函数) ###########################
Declare Function PCI8613_InitDeviceIntAD Lib "PCI8613" (ByVal hDevice As Long, ByVal hEvent As Long, ByVal nFifoHalfLength As Long, ByRef pPara As PCI8613_PARA_AD) As Boolean
Declare Function PCI8613_StartDeviceIntAD Lib "PCI8613" (ByVal hDevice As Long) As Boolean               ' 在初始化之后,启动设备
Declare Function PCI8613_ReadDeviceIntAD Lib "PCI8613" (ByVal hDevice As Long, ByRef pADBuffer As Long, ByVal nReadSizeWords As Long, ByRef nRetSizeWords As Long) As Long
    
Declare Function PCI8613_StopDeviceIntAD Lib "PCI8613" (ByVal hDevice As Long) As Boolean                 ' 在开始AD采集后,停止设备
Declare Function PCI8613_ReleaseDeviceIntAD Lib "PCI8613" (ByVal hDevice As Long) As Boolean

    '##################### AD数据读取函数(DMA方式)(上层用户函数) ###########################
    ' AD直接内存(DMA)方式函数
    
Declare Function PCI8613_InitDeviceDmaAD Lib "PCI8613" (ByVal hDmaEvent As Long, ByRef ADBuffer As Long, ByVal nReadSizeWords As Long, ByVal nSegmentCount As Long, ByVal nSegmentSizeWord As Long, ByRef pADPara As PCI8613_PARA_AD) As Boolean                         ' 初始化设备,当返回TRUE后,设备即准备就绪.




Declare Function PCI8613_StartDeviceDmaAD Lib "PCI8613" (ByVal hDevice As Long) As Boolean                ' 在初始化之后,启动设备

Declare Function PCI8613_GetDevStatusDmaAD Lib "PCI8613" (ByVal hDevice As Long, ByRef pDMAStatus As PCI8613_STATUS_DMA) As Boolean         ' 在AD采样过程中取得DMA的有关状态,返回值表示函数是否成功

Declare Function PCI8613_SetDevStatusDmaAD Lib "PCI8613" (ByVal hDevice As Long, ByVal iClrBufferID As Long) As Boolean                     ' 在AD采样过程中设置DMA的有关状态,返回值表示函数是否成功
        
Declare Function PCI8613_StopDeviceDmaAD Lib "PCI8613" (ByVal hDevice As Long) As Boolean                                                   ' 在启动设备之后,暂停设备

Declare Function PCI8613_ReleaseDeviceDmaAD Lib "PCI8613" (ByVal hDevice As Long) As Boolean                                                ' 关闭AD设备,禁止传输,且释放资源


'##################### AD的硬件参数操作函数 ###########################
Declare Function PCI8613_SaveParaAD Lib "PCI8613" (ByVal hDevice As Long, ByRef pADPara As PCI8613_PARA_AD) As Boolean     ' 将当前的AD采样参数保存至系统中
Declare Function PCI8613_LoadParaAD Lib "PCI8613" (ByVal hDevice As Long, ByRef pADPara As PCI8613_PARA_AD) As Boolean     ' 将AD采样参数从系统中读出
Declare Function PCI8613_ResetParaAD Lib "PCI8613" (ByVal hDevice As Long, ByRef pADPara As PCI8613_PARA_AD) As Boolean    ' 将AD采样参数恢复至出厂默认值



'####################### DA数据输出函数 #################################
' 适于大多数普通用户,这些接口最简单、最快捷、最可靠,让用户不必知道设备
' 低层复杂的硬件控制协议和繁多的软件控制编程,仅用下面一个函数便能轻
' 松实现高速、连续的DA数据输出
Declare Function PCI8613_InitDevProDA Lib "PCI8613" (ByVal hDevice As Long, ByVal OutputRange As Long, ByVal nDAChannel As Integer) As Boolean
' 初始化DA,如设置DA指定通道的输出量程
' 设备对象句柄,它由CreateDevice函数创建
' 输出量程,具体定义请参考上面的常量定义部分
' DA输出通道[0, 3]

Declare Function PCI8613_WriteDevProDA Lib "PCI8613" (ByVal hDevice As Long, ByVal nDAData As Integer, ByVal nDAChannel As Integer) As Boolean

' 写DA数据
' 设备对象句柄,它由CreateDevice函数创建
' 输出的DA原始数据[0, 4095]
' DA输出通道[0, 3]

Declare Function PCI8613_DAReset Lib "PCI8613" (ByVal hDevice As Long, ByVal ResetMode As Long) As Boolean



'########################## 计数器操作函数 ##################################
'####################### 计数器与定时器操作函数 #########################
               ' 设置计数器的初值
Declare Function PCI8613_SetDeviceCNT Lib "PCI8613" (ByVal hDevice As Long, ByRef CNTPara As PCI8613_PARA_CNT, ByVal nChannel As Integer) As Boolean
Declare Function PCI8613_GetDeviceCNT Lib "PCI8613" (ByVal hDevice As Long, ByRef pCNTPara As PCI8613_PARA_CNT, ByVal nChannel As Integer) As Boolean      ' 取得各路计数器的当前计数值



'####################### 数字I/O输入输出函数 #################################
' 用户可以使用WriteRegisterULong和ReadRegisterULong等函数直接控制寄存器进行I/O
' 输入输出,但使用下面两个函数更省事,它不需要您关心寄存器分配和位操作等,而只
' 需象VB等语言的属性操作那么简单地实现各开关量通道的控制。

Declare Function PCI8613_SetDeviceDO Lib "PCI8613" (ByVal hDevice As Long, ByRef bDOSts As Byte) As Boolean
' 输出数字量状态
' 设备对象句柄,它由CreateDevice函数创建
' 开关输出状态(注意: 必须定义为16个字节元素的数组)

Declare Function PCI8613_GetDeviceDI Lib "PCI8613" (ByVal hDevice As Long, ByRef bDISts As Byte) As Boolean
' 取得数字量状态
' 设备对象句柄,它由CreateDevice函数创建
' 开关输入状态(注意: 必须定义为16个字节元素的数组)


Declare Function PCI8613_RetDeviceDO Lib "PCI8613" (ByVal hDevice As Long, ByRef bDOSts As Byte) As Boolean
' 回读数字量输出状态
' 设备句柄
' 获得开关输出状态(注意: 必须定义为16个字节元素的数组)



'################# 内存映射寄存器直接操作及读写函数 ########################
' 适用于用户对本设备更直接、更特殊、更低层、更复杂的控制。比如根据特殊的
' 控制对象需要特殊的控制流程和控制效率时,则用户可以使用这些接口予以实现。
Declare Function PCI8613_GetDeviceAddr Lib "PCI8613" (ByVal hDevice As Long, ByRef LinearAddr As Long, ByRef PhysAddr As Long, ByVal RegisterID As Integer) As Boolean
' 取得指定的指定设备寄存器组的线性基地址和物理地址
' 设备对象句柄,它由CreateDevice函数创建
' 返回指定寄存器组的线性地址
' 返回指定寄存器组的物理地址
' 设备寄存器组的ID号(0-5)

Declare Function PCI8613_GetDeviceBar Lib "PCI8613" (ByVal hDevice As Long, ByRef LinearAddr As Long, ByRef pulPCIBar As Long) As Boolean
 ' 取得指定的指定设备寄存器组BAR地址
 ' 设备对象句柄,它由CreateDevice函数创建
 ' 返回PCI BAR所有地址,具体PCI BAR中有多少可用地址请看硬件说明书
 
Declare Function PCI8613_WriteRegisterByte Lib "PCI8613" (ByVal hDevice As Long, ByVal LinearAddr As Long, ByVal OffsetBytes As Long, ByVal Value As Byte) As Boolean
' 往指定寄存器空间位置写入单节字数据
' 设备对象句柄,它由CreateDevice函数创建
' 指定寄存器的线性基地址,它等于GetDeviceAddr中的LinearAddr参数返回值
' 相对于线性基地址基地址的偏移位置(字节)
' 往指定地址写入单字节数据(其地址由线性基地址和偏移位置决定)

Declare Function PCI8613_WriteRegisterWord Lib "PCI8613" (ByVal hDevice As Long, ByVal LinearAddr As Long, ByVal OffsetBytes As Long, ByVal Value As Integer) As Boolean
' 往指定寄存器空间位置写入双字节数据
' 设备对象句柄,它由CreateDevice函数创建
' 指定寄存器的线性基地址,它等于GetDeviceAddr中的LinearAddr参数返回值
' 相对于线性基地址基地址的偏移位置(字节)
' 往指定地址写入单字节数据(其地址由线性基地址和偏移位置决定)

Declare Function PCI8613_WriteRegisterULong Lib "PCI8613" (ByVal hDevice As Long, ByVal LinearAddr As Long, ByVal OffsetBytes As Long, ByVal Value As Long) As Boolean
' 往指定寄存器空间位置写入四节字数据
' 设备对象句柄,它由CreateDevice函数创建
' 指定寄存器的线性基地址,它等于GetDeviceAddr中的LinearAddr参数返回值
' 相对于线性基地址基地址的偏移位置(字节)
' 往指定地址写入单字节数据(其地址由线性基地址和偏移位置决定)

Declare Function PCI8613_ReadRegisterByte Lib "PCI8613" (ByVal hDevice As Long, ByVal LinearAddr As Long, ByVal OffsetBytes As Long) As Byte
' 往指定寄存器空间位置读入单字节数据
' 设备对象句柄,它由CreateDevice函数创建
' 指定寄存器的线性基地址,它等于GetDeviceAddr中的LinearAddr参数返回值
' 相对于线性基地址基地址的偏移位置(字节)
' 往指定地址写入单字节数据(其地址由线性基地址和偏移位置决定)

Declare Function PCI8613_ReadRegisterWord Lib "PCI8613" (ByVal hDevice As Long, ByVal LinearAddr As Long, ByVal OffsetBytes As Long) As Integer
' 往指定寄存器空间位置读入双字节数据
' 设备对象句柄,它由CreateDevice函数创建
' 指定寄存器的线性基地址,它等于GetDeviceAddr中的LinearAddr参数返回值
' 相对于线性基地址基地址的偏移位置(字节)
' 往指定地址写入单字节数据(其地址由线性基地址和偏移位置决定)

Declare Function PCI8613_ReadRegisterULong Lib "PCI8613" (ByVal hDevice As Long, ByVal LinearAddr As Long, ByVal OffsetBytes As Long) As Long
' 往指定寄存器空间位置读入四字节数据
' 设备对象句柄,它由CreateDevice函数创建
' 指定寄存器的线性基地址,它等于GetDeviceAddr中的LinearAddr参数返回值
' 相对于线性基地址基地址的偏移位置(字节)
' 往指定地址写入单字节数据(其地址由线性基地址和偏移位置决定)



'################# I/O端口直接操作及读写函数 ########################
' 适用于用户对本设备更直接、更特殊、更低层、更复杂的控制。比如根据特殊的
' 控制对象需要特殊的控制流程和控制效率时,则用户可以使用这些接口予以实现。
' 但这些函数主要适用于传统设备,如ISA总线、并口、串口等设备,不能用于本PCI设备
Declare Function PCI8613_WritePortByte Lib "PCI8613" (ByVal hDevice As Long, ByVal nPort As Integer, ByVal Value As Byte) As Boolean
' 8位写端口
' 设备句柄(由CreateDevice创建)
' 端口地址
' 写出的8位整型数据
Declare Function PCI8613_WritePortWord Lib "PCI8613" (ByVal hDevice As Long, ByVal nPort As Integer, ByVal Value As Integer) As Boolean
Declare Function PCI8613_WritePortULong Lib "PCI8613" (ByVal hDevice As Long, ByVal nPort As Long, ByVal Value As Long) As Boolean
Declare Function PCI8613_ReadPortByte Lib "PCI8613" (ByVal hDevice As Long, ByVal nPort As Integer) As Byte
Declare Function PCI8613_ReadPortWord Lib "PCI8613" (ByVal hDevice As Long, ByVal nPort As Integer) As Integer
Declare Function PCI8613_ReadPortULong Lib "PCI8613" (ByVal hDevice As Long, ByVal nPort As Integer) As Long



'######################### 文件操作函数 ##############################
Declare Function PCI8613_CreateFileObject Lib "PCI8613" (ByVal hDevice As Long, ByVal strFileName As String, ByVal Mode As Integer) As Long
' 创建文件对象
' 设备对象句柄,它由CreateDevice函数创建
' 路径及文件名
' 文件操作方式

Declare Function PCI8613_WriteFile Lib "PCI8613" (ByVal hFileObject As Long, ByRef pDataBuffer As Integer, ByVal nWriteSizeBytes As Long) As Boolean
' 保存用户空间中数据
' 文件对象,它由CreateFileObject函数创建
' 用户数据空间地址
' 缓冲区大小(字节)

Declare Function PCI8613_ReadFile Lib "PCI8613" (ByVal hFileObject As Long, ByRef pDataBuffer As Integer, ByVal nOffsetBytes As Long, ByVal nReadSizeBytes As Long) As Boolean
' 读数据
' 文件对象,它由CreateFileObject函数创建
' 接受文件数据的用户内存缓冲区
' 从文件前端开始的偏移位置
' 从偏移位置开始读的字节数

Declare Function PCI8613_SetFileOffset Lib "PCI8613" (ByVal hFileObject As Long, ByVal nOffsetBytes As Long) As Boolean
' 设置文件偏移指针
' 文件对象,它由CreateFileObject函数创建
' 文件偏移位置(以字为单位)

Declare Function PCI8613_GetFileLength Lib "PCI8613" (ByVal hFileObject As Long) As Long        ' 取得指定文件长度(字节)
Declare Function PCI8613_ReleaseFile Lib "PCI8613" (ByVal hFileObject As Long) As Boolean       ' 获得指定盘符的磁盘空间(注意使用64位变量)
Declare Function PCI8613_GetDiskFreeBytes Lib "PCI8613" (ByVal strDiskName As String) As Long   ' 盘符名,如C盘为"C:\\", D盘为"D:\\"



'########################### 线程操作函数 ######################################
Declare Function PCI8613_CreateSystemEvent Lib "PCI8613" () As Long      ' 创建内核事件对象,供InitDeviceDmaAD和VB子线程等函数使用
Declare Function PCI8613_ReleaseSystemEvent Lib "PCI8613" (ByVal hEvent As Long) As Boolean      ' 释放内核事件对象


Declare Function PCI8613_CreateVBThread Lib "PCI8613" (ByRef hThread As Long, ByVal RoutineAddr As Long) As Boolean ' 创建VB子线程
Declare Function PCI8613_TerminateVBThread Lib "PCI8613" (ByVal hThread As Long) As Boolean ' 释放VB子线程
Declare Function PCI8613_DelayTimeUs Lib "PCI8613" (ByVal hThread As Long, ByVal nTimeUs As Long) As Boolean  ' 微秒级延时函数

Declare Function PCI8613_GetLastErrorEx Lib "PCI8613" (ByVal strFuncName As String, ByVal strErrorMsg As String) As Integer

Declare Function PCI8613_RemoveLastErrorEx Lib "PCI8613" (ByVal strFuncName As String) As Integer   ' 从错误信息库中移除指定函数的最后一次错误信息

⌨️ 快捷键说明

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