首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编程一个联合视觉GigE相机,让它自动恢复图像采集后,断开和重新连接?

如何编程一个联合视觉GigE相机,让它自动恢复图像采集后,断开和重新连接?
EN

Stack Overflow用户
提问于 2022-11-07 01:15:44
回答 1查看 22关注 0票数 0

这些天来,我正在使用GigE测试一款联合视觉Alvium G1-1236相机(更确切地说,是Alvium G1-1236)。我正在使用C++,Ubuntu18.04。

在用户指南、API文档和示例代码的帮助下,我可以成功地编写C++代码来找到摄像机,打开它,并开始连续的图像采集(然后停止并关闭它)。

然而,当我拔掉以太网电缆并在几秒钟后将它插回时,我发现图像采集似乎停止了(因为我正在打印接收到的每一幅图像的元数据,并且在重新插入以太网电缆后没有看到任何新的打印的元数据)。

因此,在以太网电缆拔出并再次插入后,我正在尝试实现图像采集的自动恢复。我认为我需要观察摄像机列表的变化,所以我实现了我的

代码语言:javascript
复制
class CameraListObserver : public AVT::VmbAPI::ICameraListObserver
{
public:
    virtual void CameraListChanged(
        AVT::VmbAPI::CameraPtr pCam,
        AVT::VmbAPI::UpdateTriggerType reason
    );
};

然后,是的,在回调方法CameraListChanged中,我现在可以接收有关相机插入和-out的事件通知。

然而,,我不知道如何重新启动图像采集适当的。在CameraListChanged方法中,我尝试直接开始连续的图像采集,但是得到了误差Invalid call。我猜想也许图像采集还没有停止,所以我试着在再次启动之前停止采集,但是在相机上调用StopContinuousImageAcquisition返回了VmbErrorOther

我尝试了一些示例代码,但它们似乎都没有实现自动恢复图像采集功能。有人能给我一些建议/提示/提示吗?在断开和重新连接以太网电缆之后,如何恢复图像的连续采集?

EN

回答 1

Stack Overflow用户

发布于 2022-11-08 15:35:19

有许多函数不能在CameraListObserver中调用,您可以在Vimba手册第22页(第4章)上看到一个列表,包括设置特性值或运行功能命令。对于特性观察者和帧观察者,也有这样的列表。因此,观察者应该被用作事件触发器。相机的开启和图像采集需要在观察者之外启动。也许您可以让它修改一个全局状态变量,您可以签入不同的线程或循环吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74341049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档