📄 pci2006.h
字号:
DEVAPI BOOL FAR PASCAL PCI2006_SetDevFreqencyAD( // 在AD转换过程中,动态改变采样频率
HANDLE hDevice, // 设备对象句柄
DWORD nADFrequency); // AD采样频率(Hz)
DEVAPI ULONG FAR PASCAL PCI2006_ReadDeviceProAD_NotEmpty( // 用非空标志读取设备上的AD数据
HANDLE hDevice, // 设备句柄
PSHORT pADBuffer, // 将用于接受数据的用户缓冲区
ULONG nReadSizeWords, // 读入的数据长度
BOOL bCheckOverflow = FALSE);// 是否检测FIFO溢出状态(默认为不检测)
DEVAPI BOOL FAR PASCAL PCI2006_GetDevStatusProAD( // 在AD采样过程中取得FIFO的状态,通常用于半满方式读取
HANDLE hDevice, // 设备句柄
PBOOL bNotEmpty, // 取得非空状态,TRUE表示已非空有效,FALSE表示非空无效
PBOOL bHalf, // 取得半满状态,TRUE表示已半满有效,FALSE表示未半满
PBOOL bOverflow); // 取得溢出状态,TRUE表示已溢出,FALSE表示未溢出
///////////////////////////////////////////////////////////////////////
DEVAPI BOOL FAR PASCAL PCI2006_ReadDeviceProAD_Half( // FIFO半满读AD数据
HANDLE hDevice, // 设备句柄
PSHORT pADBuffer, // 将用于接受数据的用户缓冲区(该区必须开辟65536个字的空间)
ULONG nReadSizeWords);
DEVAPI BOOL FAR PASCAL PCI2006_StopDeviceProAD( // 在启动设备之后,暂停设备
HANDLE hDevice); // 设备对象句柄
DEVAPI BOOL FAR PASCAL PCI2006_ReleaseDeviceProAD( // 关闭AD设备,禁止传输,且释放资源
HANDLE hDevice); // 设备句柄
//##################### AD数据读取函数(中断方式)(上层用户函数) ###########################
DEVAPI BOOL FAR PASCAL PCI2006_InitDeviceIntAD(HANDLE hDevice, HANDLE hEvent, ULONG nFifoHalfLength, PPCI2006_PARA_AD pADPara);
DEVAPI BOOL FAR PASCAL PCI2006_StartDeviceIntAD( // 在初始化之后,启动设备
HANDLE hDevice); // 设备对象句柄
DEVAPI DWORD FAR PASCAL PCI2006_ReadDeviceIntAD(HANDLE hDevice,PSHORT pADBuffer,ULONG nReadSizeWords);
DEVAPI BOOL FAR PASCAL PCI2006_StopDeviceIntAD( // 在开始AD采集后,停止设备
HANDLE hDevice); // 设备对象句柄
DEVAPI BOOL FAR PASCAL PCI2006_ReleaseDeviceIntAD(HANDLE hDevice);
//################# AD的硬件参数操作函数 ########################
DEVAPI BOOL FAR PASCAL PCI2006_SaveParaAD(HANDLE hDevice, PPCI2006_PARA_AD pADPara);
DEVAPI BOOL FAR PASCAL PCI2006_LoadParaAD(HANDLE hDevice, PPCI2006_PARA_AD pADPara);
//####################### DA数据输出函数 #################################
// 适于大多数普通用户,这些接口最简单、最快捷、最可靠,让用户不必知道设备
// 低层复杂的硬件控制协议和繁多的软件控制编程,仅用下面一个函数便能轻
// 松实现高速、连续的DA数据输出
DEVAPI BOOL FAR PASCAL PCI2006_InitDevProDA(HANDLE hDevice, // 设备对象句柄
int ResetMode, // DA的复位方式
int nDAChannel); // DA通道(0-1)
DEVAPI BOOL FAR PASCAL PCI2006_WriteDevProDA(HANDLE hDevice, // 设备对象句柄
WORD DAData, // 准备输出的DA数据LSB原码
int nDAChannel); // DA通道(0-1)
//####################### 数字I/O输入输出函数 #################################
// 用户可以使用WriteRegisterULong和ReadRegisterULong等函数直接控制寄存器进行I/O
// 输入输出,但使用下面两个函数更省事,它不需要您关心寄存器分配和位操作等,而只
// 需象VB等语言的属性操作那么简单地实现各开关量通道的控制。
DEVAPI BOOL FAR PASCAL PCI2006_SetDeviceDO( // 输出开关量状态
HANDLE hDevice, // 设备句柄
PPCI2006_PARA_DO pDOPara); // 开关状态
DEVAPI BOOL FAR PASCAL PCI2006_GetDeviceDI( // 取得开关量状态
HANDLE hDevice, // 设备句柄
PPCI2006_PARA_DI pDIPara); // 开关状态
//################# 内存映射寄存器直接操作及读写函数 ########################
// 适用于用户对本设备更直接、更特殊、更低层、更复杂的控制。比如根据特殊的
// 控制对象需要特殊的控制流程和控制效率时,则用户可以使用这些接口予以实现。
DEVAPI BOOL FAR PASCAL PCI2006_GetDeviceAddr( // 取得指定的指定设备ID号的映射寄存器的线性基地址,返回设备总数
HANDLE hDevice, // 设备对象句柄
PULONG LinearAddr, // 返回指定映射寄存器的线性地址
PULONG PhysAddr, // 返回指定映射寄存器的物理地址
int RegisterID=0); // 设备映射寄存器的ID号(0-5)
DEVAPI inline BOOL FAR PASCAL PCI2006_WriteRegisterByte( // 往设备的映射寄存器空间指定端口写入单节字数据
HANDLE hDevice, // 设备对象
ULONG LinearAddr, // 指定映射寄存器的线性基地址
ULONG OffsetBytes, // 相对于基地址的偏移位置
BYTE Value); // 往指定地址写入单字节数据(其地址由线性基地址和偏移位置决定)
DEVAPI inline BOOL FAR PASCAL PCI2006_WriteRegisterWord( // 写双字节数据(其余同上)
HANDLE hDevice,
ULONG LinearAddr,
ULONG OffsetBytes,
WORD Value);
DEVAPI inline BOOL FAR PASCAL PCI2006_WriteRegisterULong( // 写四节字数据(其余同上)
HANDLE hDevice,
ULONG LinearAddr,
ULONG OffsetBytes,
ULONG Value);
DEVAPI inline BYTE FAR PASCAL PCI2006_ReadRegisterByte( // 读入单字节数据(其余同上)
HANDLE hDevice,
ULONG LinearAddr,
ULONG OffsetBytes);
DEVAPI inline WORD FAR PASCAL PCI2006_ReadRegisterWord( // 读入双字节数据(其余同上)
HANDLE hDevice,
ULONG LinearAddr,
ULONG OffsetBytes);
DEVAPI inline ULONG FAR PASCAL PCI2006_ReadRegisterULong( // 读入四字节数据(其余同上)
HANDLE hDevice,
ULONG LinearAddr,
ULONG OffsetBytes);
//################# I/O端口直接操作及读写函数 ########################
// 适用于用户对本设备更直接、更特殊、更低层、更复杂的控制。比如根据特殊的
// 控制对象需要特殊的控制流程和控制效率时,则用户可以使用这些接口予以实现。
// 但这些函数主要适用于传统设备,如ISA总线、并口、串口等设备,不能用于本PCI设备
DEVAPI inline BOOL FAR PASCAL PCI2006_WritePortByte(HANDLE hDevice, UINT nPort, BYTE Value);
DEVAPI inline BOOL FAR PASCAL PCI2006_WritePortWord(HANDLE hDevice, UINT nPort, WORD Value);
DEVAPI inline BOOL FAR PASCAL PCI2006_WritePortULong(HANDLE hDevice, UINT nPort, ULONG Value);
DEVAPI inline BYTE FAR PASCAL PCI2006_ReadPortByte(HANDLE hDevice, UINT nPort);
DEVAPI inline WORD FAR PASCAL PCI2006_ReadPortWord(HANDLE hDevice, UINT nPort);
DEVAPI inline ULONG FAR PASCAL PCI2006_ReadPortULong(HANDLE hDevice, UINT nPort);
//######################### 文件操作函数 ##############################
DEVAPI HANDLE FAR PASCAL PCI2006_CreateFileObject( // 初始文件系统
HANDLE hDevice, // 设备对象
LPCTSTR NewFileName, // 新文件名
int Mode); // 文件操作方式
DEVAPI BOOL FAR PASCAL PCI2006_WriteFile( // 保存用户空间中数据
HANDLE hFileObject, // 设备对象
PVOID pDataBuffer, // 用户数据空间地址
ULONG nWriteSizeBytes); // 缓冲区大小(字节)
DEVAPI BOOL FAR PASCAL PCI2006_ReadFile( // 读数据
HANDLE hFileObject, // 设备对象
PVOID pDataBuffer, // 接受文件数据的用户内存缓冲区
ULONG OffsetBytes, // 从文件前端开始的偏移位置
ULONG nReadSizeBytes); // 从偏移位置开始读的字节数
DEVAPI BOOL FAR PASCAL PCI2006_SetFileOffset( // 设置文件偏移指针
HANDLE hFileObject, // 文件对象
ULONG nOffsetBytes); // 文件偏移位置(以字为单位)
DEVAPI ULONG FAR PASCAL PCI2006_GetFileLength(HANDLE hFileObject); // 取得指定文件长度(字节)
DEVAPI BOOL FAR PASCAL PCI2006_ReleaseFile(HANDLE hFileObject);
DEVAPI ULONGLONG FAR PASCAL PCI2006_GetDiskFreeBytes( // 获得指定盘符的磁盘空间(注意使用64位变量)
LPCTSTR DiskName); // 盘符名,如C盘为"C:\\", D盘为"D:\\"
//########################### 线程操作函数 ######################################
DEVAPI HANDLE FAR PASCAL PCI2006_CreateSystemEvent(void); // 创建内核事件对象,供InitDeviceInt和VB子线程等函数使用
DEVAPI BOOL FAR PASCAL PCI2006_ReleaseSystemEvent(HANDLE hEvent); // 释放内核事件对象
DEVAPI BOOL FAR PASCAL PCI2006_CreateVBThread(HANDLE *hThread, LPTHREAD_START_ROUTINE lpStartThread); // 创建VB子线程
DEVAPI BOOL FAR PASCAL PCI2006_TerminateVBThread(HANDLE hThreadHandle); // 释放VB子线程
DEVAPI BOOL FAR PASCAL PCI2006_DelayTime(HANDLE hDevice, LONG nTime); // 纳秒延时操作,不消耗CPU时间(在Win9x下以毫秒为单位)
#ifdef __cplusplus
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -