http://www.wince.com.tw/bbs/index.asp
请问kshuang大侠及各位高手 ,用IssueIsochTransfer函数实现usb摄像头得驱动时,参数dwStartingFrame 是怎么设定得?还有实现一般得usb摄像头得功能,需要实现哪些类指定得功能呢(class-specific)?谢谢
------------------------------------------------------------------------------------
--------------------------------------------------------------------------------
編輯 2005/05/19 10:15:31 IP: 已設置守密
yyjscrew
一般會員
威望: + 0
來自: 守密
鑒定: 已設置守密
總發表數: 25 篇
注冊日期: 2005/03/21
查看 消息 引用 回複
--------------------------------------------------------------------------------
有没人知道啊?麻烦指点一下了,小弟在此先谢了。
------------------------------------------------------------------------------------
--------------------------------------------------------------------------------
編輯 2005/05/30 11:43:23 IP: 已設置守密
kshuang
論壇長老
威望: + 0
來自: 守密
鑒定: 已設置守密
總發表數: 841 篇
注冊日期: 2002/07/16
查看 消息 主頁 引用 回複
--------------------------------------------------------------------------------
除非你要指定在 特定的 Frame Number 才要做 transfer
不然一般就 don't care
然後指定 USB_START_ISOCH_ASAP 這個 flag
至於要取得現在的 USB Frame Number 可以用 LPGET_FRAME_NUMBER 來取得
------------------------------------------------------------------------------------
--------------------------------------------------------------------------------
編輯 2005/05/31 11:27:35 IP: 已設置守密
yyjscrew
一般會員
威望: + 0
來自: 守密
鑒定: 已設置守密
總發表數: 25 篇
注冊日期: 2005/03/21
查看 消息 引用 回複
--------------------------------------------------------------------------------
谢谢kshuang ,再请问一个问题:那参数 lpvBuffer是存放视频数据的buffer么?
lpdwLengths是存放视频数据的buffer长度值么?帮助文档中"an array of lengths"是否意味着这个buffer应该是一个数组?
dwFrames 是指frame的最大记数值吗?也就是说如果我们指定dwStartingFrame 为0,那usb从0号frame开始传输,一直到dwFrames 指定的值,
然后又重新从0开始记数吗?
不知我这样的理解对不?麻烦指点
------------------------------------------------------------------------------------
--------------------------------------------------------------------------------
編輯 2005/06/20 11:21:28 IP: 已設置守密
kshuang
論壇長老
威望: + 0
來自: 守密
鑒定: 已設置守密
總發表數: 841 篇
注冊日期: 2002/07/16
查看 消息 主頁 引用 回複
--------------------------------------------------------------------------------
大致上是這樣沒錯
------------------------------------------------------------------------------------
--------------------------------------------------------------------------------
編輯 2005/06/21 11:13:13 IP: 已設置守密
yyjscrew
一般會員
威望: + 0
來自: 守密
鑒定: 已設置守密
總發表數: 25 篇
注冊日期: 2005/03/21
查看 消息 引用 回複
--------------------------------------------------------------------------------
谢谢kshuang 。还有一个疑问:就是我看wince自带的打印机驱动源代码,对这个驱动它实现了GET_DEVICE_ID,GET_PORT_STATUS,SOFT_RESET这三个类指定(class-specific)的请求,那摄像头需要实现那些类请求呢?可不可以不实现它们呢?看usb视频类的协议,真的太复杂了。
谢谢!
------------------------------------------------------------------------------------
--------------------------------------------------------------------------------
編輯 2005/06/21 04:06:07 IP: 已設置守密
kshuang
論壇長老
威望: + 0
來自: 守密
鑒定: 已設置守密
總發表數: 841 篇
注冊日期: 2002/07/16
查看 消息 主頁 引用 回複
--------------------------------------------------------------------------------
那是因為 Printer Driver 需要 implement 這些 IOCTL
不過 Camera 又是另外一回事
因為 Windows CE 到 5.0 為止都沒有 support Camera interface 所以就你愛怎做就怎做吧
不過下一版 可能是 5.10 吧 反正代號是 bowmore (又是 whisky) or PPC AKU 的 Magneto 就有 camera interface
到時又是另外一回事了
但因為 NDA 所以也只能點到為止了
------------------------------------------------------------------------------------
--------------------------------------------------------------------------------
編輯 2005/06/22 10:32:38 IP: 已設置守密
yyjscrew
一般會員
威望: + 0
來自: 守密
鑒定: 已設置守密
總發表數: 25 篇
注冊日期: 2005/03/21
查看 消息 引用 回複
--------------------------------------------------------------------------------
再次感谢kshuang ,NDA是什么意思啊?还有我怎么知道每次传输里有几个帧(frame)?每帧有几个字节数据呢?当应用程序用readfile访问驱动时,驱动调用XXX_read从usb总线上获得一次传输的数据,然后我该怎么把它组织成图片显示呢?是一帧(1ms)一幅图片吗?这些数据有什么格式吗?如果不用实现视频类的类请求,那该怎么设定这些数据的格式?如果不设定,那默认的又是什么格式的?不知道我的理解对不?麻烦再次指点
谢谢
------------------------------------------------------------------------------------
--------------------------------------------------------------------------------
編輯 2005/06/22 11:16:29 IP: 已設置守密
kshuang
論壇長老
威望: + 0
來自: 守密
鑒定: 已設置守密
總發表數: 841 篇
注冊日期: 2002/07/16
查看 消息 主頁 引用 回複
--------------------------------------------------------------------------------
NDA = Non-disclosure agreement 台灣這邊一般翻成保密協議
至於你的其它問題 這會是 depends on your USB camera ASIC
每個 ASIC 都會有不同的方式 沒法一套通吃
output format 有些是 RGB 有些是 YUV 也有output 成一張張的 JPEG
------------------------------------------------------------------------------------
--------------------------------------------------------------------------------
編輯 2005/06/23 01:39:31 IP: 已設置守密
yyjscrew
一般會員
威望: + 0
來自: 守密
鑒定: 已設置守密
總發表數: 25 篇
注冊日期: 2005/03/21
查看 消息 引用 回複
--------------------------------------------------------------------------------
谢谢kshuang ,依你的意思,对每种类型的摄像头都有不同的驱动吗?难道不能做一个象PC机上一样的万能驱动吗?我觉得在wince下调用IssueIsochTransfer函数从usb上读取数据是跟硬件无关的,至于输出格式和帧数等和硬件相关的,每个摄像头不一样,但是我觉得应该可以通过读取并分析设备的一些描述符信息来分别在驱动中再设定吧。是固件(firmware)里没提供这样的函数和信息吗?迷惑中。。。。。。
谢谢
------------------------------------------------------------------------------------
--------------------------------------------------------------------------------
編輯 2005/06/23 05:39:51 IP: 已設置守密
kshuang
論壇長老
威望: + 0
來自: 守密
鑒定: 已設置守密
總發表數: 841 篇
注冊日期: 2002/07/16
查看 消息 主頁 引用 回複
--------------------------------------------------------------------------------
PC 上也是要裝 driver 的囉
USB device 大概是這樣
假如有class 規範的 device 通常是可以一隻driver 通吃
至於 class 的 definition 可以到 www.usb.org 找 不用錢的
------------------------------------------------------------------------------------
--------------------------------------------------------------------------------
編輯 2005/06/24 09:59:44 IP: 已設置守密
yyjscrew
一般會員
威望: + 0
來自: 守密
鑒定: 已設置守密
總發表數: 25 篇
注冊日期: 2005/03/21
查看 消息 引用 回複
--------------------------------------------------------------------------------
非常感谢kshuang ,你的指点使我消除了很多疑问。现在我想实际动手试一下,由于没有开发板,我想用PC机来做目标板。我用pb定制了一个cepc的os内核image nk.bin,我又把u盘做成了一个dos启动盘,然后把nk.bin copy到u盘里,可以在pc机上启动进入ce,可是当我在pc机上的别的usb口上插入usb摄象头时,却没有出现未知设备对话框,请问是怎么回事?插入其他的u盘也没有什么反应,在ce下找不到该设备。查看ce下的注册表,好像uhci.dll和usbd.dll都已加载了。不知道是那里的问题啊?是os本身没定制好呢,还是pc硬件的原因啊?请指教。
谢谢
------------------------------------------------------------------------------------
--------------------------------------------------------------------------------
編輯 2005/06/24 04:48:05 IP: 已設置守密
kshuang
論壇長老
威望: + 0
來自: 守密
鑒定: 已設置守密
總發表數: 841 篇
注冊日期: 2002/07/16
查看 消息 主頁 引用 回複
--------------------------------------------------------------------------------
那你可能要開一下 debug mode
確定一下插入 device 時 UHCI and USBD 有沒去 enumrate device and 有沒有 error
谢谢kshuang,请问从哪里开CE的debug mode?怎么检查UHCI and USBD 有没去enumerate device 并是否有error的呢?
谢谢
-
--------------------------------------------------------------------------------
編輯 2005/06/27 11:10:03 IP: 已設置守密
kshuang
論壇長老
威望: + 0
來自: 守密
鑒定: 已設置守密
總發表數: 841 篇
注冊日期: 2002/07/16
查看 消息 主頁 引用 回複
--------------------------------------------------------------------------------
在 PB 裡選 debug mode configuration 來 build image
有沒 enumeration 看 debug message 就會知道了
------------------------------------------------------------------------------------