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

📄 usb2080.h

📁 这个是AD采集的程序
💻 H
字号:
#include<windows.h>
//***********************************************************
// 用于AD采集的参数结构
#ifndef _USB2080_PARA_AD
typedef struct _USB2080_PARA_AD      // 板卡各参数值
{
	LONG ADMode;			// AD采集方式(分组或分频)
	LONG ReadSizeWords;     // 读取长度
	LONG FirstChannel;      // 首通道
	LONG LastChannel;		// 末通道
	LONG Frequency;		    // AD采集频率(Hz)
	LONG GroupInterval;	    // 分组采样时,相邻组的时间间隔(uS) 
	LONG Gains;             // 采集增益
	LONG TriggerMode;	    // 触发模式(软件触发和硬件后触发)
	LONG TriggerType;		// 触发类型(电平触发/边沿触发)
	LONG TriggerDir;	    // 触发方向(正向/负向触发选择)
} USB2080_PARA_AD, *PUSB2080_PARA_AD;
#endif

//***********************************************************
// AD参数(USB2080_PARA_AD)中的ADMode使用的采集方式选项
const long USB2080_ADMODE_SEQUENCE	= 0x00;	// 连续采集
const long USB2080_ADMODE_GROUP		= 0x01;	// 分组采集

//***********************************************************
// AD参数USB2080_PARA_AD中的Gains使用的硬件增益选项
const long USB2080_GAINS_1MULT		= 0x00; // 1倍增益(使用PGA202或PGA203放大器)
const long USB2080_GAINS_10MULT		= 0x01; // 10倍增益(使用PGA202放大器)
const long USB2080_GAINS_100MULT	= 0x02; // 100倍增益(使用PGA202放大器)
const long USB2080_GAINS_1000MULT	= 0x03; // 1000倍增益(使用PGA202放大器)
const long USB2080_GAINS_2MULT		= 0x01; // 2倍增益(使用PGA203放大器)
const long USB2080_GAINS_4MULT		= 0x02; // 4倍增益(使用PGA203放大器)
const long USB2080_GAINS_8MULT		= 0x03; // 8倍增益(使用PGA203放大器)

//***********************************************************
// AD硬件参数USB2080_PARA_AD中的TriggerMode成员变量所使用AD启动触发模式选项
const long USB2080_TRIGMODE_SOFT  = 0x00;  // 软件触发
const long USB2080_TRIGMODE_POST  = 0x01;  // 硬件后触发

// AD硬件参数USB2080_PARA_AD中的TriggerType成员变量所使用的电平和边沿触发选项
const long USB2080_TRIGTYPE_EDGE  = 0x00; // 边沿触发
const long USB2080_TRIGTYPE_PULSE = 0x01; // 脉冲触发(电平)

//***********************************************************
// AD硬件参数USB2080_PARA_AD中的TriggerDir成员变量所使用的触发方向选项
const long USB2080_TRIGDIR_NEGATIVE		= 0x00; // 负向触发(低电平/下降沿触发)
const long USB2080_TRIGDIR_POSITIVE		= 0x01; // 正向触发(高电平/上升沿触发)
const long USB2080_TRIGDIR_POSIT_NEGAT	= 0x02; // 正负向触发(高/低电平或上升/下降沿触发)

//***********************************************************
// 用于开关量输出的参数结构
#ifndef _USB2080_PARA_DO
typedef struct _USB2080_PARA_DO      // 数字量输出参数
{
	BYTE DO0;       // 0通道
	BYTE DO1;       // 1通道
	BYTE DO2;       // 2通道
	BYTE DO3;       // 3通道
	BYTE DO4;       // 4通道
	BYTE DO5;       // 5通道
	BYTE DO6;       // 6通道
	BYTE DO7;       // 7通道
} USB2080_PARA_DO, *PUSB2080_PARA_DO;
#endif

//***********************************************************
// 用于开关量输入的参数结构
#ifndef _USB2080_PARA_DI
typedef struct _USB2080_PARA_DI      // 数字量输入参数
{
	BYTE DI0;       // 0通道
	BYTE DI1;       // 1通道
	BYTE DI2;       // 2通道
	BYTE DI3;       // 3通道
	BYTE DI4;       // 4通道
	BYTE DI5;       // 5通道
	BYTE DI6;       // 6通道
	BYTE DI7;       // 7通道
} USB2080_PARA_DI, *PUSB2080_PARA_DI;
#endif

//***********************************************************
// CreateFileObject中的Mode参数使用的文件操作方式控制字(可通过或指令实现多种方式并操作)
const long USB2080_modeRead         = 0x0000; // 只读文件方式
const long USB2080_modeWrite        = 0x0001; // 只写文件方式
const long USB2080_modeReadWrite    = 0x0002; // 既读又写文件方式
const long USB2080_modeCreate       = 0x1000; // 如果文件不存可以创建该文件,如果存在,则重建此文件,并清0

//***********************************************************
// 驱动函数接口
#ifndef USB2080
#define DEVAPI __declspec(dllimport)
#else
#define DEVAPI __declspec(dllexport)
#endif

