📄 pci8613.h
字号:
DEVAPI BOOL FAR PASCAL PCI8613_StopDeviceProAD( // 在启动设备之后,暂停设备
HANDLE hDevice); // 设备对象句柄
DEVAPI BOOL FAR PASCAL PCI8613_ReleaseDeviceProAD( // 关闭AD设备,禁止传输,且释放资源
HANDLE hDevice); // 设备句柄
DEVAPI BOOL FAR PASCAL PCI8613_GetDevTriggerPos( // 取得触发位置
HANDLE hDevice, // 设备对象句柄,它由CreateDevice函数创建
PULONG nTriggerPos); // 取得触发位置值(只有当bTriggerFlag为TRUE有效)
//##################### AD数据读取函数(中断方式)(上层用户函数) ###########################
DEVAPI BOOL FAR PASCAL PCI8613_InitDeviceIntAD(
HANDLE hDevice,
HANDLE hEvent,
ULONG nFifoHalfLength,
PPCI8613_PARA_AD pPara);
DEVAPI BOOL FAR PASCAL PCI8613_StartDeviceIntAD( // 在初始化之后,启动设备
HANDLE hDevice); // 设备对象句柄
DEVAPI DWORD FAR PASCAL PCI8613_ReadDeviceIntAD(HANDLE hDevice, // 设备句柄
PULONG pADBuffer, // 将用于接受原始AD数据的用户缓冲区
LONG nReadSizeWords, // 读入的数据长度(字)
PLONG nRetSizeWords); // 返回传输的实际长度(字)
DEVAPI BOOL FAR PASCAL PCI8613_StopDeviceIntAD( // 在开始AD采集后,停止设备
HANDLE hDevice); // 设备对象句柄
DEVAPI BOOL FAR PASCAL PCI8613_ReleaseDeviceIntAD(HANDLE hDevice);
//##################### AD数据读取函数(DMA方式)(上层用户函数) ###########################
// AD直接内存(DMA)方式函数
BOOL DEVAPI FAR PASCAL PCI8613_InitDeviceDmaAD( // 初始化设备,当返回TRUE后,设备即准备就绪.
HANDLE hDevice, // 设备对象,它由CreateDevice函数创建
HANDLE hDmaEvent, // DMA事件句柄,它由CreateSystemEvent创建
ULONG ADBuffer[], // 用户缓冲区,最好为两维数组
LONG nReadSizeWords, // 每次DMA时,用户从指定缓冲应读取的实际长度(要小于或等于nSegmentSizeWords)
LONG nSegmentCount, // 缓冲分段的数量,取值范围为2-64
LONG nSegmentSizeWords, // 缓冲区分段的段长(必须等于FIFO半满长度)
PPCI8613_PARA_AD pADPara); // 硬件参数, 它仅在此函数中决定硬件状态
BOOL DEVAPI FAR PASCAL PCI8613_StartDeviceDmaAD( // 在初始化之后,启动设备
HANDLE hDevice); // 设备对象句柄,它由CreateDevice函数创建
BOOL DEVAPI FAR PASCAL PCI8613_GetDevStatusDmaAD( // 在AD采样过程中取得DMA的有关状态,返回值表示函数是否成功
HANDLE hDevice, // 设备句柄,它由CreateDevice函数创建
PPCI8613_STATUS_DMA pDMAStatus); // 获得的DMA工作状态
BOOL DEVAPI FAR PASCAL PCI8613_SetDevStatusDmaAD( // 在AD采样过程中设置DMA的有关状态,返回值表示函数是否成功
HANDLE hDevice, // 设备句柄,它由CreateDevice函数创建
LONG iClrBufferID); // 要清除的缓冲区ID,将其置为0
BOOL DEVAPI FAR PASCAL PCI8613_StopDeviceDmaAD( // 在启动设备之后,暂停设备
HANDLE hDevice); // 设备对象句柄,它由CreateDevice函数创建
BOOL DEVAPI FAR PASCAL PCI8613_ReleaseDeviceDmaAD( // 关闭AD设备,禁止传输,且释放资源
HANDLE hDevice); // 设备句柄,它由CreateDevice函数创建
//################# AD的硬件参数操作函数 ########################
DEVAPI BOOL FAR PASCAL PCI8613_SaveParaAD(HANDLE hDevice, PPCI8613_PARA_AD pADPara);
DEVAPI BOOL FAR PASCAL PCI8613_LoadParaAD(HANDLE hDevice, PPCI8613_PARA_AD pADPara);
DEVAPI BOOL FAR PASCAL PCI8613_ResetParaAD(HANDLE hDevice, PPCI8613_PARA_AD pADPara);
//####################### DA数据输出函数 #################################
// 适于大多数普通用户,这些接口最简单、最快捷、最可靠,让用户不必知道设备
// 低层复杂的硬件控制协议和繁多的软件控制编程,仅用下面一个函数便能轻
// 松实现高速、连续的DA数据输出
DEVAPI BOOL FAR PASCAL PCI8613_InitDevProDA(HANDLE hDevice, // 设备对象句柄,它由CreateDevice函数创建
LONG OutputRange, // 输出量程,具体定义请参考上面的常量定义部分
int nDAChannel); // DA输出通道[0, 3]
DEVAPI BOOL FAR PASCAL PCI8613_WriteDevProDA(HANDLE hDevice, // 设备对象句柄
WORD DAData, // 准备输出的DA数据LSB原码
int nDAChannel); // DA通道(0-3)
DEVAPI BOOL FAR PASCAL PCI8613_DAReset(HANDLE hDevice, // 设备对象句柄
ULONG ResetMode); // DA复位模式
//####################### 计数器与定时器操作函数 #########################
BOOL DEVAPI FAR PASCAL PCI8613_SetDeviceCNT( // 设置计数器的初值
HANDLE hDevice, // 设备对象句柄,它由CreateDevice函数创建
PPCI8613_PARA_CNT pCNTPara,// 计数器参数
WORD nChannel); // 计数器通道选择[0—3]
BOOL DEVAPI FAR PASCAL PCI8613_GetDeviceCNT( // 取得各路计数器的当前计数值
HANDLE hDevice, // 设备对象句柄,它由CreateDevice函数创建
PPCI8613_PARA_CNT pCNTPara,// 计数器参数
WORD nChannel); // 计数器通道选择[0—3]
//####################### 数字I/O输入输出函数 #################################
// 用户可以使用WriteRegisterULong和ReadRegisterULong等函数直接控制寄存器进行I/O
// 输入输出,但使用下面两个函数更省事,它不需要您关心寄存器分配和位操作等,而只
// 需象VB等语言的属性操作那么简单地实现各开关量通道的控制。
DEVAPI BOOL FAR PASCAL PCI8613_SetDeviceDO( // 输出开关量状态
HANDLE hDevice, // 设备句柄
BYTE bDOSts[16]); // 开关状态
DEVAPI BOOL FAR PASCAL PCI8613_GetDeviceDI( // 取得开关量状态
HANDLE hDevice, // 设备句柄
BYTE bDISts[16]); // 开关状态
DEVAPI BOOL FAR PASCAL PCI8613_RetDeviceDO( // 回读开关量状态
HANDLE hDevice, // 设备句柄
BYTE bDOSts[16]); // 开关状态
//################# 内存映射寄存器直接操作及读写函数 ########################
// 适用于用户对本设备更直接、更特殊、更低层、更复杂的控制。比如根据特殊的
// 控制对象需要特殊的控制流程和控制效率时,则用户可以使用这些接口予以实现。
DEVAPI BOOL FAR PASCAL PCI8613_GetDeviceAddr( // 取得指定的指定设备ID号的映射寄存器的线性基地址,返回设备总数
HANDLE hDevice, // 设备对象句柄
PULONG LinearAddr, // 返回指定映射寄存器的线性地址
PULONG PhysAddr, // 返回指定映射寄存器的物理地址
int RegisterID); // 设备映射寄存器的ID号(0-5)
DEVAPI BOOL FAR PASCAL PCI8613_GetDeviceBar( // 取得指定的指定设备寄存器组BAR地址
HANDLE hDevice, // 设备对象句柄,它由CreateDevice函数创建
ULONG pulPCIBar[6]); // 返回PCI BAR所有地址,具体PCI BAR中有多少可用地址请看硬件说明书
DEVAPI BOOL FAR PASCAL PCI8613_WriteRegisterByte( // 往设备的映射寄存器空间指定端口写入单节字数据
HANDLE hDevice, // 设备对象
ULONG LinearAddr, // 指定映射寄存器的线性基地址
ULONG OffsetBytes, // 相对于基地址的偏移位置
BYTE Value); // 往指定地址写入单字节数据(其地址由线性基地址和偏移位置决定)
DEVAPI BOOL FAR PASCAL PCI8613_WriteRegisterWord( // 写双字节数据(其余同上)
HANDLE hDevice,
ULONG LinearAddr,
ULONG OffsetBytes,
WORD Value);
DEVAPI BOOL FAR PASCAL PCI8613_WriteRegisterULong( // 写四节字数据(其余同上)
HANDLE hDevice,
ULONG LinearAddr,
ULONG OffsetBytes,
ULONG Value);
DEVAPI BYTE FAR PASCAL PCI8613_ReadRegisterByte( // 读入单字节数据(其余同上)
HANDLE hDevice,
ULONG LinearAddr,
ULONG OffsetBytes);
DEVAPI WORD FAR PASCAL PCI8613_ReadRegisterWord( // 读入双字节数据(其余同上)
HANDLE hDevice,
ULONG LinearAddr,
ULONG OffsetBytes);
DEVAPI ULONG FAR PASCAL PCI8613_ReadRegisterULong( // 读入四字节数据(其余同上)
HANDLE hDevice,
ULONG LinearAddr,
ULONG OffsetBytes);
//################# I/O端口直接操作及读写函数 ########################
// 适用于用户对本设备更直接、更特殊、更低层、更复杂的控制。比如根据特殊的
// 控制对象需要特殊的控制流程和控制效率时,则用户可以使用这些接口予以实现。
// 但这些函数主要适用于传统设备,如ISA总线、并口、串口等设备,不能用于本PCI设备
DEVAPI BOOL FAR PASCAL PCI8613_WritePortByte(HANDLE hDevice, UINT nPort, BYTE Value);
DEVAPI BOOL FAR PASCAL PCI8613_WritePortWord(HANDLE hDevice, UINT nPort, WORD Value);
DEVAPI BOOL FAR PASCAL PCI8613_WritePortULong(HANDLE hDevice, UINT nPort, ULONG Value);
DEVAPI BYTE FAR PASCAL PCI8613_ReadPortByte(HANDLE hDevice, UINT nPort);
DEVAPI WORD FAR PASCAL PCI8613_ReadPortWord(HANDLE hDevice, UINT nPort);
DEVAPI ULONG FAR PASCAL PCI8613_ReadPortULong(HANDLE hDevice, UINT nPort);
//######################### 文件操作函数 ##############################
DEVAPI HANDLE FAR PASCAL PCI8613_CreateFileObject( // 初始文件系统
HANDLE hDevice, // 设备对象
LPCTSTR NewFileName, // 新文件名
int Mode); // 文件操作方式
DEVAPI BOOL FAR PASCAL PCI8613_WriteFile( // 保存用户空间中数据
HANDLE hFileObject, // 设备对象
PVOID pDataBuffer, // 用户数据空间地址
ULONG nWriteSizeBytes); // 缓冲区大小(字节)
DEVAPI BOOL FAR PASCAL PCI8613_ReadFile( // 读数据
HANDLE hFileObject, // 设备对象
PVOID pDataBuffer, // 接受文件数据的用户内存缓冲区
ULONG OffsetBytes, // 从文件前端开始的偏移位置
ULONG nReadSizeBytes); // 从偏移位置开始读的字节数
DEVAPI BOOL FAR PASCAL PCI8613_SetFileOffset( // 设置文件偏移指针
HANDLE hFileObject, // 文件对象
ULONG nOffsetBytes); // 文件偏移位置(以字为单位)
DEVAPI ULONG FAR PASCAL PCI8613_GetFileLength(HANDLE hFileObject); // 取得指定文件长度(字节)
DEVAPI BOOL FAR PASCAL PCI8613_ReleaseFile(HANDLE hFileObject);
DEVAPI ULONGLONG FAR PASCAL PCI8613_GetDiskFreeBytes( // 获得指定盘符的磁盘空间(注意使用64位变量)
LPCTSTR DiskName); // 盘符名,如C盘为"C:\\", D盘为"D:\\"
//########################### 线程操作函数 ######################################
DEVAPI HANDLE FAR PASCAL PCI8613_CreateSystemEvent(void); // 创建内核事件对象,供InitDeviceInt和VB子线程等函数使用
DEVAPI BOOL FAR PASCAL PCI8613_ReleaseSystemEvent(HANDLE hEvent); // 释放内核事件对象
DEVAPI DWORD FAR PASCAL PCI8613_GetLastErrorEx( // 从错误信息库中获得指定函数的最后一次错误信息
LPCTSTR strFuncName, // 出错的函数名,注意大小写
LPTSTR strErrorMsg); // 返回的错误信息
DEVAPI BOOL FAR PASCAL PCI8613_RemoveLastErrorEx( // 从错误信息库中移除指定函数的最后一次错误信息
LPCTSTR strFuncName); // 出错的函数名,注意大小写
#ifdef __cplusplus
}
#endif
// 自动包含驱动函数导入库
#ifndef _PCI8613_DRIVER_
#pragma comment(lib, "PCI8613.lib")
#pragma message("======== Welcome to use our art company's products!")
#pragma message("======== Automatically linking with PCI8613.dll...")
#pragma message("======== Successfully linked with PCI8613.dll")
#endif
#endif // _PCI8613_DEVICE_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -