记一次USB摄像头UVC扩展单元功能的BUG追踪笔记
毫不自负的说,本人觉地自己对USB摄像头的UVC扩展单元这一块的技术点应该来说还是很熟悉的,至少截止到现在,本人对于此处的技术知识点都是成竹在胸了。无论项目中提出的各处功能,本人都比较好地完成了工作并完满地交付了。
但有时,有些事,架不过时间的考验和相关配套程序条件限制。
今天,本人就翻车了。从中午10点开始查了2个小时,到下午的问题解决,以直到现在能有心情对这个问题的记帐,心情也算是大起大落了一回。这对老年人,是真的不友好啊。
放假后的第一天上班,拖着迷蒙的眼神,同事说测试假期报了一堆BUG,其中有几个与你的UVC摄像头驱动有关,你查一下。
翻开bug一看,主要有两个:
- 第一个是USB摄像头不支持AutoFraming功能
- 第一个是USB摄像头不支持摄像头位置记录功能
这两个功能都是在USB摄像头UVC扩展单元实现的私有定制协议。
本人在现场看了一下,打开应用软件,真的是。
我翻代码一看,咦,好像选择子数量写成了0,所以立马猜到以前说先不支持此两个功能,自己给注释了。
其实这个信息有误,经本人测试,微软对bNumControls这个变量好像不判断,而是直接使用bmControls进行判断的。
修改后,再次在本人的调试机上试了一下,还是不行。
反反复复看了几遍,没有看出问题。
加上windbg测试,通过扩展单元的特定类请求,一切的数据请求都很正常。
奇了怪了…
经过大概半个多小时的凌乱,本人突然想到了使用的软件的需要帐号登录,也需要激活。
可本人手中的机器那个让人郁闷啊。
- 为了调试,KDNET占用了网口
- WIFI用不了
没办法只好用自己的USB网卡试。
然帐号又成问题了,我竟然忘了我的密码了。试了N次之后,帐号被锁住了
没办法,用同事的,也一直报错误
后来重新安装应用软件,也不行
最后在appdata中清除了用户数据才用同事的帐号登录上去
你以为下来就大功告成了,
NO,还是没有扩展单元的两个功能
又经过很长一段时间的凌乱,
本人终于悟了,
原来是前一段时间同事了为进行驱动的验证和安装,还有固件的升级。
要求我人为的将PID进行了+0x100
我的大脑中突然出现了一个信息,好像这个应用软件只支持特定的VID和PID的
仿佛中了彩票一般
修改代码,编译
开奖
中了,我竟然中了。
虽然在意料之中,如诸葛亮的运筹帷幄一般。。。
然也少了不一丝丝淡淡的忧伤
我这半天干了个啥。。。