📄 usb2080.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 + -