UsbControl动态库使用说明



《UsbControl动态库使用说明》由会员分享,可在线阅读,更多相关《UsbControl动态库使用说明(16页珍藏版)》请在装配图网上搜索。
1、UsbControlDLL动态库使用阐明 UsbControlDLL动态库不仅提供了在 PC 机上访问这些端点的 API 低档函数(必须在安装设备控制器的PC机驱动程序后才可以使用, 通过本动态库提供的 API 函数,虽然您没有完全理解复杂的 USB 合同也可以迅速完毕USB的应用软件开发)。还提供了直接控制五路步进或者伺服马达运动的高档函数,通过这些提供的函数,可以协助您迅速地开发出如雕刻机\激光切割机\点胶机等运动控制类型的软件。 一、库函数阐明 UsbControlDLL动态库一共有3个文献,涉及UsbControlDLL.h、UsbControlDLL.lib、UsbContr
2、olDLL.dll。动态库是Microsoft Windows的接口原则,流行的软件开发工具VC. 1. 读IN端点缓冲区函数 读IN端点FIFO 函数名称 Usb_ReadData 函数原型 int __stdcall Usb _ReadData (int siPipeNum, unsigned char *pucRcvBuf, int siReadLen, int siWaitTime) 功能描述 从USB设备读取数据 函数参数 siPipeNum:待操作管道号,可以是0、2、4、6、8、10、12 pucRcvBuf:接受数据缓冲区指针
3、 siReadLen: 待读取字节数 siWaitTime:等待超时时间,单位ms,为-1表达始终等待 函数返回值 操作成功:成功读取的字节数;操作失败:-1 2. 写OUT端点缓冲区函数 写OUT端点FIFO 函数名称 Usb _WriteData 函数原型 int __stdcall Usb _WriteData(int siPipeNum, unsigned char *pucSendBuf, int siSendLen, int siWaitTime) 功能描述 向USB设备写入数据 函数参数 siPipeNum: 待操作管道号,可
4、以是1、3、5、7、9、11、13 pucSendBuf:发送数据缓冲区指针 siSendLen: 待发送字节数 siWaitTime: 等待超时时间,单位ms,为-1表达始终等待 函数返回值 操作成功:成功发送的字节数;操作失败:-1 为配合下位机固件程序和以便顾客使用,本动态库对上面的读写端点缓冲区函数做了进一步封装,提供了逻辑端点1(管道0、1)和逻辑端点2(管道2、3)的读写函数。 3. 读逻辑端点1 读逻辑端点1 函数名称 Usb _ReadPort1 函数原型 int __stdcall Usb _ReadPort1 (unsigned
5、char *pucRcvBuf, int siReadLen, int siWaitTime) 功能描述 从USB设备的逻辑端点1读取数据 函数参数 pucRcvBuf:接受数据缓冲区指针 siReadLen: 待读取字节数 siWaitTime:等待超时时间,单位ms,为-1表达始终等待 函数返回值 操作成功:成功读取的字节数;操作失败:-1 4. 读逻辑端点2 读逻辑端点2 函数名称 Usb _ReadPort2 函数原型 int __stdcall Usb _ReadPort2 (unsigned char *pucRcvBuf
6、, int siReadLen, int siWaitTime) 功能描述 从USB设备的逻辑端点2读取数据 函数参数 pucRcvBuf:接受数据缓冲区指针 siReadLen: 待读取字节数 siWaitTime:等待超时时间,单位ms,为-1表达始终等待 函数返回值 操作成功:成功读取的字节数;操作失败:-1 5. 写逻辑端点1 写逻辑端点1 函数名称 Usb _WritePort1 函数原型 int __stdcall Usb _WritePort1 (unsigned char *pucSendBuf, int siS
7、endLen, int siWaitTime) 功能描述 向USB设备的逻辑端点1写入数据 函数参数 pucSendBuf:发送数据缓冲区指针 siSendLen: 待发送字节数 siWaitTime:等待超时时间,单位ms,为-1表达始终等待 函数返回值 操作成功:成功发送的字节数;操作失败:-1 6. 写逻辑端点2 写逻辑端点2 函数名称 Usb _WritePort2 函数原型 int __stdcall Usb _WritePort2 (unsigned char *pucSendBuf, int siSendLen, in
8、t siWaitTime) 功能描述 向USB设备的逻辑端点2写入数据 函数参数 pucSendBuf:发送数据缓冲区指针 siSendLen: 待发送字节数 siWaitTime:等待超时时间,单位ms,为-1表达始终等待 函数返回值 操作成功:成功发送的字节数;操作失败:-1 二、库函数应用举例 1. 对IN端点进行读操作 unsigned char RcvBuf [16]; // 定义16字节接受数据缓冲区 Usb _ReadData (0,RcvBuf,16,1000); // 从逻辑端点1的IN端点读取16字节数据 // 等待超时
9、时间为 1000 毫秒 2. 对OUT端点进行写操作 unsigned char SendBuf [5]={0,0,0,0,0}; // 定义5字节发送数据缓冲区 Usb _WriteData (1,SendBuf,5,1000); // 向逻辑端点1的OUT端点 写入5 个字节的数据 // 等待超时时间为 1000 毫秒 新增函数 /********************************************************************************************************* ** Functio
10、n name: Usb_SendPul ** Descriptions: 向USB设备的逻辑端点2写数据 ** input parameters: pucSendBuf: 发送数据缓冲区指针 **ﻩﻩ ﻩ siSendLen: 发送数据字节数 ** ﻩﻩﻩsiWaitTime: 等待超时时间,单位ms,为-1表达始终等待ﻩﻩﻩ ** output parameters: 无ﻩﻩﻩﻩ ** Returned value: 写入成功为发送的字节数,否则为-1 ******************************************
11、****************** 硬件控制数据构造 extern "C" __declspec(dllexport)typedef struct Parameter ﻩ{ ﻩﻩﻩCSize DriverSize_A;//左边切割面积大小 ﻩ ﻩCSize DriverSize_B;//右边切割面积大小 ﻩ ﻩdouble m_SpeedXY;//X轴马达速度 ﻩ double m_SpeedY;//Y轴马达速度 ﻩ ﻩdouble m_LengthX;//X轴每周长度 ﻩ double m_LengthY;//Y轴每周长度 ﻩ ﻩdouble m_Reser
12、ve1;////激光脉冲宽度 ﻩﻩﻩdouble m_Reserve2;////激光脉冲频率 ﻩﻩﻩdouble m_Reserve3;////开光延时 ﻩﻩint m_ModPulNumX;//马达每周脉冲数 int m_ModPulNumY;//马达每周脉冲数 ﻩint m_StartDelayTime;//开始延时时间 ﻩ ﻩint m_EndDelayTime;//结束延时时间 ﻩint m_DelayTime;//中间延时 int m_Acceleration;//加速度 ﻩ int m_Reserve4;////转折速度
13、 ﻩ int m_Reserve5;////关光延时 ﻩ int m_Reserve6;//开始点X轴坐标 ﻩﻩ int m_Reserve7;//开始点Y轴坐标 int m_Reserve8;////二工位距离 ﻩﻩ int m_Reserve9;//保存 ﻩ ﻩﻩﻩchar m_Work_I;////I工位状态,0:不切;1:切割 ﻩﻩﻩchar m_Flase;//激光模式,0:PWM;1:开关; ﻩ ﻩchar m_Work_II;//II工位状态,0:不切;1:切割 ﻩﻩ char m_Temp; ﻩﻩ}; /**
14、******************************************************************************************************* ** Function name:ﻩﻩUsb_OpenLaser ** Descriptions: 手动控制激光开关(数字量) ** input parameters: Pulnum:值0,为开激光,1,为关激光, ﻩ ﻩﻩ Port_Appe ** output parameters:ﻩ无 ﻩ **************************
15、*******************************************************************************/ extern "C" __declspec(dllexport)BOOL PASCAL EXPORT Usb_OpenLaser(int Pulnum); /********************************************************************************************************* ** Function name:ﻩﻩSet_Port_E
16、lectric ** Descriptions: 写控制板端口数据 ** input parameters: Port_Number:端标语,0,为红灯P0.11;1,为黄灯P0.12,2,绿灯P0.19,3,气缸IP3.24;4,气缸IIP2.26 ,5,激光P0.06;6.PWM_X_DIR P0.07;7.PWM_X_PUL P0.08;8.PWM_Y_DIR P0.10;9.PWM_Y_PUL P0.09 ﻩ ﻩﻩﻩ10.PWM_Z_DIR P3.28;11.PWM_Z_PUL P3.29;12.PWM_Q_
17、DIR P3.30;13.PWM_Q_PUL P3.31;14.P3.27 ﻩ ﻩ Port_Appe ** output parameters: 无ﻩﻩ ﻩﻩ *********************************************************************************************************/ extern "C" __declspec(dllexport)void PASCAL EXPORT Set_Port_Electric(unsigned char Port_Number,unsigned c
18、har Port_Appe); /********************************************************************************************************* ** Function name:ﻩ InitUsbCard ** Descriptions: 初始化板卡 ** input parameters: 无: ** output parameters: 无 ﻩ *****************************************************
19、****************************************************/ extern "C" __declspec(dllexport)BOOL PASCAL EXPORT InitUsbCard(); /********************************************************************************************************* ** Function name: Usb_OutPort ** Descriptions: 写控制板端口数据 ** i
20、nput parameters: PortNum: ** output parameters:ﻩ无ﻩ ﻩﻩﻩ *********************************************************************************************************/ extern "C" __declspec(dllexport)int PASCAL EXPORT Usb_OutPort(int PortNum); /*****************************************************
21、**************************************************** ** Function name: ﻩUsb_InPort ** Descriptions: //参数:0-11保存,12:X轴限位P0.20,13:X1 P0.21,14:Y P0.22;15:Y1 P0.23;16:Z P0.24; 17:Z1 P0.25;18:Q P1.16;19:Q1 P1.17 ** input parameters: PortNum: ** output parameters: 无ﻩ
22、ﻩﻩ *********************************************************************************************************/ //extern "C" __declspec(dllexport)int PASCAL EXPORT Usb_InPort(int PortNum); /*********************************************************************************************************
23、** Function name:ﻩ Usb_SetParamter ** Descriptions: 向USB设备写雕刻参数数据 ** input parameters: struct Parameter: 参数构造的指针 ** output parameters: 无 ﻩ ﻩ *********************************************************************************************************/ extern "C" __declspec(dllexport)voi
24、d PASCAL EXPORT Usb_SetParamter(struct Parameter* Pr); /********************************************************************************************************* ** Function name: ﻩUsb_LoadVectDataA ** Descriptions: 向USB设备写雕刻曲线数据 ** input parameters: m_Point:ﻩ曲线点数据 **ﻩ ﻩm_Byte: 曲线点
25、类型 **ﻩﻩ ﻩﻩData_Count:ﻩ曲线总数 ** ﻩ ﻩﻩm_Data:数据位置0为左边,1为右边 ** output parameters: 返回正常接受的数据总数 ﻩ,否则为-1ﻩ ** Returned value: 读取成功为读取到的字节数,否则为-1 *********************************************************************************************************/ extern "C" __declspec(dllexport)int PASCA
26、L EXPORT Usb_OutVectData(CPoint* m_Point,BYTE* m_Byte,int Data_Count,int m_Data); /********************************************************************************************************* ** Function name: Usb_ReadData ** Descriptions: 从USB设备读取数据 ** input parameters: siPipeNum:ﻩ所要操作的
27、管道号,可以是0,2,4,6,8,10,12 **ﻩ pucRcvBuf:ﻩ接受数据缓冲区指针 **ﻩ ﻩ siReadLen: 接受数据字节数 **ﻩﻩﻩﻩ siWaitTime:ﻩ等待超时时间,单位ms,为-1表达始终等待ﻩﻩﻩ ** output parameters: 无ﻩ ﻩ ** Returned value: 读取成功为读取到的字节数,否则为-1 *************************************************************************************************
28、********/ extern "C" __declspec(dllexport)int Usb_ReadData(int siPipeNum, ﻩ ﻩﻩ ﻩ unsigned char *pucRcvBuf, ﻩﻩﻩ ﻩ int siReadLen, ﻩﻩﻩ int siWaitTime); /********************************************************************************************************* ** Function name: Usb_W
29、riteData ** Descriptions: 向USB设备写入数据 ** input parameters: siPipeNum:ﻩ所要操作的管道号,可以是1,3,5,7,9,11,13 ** ﻩ pucSendBuf: 发送数据缓冲区指针 ** ﻩ ﻩ siSendLen: 发送数据字节数 **ﻩﻩ ﻩsiWaitTime:ﻩ等待超时时间,单位ms,为-1表达始终等待ﻩﻩﻩ ** output parameters:ﻩ无ﻩﻩ ﻩﻩﻩ ** Returned value: 发送成功为发送的字节数,否则为-1 ***********
30、**********************************************************************************************/ extern "C" __declspec(dllexport) int Usb_WriteData(int siPipeNum, ﻩ ﻩﻩﻩunsigned char *pucSendBuf, ﻩﻩ ﻩ int siSendLen, ﻩﻩﻩﻩ ﻩ int siWaitTime); /*************************************************
31、******************************************************** ** Function name:ﻩﻩUsb_ReadPort1 ** Descriptions: 从USB设备的逻辑端点1读数据 ** input parameters: pucRcvBuf: 接受数据缓冲区指针 ** ﻩﻩ ﻩﻩsiReadLen: 接受数据字节数 **ﻩ ﻩ ﻩsiWaitTime: 等待超时时间,单位ms,为-1表达始终等待ﻩ ﻩ ** output parameters: 无 ﻩ ﻩ ** Returned valu
32、e: 读取成功为读取到的字节数,否则为-1 *********************************************************************************************************/ extern "C" __declspec(dllexport)int Usb_Read_Port1(unsigned char *pucRcvBuf, ﻩ ﻩ ﻩﻩint siReadLen, ﻩﻩﻩ ﻩﻩﻩint waittime=-1); /********************************
33、************************************************************************* ** Function name: Usb_ReadPort2 ** Descriptions: 从USB设备的逻辑端点2读数据 ** input parameters: pucRcvBuf: 接受数据缓冲区指针 **ﻩﻩ ﻩ siReadLen:ﻩ接受数据字节数 **ﻩﻩ ﻩﻩ siWaitTime: 等待超时时间,单位ms,为-1表达始终等待ﻩ ﻩ ** output parameters: 无ﻩ ﻩ ﻩ
34、 ** Returned value: 读取成功为读取到的字节数,否则为-1 *********************************************************************************************************/ extern "C" __declspec(dllexport)int Usb_ReadPort2(unsigned char *pucRcvBuf, ﻩﻩﻩﻩﻩﻩ int siReadLen, ﻩﻩ ﻩ ﻩﻩint siWaitTime=-1); /**************
35、******************************************************************************************* ** Function name:ﻩ Usb_WritePort1 ** Descriptions: 向USB设备的逻辑端点1写数据 ** input parameters: pucSendBuf: 发送数据缓冲区指针 **ﻩ ﻩﻩﻩ siSendLen:ﻩ发送数据字节数 **ﻩﻩ siWaitTime:ﻩ等待超时时间,单位ms,为-1表达始终等待ﻩﻩﻩ ** output
36、parameters: 无 ﻩ ﻩ ** Returned value: 写入成功为发送的字节数,否则为-1 *********************************************************************************************************/ extern "C" __declspec(dllexport)int Usb_WritePort1(unsigned char *pucSendBuf, ﻩﻩﻩ ﻩ ﻩ int siSendLen, ﻩ ﻩ ﻩ ﻩ int siWaitTime=
37、-1); /********************************************************************************************************* ** Function name: ﻩUsb_WritePort2 ** Descriptions: 向USB设备的逻辑端点2写数据 ** input parameters: pucSendBuf:ﻩ发送数据缓冲区指针 **ﻩ ﻩ ﻩ siSendLen:ﻩ发送数据字节数 ** ﻩ ﻩ siWaitTime:ﻩ等待超时时间,单位ms,为
38、-1表达始终等待ﻩ ﻩ ** output parameters: 无 ﻩ ﻩ ** Returned value: 写入成功为发送的字节数,否则为-1 *********************************************************************************************************/ extern "C" __declspec(dllexport)int Usb_WritePort2(unsigned char *pucSendBuf, ﻩﻩ ﻩﻩﻩﻩ int siSendLen,
39、ﻩ ﻩ ﻩ int siWaitTime=-1); //马达旋转;参数1:旋转脉冲数,参数2:速度 extern "C" __declspec(dllexport)BOOL PASCAL EXPORT Sport_Motor(int Pulnum,int Speed); //旋转马达方向,参数:0:正,1负 extern "C" __declspec(dllexport)void PASCAL EXPORT Set_MotorDir(bool dir); //Y马达旋转;参数1:旋转脉冲数,参数2:速度 extern "C" __declspec(dllexport)BOOL
40、PASCAL EXPORT Sport_Motor_Y(int Pulnum,int Speed); //Y旋转马达方向,参数:0:正,1负 extern "C" __declspec(dllexport)void PASCAL EXPORT Set_MotorDir_Y(bool dir); //Z马达旋转;参数1:旋转脉冲数,参数2:速度 extern "C" __declspec(dllexport)BOOL PASCAL EXPORT Sport_Motor_Z(int Pulnum,int Speed); //Z旋转马达方向,参数:0:正,1负 extern "C" __
41、declspec(dllexport)void PASCAL EXPORT Set_MotorDir_Z(bool dir); //Q马达旋转;参数1:旋转脉冲数,参数2:速度 extern "C" __declspec(dllexport)BOOL PASCAL EXPORT Sport_Motor_Q(int Pulnum,int Speed); //Q旋转马达方向,参数:0:正,1负 extern "C" __declspec(dllexport)void PASCAL EXPORT Set_MotorDir_Q(bool dir); /********************
42、************************************************************************************* ** Function name: ﻩUsb_InPort ** Descriptions: //参数:0-11保存,12:X轴限位P0.20,13:X1 P0.21,14:Y P0.22;15:Y1 P0.23;16:Z P0.24; 17:Z1 P0.25;18:Q P1.16;19:Q1 P1.17 ** input parameters:
43、PortNum: ** output parameters: 无 ﻩﻩﻩ ﻩ *********************************************************************************************************/ extern "C" __declspec(dllexport)int PASCAL EXPORT Read_PortIo(int m_Port); //带限位复位至原点,,入口参数1:0:X轴;1:Y轴;2:Z轴;3:Q轴.入口参数2:速度;;;出口参数:为1 对的,否则错误 extern "C
44、" __declspec(dllexport)bool PASCAL EXPORT Reset_Motor(int m_Stalk,int Speed); //无限位复位至原点,入口参数1:0:X轴;1:Y轴;2:Z轴;3:Q轴.入口参数2:速度;;;出口参数:为1 对的,否则错误 extern "C" __declspec(dllexport)bool PASCAL EXPORT Reset_Motor_Center(int m_Stalk,int Speed); ///读FLASH数据 extern "C" __declspec(dllexport)bool PASCAL EXPORT Read_Data_Flash(); ///保存数据到FLASH extern "C" __declspec(dllexport)bool PASCAL EXPORT Save_Data_Flash(); ////入口参数1:功率数据0-255;1:通道:14;2:数据个数;;;出口参数:为1 对的,否则错误 extern "C" __declspec(dllexport)bool PASCAL EXPORT Powe_Data(int m_Data,int m_ch,int m_Length);
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。