阅读:1720回复:16
如何判断NAK,still或无返回值状态》?
偶做USB。.DS的sys.VC的dll,VB的exe,程序运行也正常
只是,如果我的读写的过程中,设备出了问题或人为中断设备, 偶的VB应用程序就会死掉,原因可以是因为没有判断设备返回的nak,still等, 如果我要做这些判断的话,应该是在.sys呢,还是在dll呀? 大哥们帮忙!感激感激不尽! |
|
|
沙发#
发布于:2002-11-02 09:02
不累不累,呵呵 打几个字有什么累的。
DS生成的代码是: // Submit the URB to our USB device NTSTATUS status; status = requestpipe.SubmitUrb(I, pUrb, LinkTo(ReadComplete), pCompInfo, 0); return status; 按您说的,偶改成了: // Submit the URB to our USB device NTSTATUS status; status = requestpipe.SubmitUrb(I, pUrb, LinkTo(ReadComplete), pCompInfo, 10); return status; 也就是把mSecTimeOut改成了10毫秒,可是。。。。不管用呀!通信过程中要是把设备关掉了的话,程序照死~~何哉?! :( |
|
|
板凳#
发布于:2002-11-01 22:21
你自己用的是哪个,就看哪个啊!
小伙子,这种简单问题,自己稍微研究一下嘛!你自己打字不觉得累么? |
|
|
地板#
发布于:2002-11-01 13:55
是KUsbPipe::SubmitUrb吧!
|
|
|
地下室#
发布于:2002-11-01 13:54
是KUsbPipe::SubmitUrb吧
|
|
|
5楼#
发布于:2002-11-01 12:13
明白了,呵呵,谢谢 斑竹大人
|
|
|
6楼#
发布于:2002-11-01 11:26
faint! ??????? 什么呀?? 问题是在DS生成的代码中,我都没看到过KUsbLowerDevice::SubmitURb,这东东在哪啊??? |
|
|
7楼#
发布于:2002-11-01 10:48
faint!
既然用了submit,当然会有啦!没有写在上面,说明是用了缺省值:NULL,这是C++的特性啊! |
|
|
8楼#
发布于:2002-11-01 10:41
就是说把mSecTimeOut设一个值做为超时值?
可用DS生成的代码中没有这一部分啊?改DS带的.lib吗? |
|
|
9楼#
发布于:2002-11-01 10:27
很简单啊!SubmitUrb的最后一个参数就是超时啊!
|
|
|
10楼#
发布于:2002-11-01 08:53
ds自己实现了一个定时器。 那我该如何修改我的程序啊?DS生成的代码中也没包含这些呀! |
|
|
11楼#
发布于:2002-10-31 22:09
ds自己实现了一个定时器。
如果你用ddk,自己翻译一下。 详细的内容,去读一下KUsbLowerDevice::SubmitUrb的实现代码,把它读懂了,你就知道是怎么回事了! |
|
|
12楼#
发布于:2002-10-31 20:48
Hi:
当然要在驱程中考虑这问题! |
|
13楼#
发布于:2002-10-31 20:12
我看了Cypress的 EzMr 代码,好像没有什么不同的,调用通用驱程,为什么 EzMr 就可以在无响应的3秒后自动返回。不知道哪位分析过。 :mad:
|
|
|
14楼#
发布于:2002-10-31 14:15
我也有这样的问题,一次BULK传输没有完成,主机的应用程序会继续等待。如何让主机在一定时间之后,停止等待。是在驱动中完成么?有高手做过么?
|
|
|
15楼#
发布于:2002-10-31 11:29
那我该用什么办法解决现在这个问题呢?
我的应用程序正在向设备写或接收设备数据,突然设备OVER了,应用程序如何能不使呀? |
|
|
16楼#
发布于:2002-10-31 11:19
你的程序没有办法知道这些!
|
|
|