dingdang
驱动牛犊
驱动牛犊
  • 注册日期2003-11-13
  • 最后登录2005-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1786回复:5

有人看懂cypress控制面板源程序EzMr吗?

楼主#
更多 发布于:2004-07-14 14:49
程序有点复杂,有地方看不明白,还望高手指点一二。
在USB端没有数据的情况下,若在控制面板上点了收BULK 数据,则此时有一个任务悬挂,待USB有数据后自动读出数据。针对这个要求,EzMr是怎么来实现的?
在执行success=DeviceIoControl(handle,
IOCTL_EZUSB_BULK_READ,
&bulkControl,
sizeof(BULK_TRANSFER_CONTROL),
inBuffer,
inPacketSize,
&nBytes,
NULL);
若此时设备端并无数据,则此时success=1还是=0?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-14 16:17
会一直等待不返回
直到发生下面的情况:
1,设备返回数据
2,拔掉USB电缆:)
因为cy的驱动是用同步方实现的,如果用异步方式,那么会返回0,用getlasterror会获得STATUS_PENDING。
dingdang
驱动牛犊
驱动牛犊
  • 注册日期2003-11-13
  • 最后登录2005-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-14 19:07
那如果读deviceiocontrol一直悬挂在那里,岂不是无法进行写操作了?
但是在控制面板上操作时,此时可以写数据。
会一直等待不返回
直到发生下面的情况:
1,设备返回数据
2,拔掉USB电缆:)
因为cy的驱动是用同步方实现的,如果用异步方式,那么会返回0,用getlasterror会获得STATUS_PENDING。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-15 09:14
无法再进行读操作了,但写操作我没试过。
dingdang
驱动牛犊
驱动牛犊
  • 注册日期2003-11-13
  • 最后登录2005-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-15 13:58
我觉得挺奇怪的。因为它的deviceiocontrol用的是同步调用方式,按理说只要有一个请求悬挂在那里,就无法再进行任何deviceiocontrol操作,但事实上是若有读悬挂在那里,则可进行写操作(这是我试过的)。

无法再进行读操作了,但写操作我没试过。
jack_qi
驱动牛犊
驱动牛犊
  • 注册日期2008-07-15
  • 最后登录2008-11-25
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望12点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-08-15 12:01
和想和楼主 dingdang好好交流,能否留下EMALL或者QQ号码,这样交流更方便,我的是qige729@163.com
交流是为了更好的学习
游客

返回顶部