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

📄 pci8613.h

📁 板卡的DA转换C语言程序。适合于阿尔泰的PCI卡。用板卡的参考
💻 H
📖 第 1 页 / 共 2 页
字号:
								
    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 + -