#ifdef __cplusplus
extern "C" {
#endif
	//######################## 常规通用函数 #################################
	// 适用于本设备的最基本操作
    HANDLE DEVAPI FAR PASCAL USB2080_CreateDevice(int DeviceLgcID = 0);
    HANDLE DEVAPI FAR PASCAL USB2080_CreateDeviceEx(int DevicePhysID = 0); // 创建设备对象(使用设备的物理ID, 由跳线器JP1实现)
	int DEVAPI FAR PASCAL USB2080_GetDeviceCount(HANDLE hDevice);
	int DEVAPI FAR PASCAL USB2080_GetDeviceCurrentID(HANDLE hDevice);
	BOOL DEVAPI FAR PASCAL USB2080_ListDeviceDlg(void); // 用对话框列表系统当中的所有USB2810设备
	BOOL DEVAPI FAR PASCAL USB2080_ResetDevice(HANDLE hDevice); // 复位整个USB设备
    BOOL DEVAPI FAR PASCAL USB2080_ReleaseDevice(HANDLE hDevice);    // 设备句柄

	//####################### AD数据读取函数 #################################
    BOOL DEVAPI FAR PASCAL USB2080_InitDeviceAD( // 初始化设备,当返回TRUE后,设备即刻开始传输.
										HANDLE hDevice,     // 设备句柄
										PUSB2080_PARA_AD pADPara);  // 硬件参数, 它仅在此函数中决定硬件状态
										
	BOOL DEVAPI FAR PASCAL USB2080_GetDeviceStatusAD( HANDLE hDevice,  // 设备句柄
									     PBOOL bTriggerFlag,    // 触发标志
										 PBOOL bConverting,  // 转换标志
										 PBOOL bOverflow);   // 溢出标志

    BOOL DEVAPI FAR PASCAL USB2080_ReadDeviceAD(  // 初始化设备后,即可用此函数读取设备上的AD数据
								HANDLE hDevice,     // 设备句柄
								PSHORT pADBuffer,   // 将用于接受数据的用户缓冲区
								LONG nReadSizeWords,	// 读取AD数据的长度
								PLONG nRetSizeWords);    // 返回实际读取的AD数据
    
	BOOL DEVAPI FAR PASCAL USB2080_ReleaseDeviceAD( HANDLE hDevice); // 停止AD采集,释放AD对象所占资源

   	//################# AD的硬件参数操作函数 ########################	
	BOOL DEVAPI FAR PASCAL USB2080_SaveParaAD(HANDLE hDevice, PUSB2080_PARA_AD pADPara);  
    BOOL DEVAPI FAR PASCAL USB2080_LoadParaAD(HANDLE hDevice, PUSB2080_PARA_AD pADPara);

	//####################### 数字I/O输入输出函数 #################################
    BOOL DEVAPI FAR PASCAL USB2080_SetDeviceDO(             // 输出开关量状态
										HANDLE hDevice,     // 设备句柄								        
										PUSB2080_PARA_DO pDOPara);  // 开关状态

	BOOL DEVAPI FAR PASCAL USB2080_GetDeviceDI(             // 取得开关量状态     
										HANDLE hDevice,     // 设备句柄								        
										PUSB2080_PARA_DI pDIPara);  // 开关状态

    
   	//########################## 文件操作函数 ####################################
    HANDLE DEVAPI FAR PASCAL USB2080_CreateFileObject(                    // 初始文件系统
										  HANDLE hDevice,       // 设备对象
										  LPCTSTR strFileName,  // 新文件名
										  int Mode);		    // 文件操作方式    

    BOOL DEVAPI FAR PASCAL USB2080_WriteFile(      // 保存用户空间中数据
										HANDLE hFileObject,  // 设备对象
										PVOID pDataBuffer, // 用户数据空间地址
										ULONG nWriteSizeBytes); // 缓冲区大小(字节)

    BOOL DEVAPI FAR PASCAL USB2080_ReadFile(  // 读数据
										  HANDLE hFileObject,     // 设备对象
										  PVOID pDataBuffer, // 接受文件数据的用户内存缓冲区
										  ULONG OffsetBytes,   // 从文件前端开始的偏移位置
										  ULONG nReadSizeBytes); // 从偏移位置开始读的字节数

	BOOL DEVAPI FAR PASCAL USB2080_SetFileOffset( // 设置文件偏移指针
										  HANDLE hFileObject,   // 文件对象
										  ULONG nOffsetBytes);  // 文件偏移位置(以字为单位)  

	ULONG DEVAPI FAR PASCAL USB2080_GetFileLength(HANDLE hFileObject); // 取得指定文件长度(字节)

    BOOL DEVAPI FAR PASCAL USB2080_ReleaseFile(HANDLE hFileObject);
    LONGLONG DEVAPI FAR PASCAL USB2080_GetDiskFreeBytes( // 获得指定盘符的磁盘空间(注意使用64位变量)
								      LPCTSTR strDiskName);  // 盘符名,如C盘为"C:\\", D盘为"D:\\"

	//############################ 线程操作函数 ################################
	HANDLE DEVAPI FAR PASCAL USB2080_CreateSystemEvent(void); 	// 创建内核系统事件对象
	BOOL DEVAPI FAR PASCAL USB2080_ReleaseSystemEvent(HANDLE hEvent); // 释放内核事件对象
	BOOL DEVAPI FAR PASCAL USB2080_CreateVBThread(HANDLE *hThread, LPTHREAD_START_ROUTINE StartThread);
	BOOL DEVAPI FAR PASCAL USB2080_TerminateVBThread(HANDLE hThreadHandle);

	//################# 其他附加函数 ########################
	BOOL DEVAPI FAR PASCAL USB2080_EnableShowMessage(BOOL bShowMessage=FALSE); // 是否让驱动程序自动弹出错误信息提示对话框

#ifdef __cplusplus
}
#endif


// 自动包含驱动函数导入库
#ifndef USB2080
	#pragma comment(lib, "USB2080.lib")
	#pragma message("======== Welcome to use our art company products!")
	#pragma message("======== Automatically linking with USB2080.lib...")
	#pragma message("======== Successfully linked with USB2080.dll")
#endif

⌨️ 快捷键说明

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