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

📄 pci2006.h

📁 AD 数据采集卡基本的采集界面
💻 H
📖 第 1 页 / 共 2 页
字号:
    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 + -