该死的GigEVison,终于能够在Linux下运行了!

实验室 用到的MaxxVision 公司的GigEVison camera, 在windows下能够 运行,但在linux下总是 出现 编译通过,运行时,能够连接 上设备,但就是显现图像很慢,开始怀疑是

1.  硬件问题,去年在我的DELL新机器上跑,以为 是 我到 ethenet  网卡 无法设置jambo特新所造成的,结果后来在我的 desktop上也出现同样问题。

2. 系统驱动问题,因为在windows下,在网卡到property---》 servers 里要安装 厂家提供的 stream filter kernel  驱动,当把GigEVisionClient程序移植到linux下时,运行就出现

 

这个警告。按掉“Close”按钮后,能够检测到camera,但一 connect 就退出程序, 说是 :“Segmentation fault“如下。

bv5@bv5-desktop:~/MyPrograms/GigEVisionClient$ ./GigEVisionClient
API_ConnectDevice
valid ACK
1 0==0
Step2
Step3
Segmentation fault

猜测是 缺少这个驱动, 在网上看了 ,发现linux 内核里 含有UVC的驱动,不需要单独装载,实验自己到 web 摄像头 能够 正常工作,看来也不是这个原因。

3. 软件环境的问题。自己找到Macus 弄的linux下用GigEVision到README文件,把相关的 第3方库都check 了一边,应该都齐了,但问题还在,最后想Lars要他们用到的sample程序,因为他们 能够在他们到机器上用得 起来。结果,他把相关到库 和 他自己综合的 库 在我 机器上弄好后,他到代码能够 很好的运行, 就是在我的desktop上,如果eth0 和 eth1 都打开的话,就会出现 “找不到设备,连接不到设备”的错误。所以运行GigEVision 设备时,需要把internet 的eth0关掉

4. 看来是我的代码的问题了,查看 Lars的 MaxxClientTest  和 我的 cameras_work_simultaneously 程序,发现在提取出 图像后,显示时,他的 cvWaitKey(5);是 “5”,而我的却是 ”1“,当我改为‘2’时,问题就解决了!!!(OpenCV 怎么有这个问题!!!)

                    cvShowImage( "img", cvImgBgr );
                    cvWaitKey(5);

5.这样,当启动cameras_work_simultaneously程序就能够立即看到图像了,但是发现图像很滞后,把device_->ClearImageBuffer();加到device->PopImage(imageInfo);之后,画面开始变得很流畅了!但是大概过了3分钟,就出现lost  package的问题,估计是有内存泄漏造成的,明天在继续解决。。。。。



发布了35 篇原创文章 · 获赞 12 · 访问量 43万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章