cyusb3014上位机同步传输与异步传输的实现
同步传输:
public void TransfersThread2() //专门用来传输线程0的 {int xferLen = XFERSIZE;FileStream fs = null;fs = new FileStream(".\\Save.Hex", FileMode.Open);bool bResult = true;inEndpoint1.TimeOut = 0xFFFFFFFF; //设置传输超时时间1ms while (true){// try// {//calls the XferData function for bulk transfer(OUT/IN) in the cyusb.dllxferLen = 1024;bResult = inEndpoint1.XferData(ref inData1, ref xferLen); //一次传输256个字符if (bResult){//if (adr > 67108864)//{// sw.Stop();// MessageBox.Show(string.Format("{0}.{1}",sw.Elapsed.Seconds, sw.Elapsed.Milliseconds));//}//else//{// fs.Write(inData1, 0, 1024);// adr += 1024;//}inCount += 1;this.Invoke(updateUI);}// }// catch (Exception ex)// {// MessageBox.Show(ex.ToString(), "线程2错误");// return;// }}// Call StatusUpdate() in the main thread//this.Invoke(updateUI);}
异步传输:
public unsafe void TransfersThread2() //专门用来传输线程0的 {int xferLen = XFERSIZE; //2048byte i = 0;byte[] cmdBufs = new byte[XFERSIZE];byte[] xferBufs = new byte[XFERSIZE];byte[] ovLaps = new byte[XFERSIZE];GCHandle handleOverlap = new GCHandle();handleOverlap = GCHandle.Alloc(ovLaps, GCHandleType.Pinned);CyUSB.OVERLAPPED ovLapStatus = new CyUSB.OVERLAPPED();ovLapStatus = (CyUSB.OVERLAPPED)Marshal.PtrToStructure(handleOverlap.AddrOfPinnedObject(), typeof(CyUSB.OVERLAPPED));ovLapStatus.hEvent = (IntPtr)PInvoke.CreateEvent(0, 0, 0, 0);Marshal.StructureToPtr(ovLapStatus, handleOverlap.AddrOfPinnedObject(), true);// CyUSB.OVERLAPPED ovLapStatus = new CyUSB.OVERLAPPED();cmdBufs = new byte[CyConst.SINGLE_XFER_LEN];xferBufs = new byte[XFERSIZE];int sz = Math.Max(CyConst.OverlapSignalAllocSize, sizeof(OVERLAPPED));ovLaps = new byte[sz];//fixed (byte* tmp0 = ovLaps)//{// OVERLAPPED* ovLapStatus = (OVERLAPPED*)tmp0;// ovLapStatus->hEvent = PInvoke.CreateEvent(0, 0, 0, 0);//}CyUSB.OVERLAPPED ovData = new CyUSB.OVERLAPPED();int len = xferLen;inEndpoint1.BeginDataXfer(ref cmdBufs, ref xferBufs, ref len, ref ovLaps);i = 0;Successes = 0;Failures = 0;for (; ; ){//fixed (byte* tmp0 = ovLaps){//OVERLAPPED* ovLapStatus = (OVERLAPPED*)tmp0;ovData = (CyUSB.OVERLAPPED)Marshal.PtrToStructure(handleOverlap.AddrOfPinnedObject(), typeof(CyUSB.OVERLAPPED));if (!inEndpoint1.WaitForXfer(ovData.hEvent, 500)){inEndpoint1.Abort();PInvoke.WaitForSingleObject(ovData.hEvent, 500);}}if (inEndpoint1.FinishDataXfer(ref cmdBufs, ref xferBufs, ref len, ref ovLaps))Successes++;elseFailures++;// Re-submit this buffer into the queue\len = XFERSIZE;inEndpoint1.BeginDataXfer(ref cmdBufs, ref xferBufs, ref len, ref ovLaps);i++;this.Invoke(updateUI);} }
cyusb3014上位机同步传输与异步传输的实现相关推荐
- 基于QT做上位机开发,实现FPGA通过cyusb3014芯片完成数据的收发
<基于QT做上位机开发,实现FPGA通过cyusb3014芯片完成数据的收发> #任务要求: 要求用qt编写上位机程序,实现FPGA通过cyusb3014芯片完成数据的收发.下面是采用通过 ...
- 基于QT,cyapi的CYUSB3014,USB3.0上位机编写
一,环境搭建 cypress的FX3套件里给的cyapi是msvc编译的,如果QT使用的是mingw编译器,要用mingw重新编译一次. 二,接收方式 同步采集:同步采集方式通过xferdata实现, ...
- dtu无线 服务器端,4G DTU将数据无线方式上传上位机软件。服务器PC端扩展功能
原标题:4G DTU将数据无线方式上传上位机软件.服务器PC端扩展功能 方案需求 工业生产很多生产商喜欢利用颜色检测工具来完成颜色评定和分析,一定要对色灯箱和测色仪这些颜色检测分析仪器才能正确的得到颜 ...
- 串口服务器支持多台上位机,RS485多机通信一台上位机两台下位机问题,
RS485一主机两个下位机,上位机通过发送下位机地址查询下位机两个按钮的状态,仿真时同时在P1口和P2口显示按钮状态 一.原理图 (原文件名:1.jpg) 二.程序 1.上位机程序 #include ...
- eigen 编译_OpenCV+Eigen上位机程序移植(七十一)
1.给硬盘分区 现在小伙伴们对于给电脑硬盘分区想必比较头疼,给电脑硬盘分区分为两种情况,一是在安装系统之前给系统硬盘分区,二是在安装系统之后给硬盘分区,我们现在购买的品牌机和笔记本的用户比较多,而且笔 ...
- 用LabVIEW编写上位机
要点: 1.安装VISA 2.底层通过串口转USB与PC相连,数据通过串口传输.串口名称即对应的串口号.当你插上USB后,LabVIEW会自动的识别可用的串口号. 总结:用Labview写通用板子的上 ...
- [python] 3 、基于串口通信的嵌入式设备上位机自动测试程序框架(简陋框架)...
星期一, 20. 八月 2018 01:53上午 - beautifulzzzz 1.前言 做类似zigbee.ble mesh...无线网络节点性能测试的时候,手动操作然后看表象往往很难找出真正的原 ...
- 上下位机通讯协议_上位机与下位机的区别通讯
上位机是指可以直接发出操控命令的计算机,一般是PC/host computer/master computer/upper computer,屏幕上显示各种信号变化(液压,水位,温度等).下位机是直接 ...
- PMAC上位机编程基础1---编程环境配置
最近看了一篇上海交通大学的硕士毕业论文,提到了关于PMAC的上位机编程,觉得蛮有意思.于是也想写一个小界面试一试.看了两三天文档,经过N次调试,终于完成了实现电机JOG运动的界面,其实回过头来想想,还 ...
最新文章
- CSR稀疏矩阵存储方式
- 解构 StyleCLIP:文本驱动、按需设计,媲美人类 P 图师
- Python合并多个Excel数据
- php ajax 重复提交,php+ajax远程加载避免重复提交
- JAVA面试题(part1)--变量相加与常量相加
- 获取date等于某一天的第一个id sql_leetcode(sql)之经典困难题合集
- MFC消息映射机制概述
- 用c语言实现数据结构算法将两个有序链表并为一个有序链表的算法,,(完整版)数据结构-习题集答案-(C语言版严蔚敏)...
- 数据结构与算法:十大排序算法之冒泡排序
- matlab运行为什么要选中代码,性能 – 为什么(在MATLAB中)这个代码更快?
- java线程系列---读写锁ReentrantReadWriteLock
- Pwn2Own黑客大赛战况:iPhone 20秒被黑
- ubuntu 安装 tree 命令
- HTML5基础学习(6):个人简历制作
- 图片轮播插件slideBox.js
- 微信小程序云开发之实时监听数据库某集合数据条数
- 2021-2027全球与中国网眼织物纺织品市场现状及未来发展趋势
- 见丰知夏|国漫鼻祖丰子恺,数字藏品独家发售
- 小程序商店刷榜_机刷8毛,人刷2块2,好评app都是刷出来的?苹果:刷榜app将从应用商店移除...
- 什么叫做SQL注入式攻击,如何防范?