同步传输:

        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上位机同步传输与异步传输的实现相关推荐

  1. 基于QT做上位机开发,实现FPGA通过cyusb3014芯片完成数据的收发

    <基于QT做上位机开发,实现FPGA通过cyusb3014芯片完成数据的收发> #任务要求: 要求用qt编写上位机程序,实现FPGA通过cyusb3014芯片完成数据的收发.下面是采用通过 ...

  2. 基于QT,cyapi的CYUSB3014,USB3.0上位机编写

    一,环境搭建 cypress的FX3套件里给的cyapi是msvc编译的,如果QT使用的是mingw编译器,要用mingw重新编译一次. 二,接收方式 同步采集:同步采集方式通过xferdata实现, ...

  3. dtu无线 服务器端,4G DTU将数据无线方式上传上位机软件。服务器PC端扩展功能

    原标题:4G DTU将数据无线方式上传上位机软件.服务器PC端扩展功能 方案需求 工业生产很多生产商喜欢利用颜色检测工具来完成颜色评定和分析,一定要对色灯箱和测色仪这些颜色检测分析仪器才能正确的得到颜 ...

  4. 串口服务器支持多台上位机,RS485多机通信一台上位机两台下位机问题,

    RS485一主机两个下位机,上位机通过发送下位机地址查询下位机两个按钮的状态,仿真时同时在P1口和P2口显示按钮状态 一.原理图 (原文件名:1.jpg) 二.程序 1.上位机程序 #include ...

  5. eigen 编译_OpenCV+Eigen上位机程序移植(七十一)

    1.给硬盘分区 现在小伙伴们对于给电脑硬盘分区想必比较头疼,给电脑硬盘分区分为两种情况,一是在安装系统之前给系统硬盘分区,二是在安装系统之后给硬盘分区,我们现在购买的品牌机和笔记本的用户比较多,而且笔 ...

  6. 用LabVIEW编写上位机

    要点: 1.安装VISA 2.底层通过串口转USB与PC相连,数据通过串口传输.串口名称即对应的串口号.当你插上USB后,LabVIEW会自动的识别可用的串口号. 总结:用Labview写通用板子的上 ...

  7. [python] 3 、基于串口通信的嵌入式设备上位机自动测试程序框架(简陋框架)...

    星期一, 20. 八月 2018 01:53上午 - beautifulzzzz 1.前言 做类似zigbee.ble mesh...无线网络节点性能测试的时候,手动操作然后看表象往往很难找出真正的原 ...

  8. 上下位机通讯协议_上位机与下位机的区别通讯

    上位机是指可以直接发出操控命令的计算机,一般是PC/host computer/master computer/upper computer,屏幕上显示各种信号变化(液压,水位,温度等).下位机是直接 ...

  9. PMAC上位机编程基础1---编程环境配置

    最近看了一篇上海交通大学的硕士毕业论文,提到了关于PMAC的上位机编程,觉得蛮有意思.于是也想写一个小界面试一试.看了两三天文档,经过N次调试,终于完成了实现电机JOG运动的界面,其实回过头来想想,还 ...

最新文章

  1. CSR稀疏矩阵存储方式
  2. 解构 StyleCLIP:文本驱动、按需设计,媲美人类 P 图师
  3. Python合并多个Excel数据
  4. php ajax 重复提交,php+ajax远程加载避免重复提交
  5. JAVA面试题(part1)--变量相加与常量相加
  6. 获取date等于某一天的第一个id sql_leetcode(sql)之经典困难题合集
  7. MFC消息映射机制概述
  8. 用c语言实现数据结构算法将两个有序链表并为一个有序链表的算法,,(完整版)数据结构-习题集答案-(C语言版严蔚敏)...
  9. 数据结构与算法:十大排序算法之冒泡排序
  10. matlab运行为什么要选中代码,性能 – 为什么(在MATLAB中)这个代码更快?
  11. java线程系列---读写锁ReentrantReadWriteLock
  12. Pwn2Own黑客大赛战况:iPhone 20秒被黑
  13. ubuntu 安装 tree 命令
  14. HTML5基础学习(6):个人简历制作
  15. 图片轮播插件slideBox.js
  16. 微信小程序云开发之实时监听数据库某集合数据条数
  17. 2021-2027全球与中国网眼织物纺织品市场现状及未来发展趋势
  18. 见丰知夏|国漫鼻祖丰子恺,数字藏品独家发售
  19. 小程序商店刷榜_机刷8毛,人刷2块2,好评app都是刷出来的?苹果:刷榜app将从应用商店移除...
  20. 什么叫做SQL注入式攻击,如何防范?

热门文章

  1. python 悬浮窗_python浮窗
  2. ubuntu安装以太方mist
  3. RIGHT-BICEP测试第二次
  4. 砥砺前行,匠心致远|袋鼠云联合创始人、易知微CEO宁海元荣获“数字工匠 ”
  5. cms32L051 掉电深度睡眠的唤醒
  6. 四足机器人(从PCB到3D打印)
  7. Pandas基础入门(一)
  8. 微信支付v3 AEAD_AES_256_GCM解密JS版本代码及验证 javascript
  9. 计算机网络复习-第六章应用层
  10. 四年级计算机教学总结,四年级信息技术教学工作总结