Baumer工业相机使用BGAPI SDK集成VCXG-124M/51M在C++相机初始化资源报错。

简介: Baumer工业相机使用BGAPI SDK集成VCXG-124M/51M在C++相机初始化资源报错。

项目场景:

Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。


Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩展性等特点。


特殊检测类项目,使用高速高稳定的Baumer工业相机作为相机主体,使用Baumer BGAPI SDK进行集成采集图片进行检测


相机型号为VCXG-124M/51M相机。


问题描述

C++使用Baumer BGAPI SDK中初始化资源代码:


// DECLARATIONS OF VARIABLES
    BGAPI2::SystemList *systemList = NULL;
    BGAPI2::System * pSystem = NULL;
    BGAPI2::String sSystemID;
    BGAPI2::InterfaceList *interfaceList = NULL;
    BGAPI2::Interface * pInterface = NULL;
    BGAPI2::String sInterfaceID;
    BGAPI2::DeviceList *deviceList = NULL;
    BGAPI2::Device * pDevice = NULL;
    BGAPI2::String sDeviceID;
    BGAPI2::DataStreamList *datastreamList = NULL;
    BGAPI2::DataStream * pDataStream = NULL;
    BGAPI2::String sDataStreamID;
    BGAPI2::BufferList *bufferList = NULL;
    BGAPI2::Buffer * pBuffer = NULL;
    BGAPI2::String sBufferID;
    int returncode = 0;
    std::cout << std::endl;
    std::cout << "###############################################################" << std::endl;
    std::cout << "# PROGRAMMER'S GUIDE Example 011_ImageCaptureMode_Handler.cpp #" << std::endl;
    std::cout << "###############################################################" << std::endl;
    std::cout << std::endl << std::endl;
    std::cout << "SYSTEM LIST" << std::endl;
    std::cout << "###########" << std::endl << std::endl;
    // COUNTING AVAILABLE SYSTEMS (TL producers)
    try {
        systemList = BGAPI2::SystemList::GetInstance();
        systemList->Refresh();
        std::cout << "5.1.2.  Detected systems:  " << systemList->size() << std::endl;
        // SYSTEM DEVICE INFORMATION
        for (BGAPI2::SystemList::iterator sysIterator = systemList->begin();
            sysIterator != systemList->end();
            sysIterator++) {
            std::cout << "  5.2.1.  System Name:     " << sysIterator->GetFileName() << std::endl;
            std::cout << "          System Type:     " << sysIterator->GetTLType() << std::endl;
            std::cout << "          System Version:  " << sysIterator->GetVersion() << std::endl;
            std::cout << "          System PathName: " << sysIterator->GetPathName() << std::endl << std::endl;
        }
    }
    catch (BGAPI2::Exceptions::IException& ex) {
        returncode = (returncode == 0) ? 1 : returncode;
        std::cout << "ExceptionType:    " << ex.GetType() << std::endl;
        std::cout << "ErrorDescription: " << ex.GetErrorDescription() << std::endl;
        std::cout << "in function:      " << ex.GetFunctionName() << std::endl;
    }

提示内存报错,如下所示  


提示错误:0x00007FFDAD724FD9(KernelBase.dll)(GigeDemo.exe中)处有未经处理的异常:0xC000041D:用户回调区 间遇到未经处理的异常


提示错误:0x00007FFDAD724FD9(KernelBase.dll)(GigeDemo.exe中)处有未经处理的异常:
0xC000041D:用户回调区 间遇到未经处理的异常

原因分析:

Baumer工业相机在最开启初始化时,出现报错,一般是环境问题,比如SDK未安装完成,缺少文件等等。


前面的问题反馈出来是未生成合适的BGapi System实例,从而导致后续相机操作无法执行。


解决方案:

该电脑编译器平台环境为X86,实际电脑为X64环境,且对于的dll文件也为64位,因此需要调整编译器设置环境,重新生成即可,需要设置X64重新生成即可正常运行。


注意:


在C++环境使用Baumer BGAPI SDK做开发时,需要注意对应的编译器平台X86或者X64的类型,尤其是环境的 兼容性,出现问题可以使用其它电脑做对照验证测试。


工业相机软件开发注意要点:

在使用工业相机SDK进行软件开发时,有几个方面需要注意。


1. 兼容性 - 确保相机SDK与您的操作系统、开发环境和您所使用的工业相机型号兼容。


2. 2.功能 - 检查摄像机SDK是否支持您的应用所需的功能,如图像采集、视频录制和图像处理。


3. API文档 - 彻底检查API文档,确保其清晰和全面,便于开发和故障排除。


4. 开发环境 - 确保你的软件开发环境被正确配置为能与相机SDK一起工作。


5. 性能 - 在处理大量图像数据时要考虑到相机SDK的性能。


6. 支持和社区资源 - 评估客户支持和社区资源的可用性,如论坛或用户组,以协助解决故障和开发问题。


7. 许可证和成本 - 审查相机SDK的许可证和成本,以确保它符合您的项目预算和要求。

目录
相关文章
|
5月前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
71 0
|
4月前
|
编译器 C语言 C++
C++一分钟之-C++11新特性:初始化列表
【6月更文挑战第21天】C++11的初始化列表增强语言表现力,简化对象构造,特别是在处理容器和数组时。它允许直接初始化成员变量,提升代码清晰度和性能。使用时要注意无默认构造函数可能导致编译错误,成员初始化顺序应与声明顺序一致,且在重载构造函数时避免歧义。利用编译器警告能帮助避免陷阱。初始化列表是高效编程的关键,但需谨慎使用。
54 2
|
17天前
|
编译器 C++
C++ 类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。
60 30
|
4月前
|
算法 开发工具 计算机视觉
【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示
【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示
66 1
|
6天前
|
前端开发 C++ Windows
C++生成QML代码与QML里面集成QWidget
这篇文章介绍了如何在C++中生成QML代码,以及如何在QML中集成QWidget,包括使用Qt Widgets嵌入到QML界面中的技术示例。
|
2月前
|
存储 API 开发工具
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
|
2月前
|
开发工具 数据安全/隐私保护 Python
【Azure 环境】通过Python SDK收集所有订阅简略信息,例如订阅id 名称, 资源组及组内资源信息等,如何给Python应用赋予相应的权限才能获取到信息呢?
【Azure 环境】通过Python SDK收集所有订阅简略信息,例如订阅id 名称, 资源组及组内资源信息等,如何给Python应用赋予相应的权限才能获取到信息呢?
|
2月前
|
Dart API 开发工具
Dart ffi 使用问题之Dart API要在C++中使用,该如何初始化
Dart ffi 使用问题之Dart API要在C++中使用,该如何初始化
|
3月前
|
C++ Windows
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
在Windows上使用Visual Studio 2022进行FFmpeg和SDL2集成开发,首先安装FFmpeg至E:\msys64\usr\local\ffmpeg,然后新建C++控制台项目。在项目属性中,添加FFmpeg和SDL2的头文件及库文件目录。接着配置链接器的附加依赖项,包括多个FFmpeg及SDL2的lib文件。在代码中引入FFmpeg的`av_log`函数输出"Hello World",编译并运行,若看到"Hello World",即表示集成成功。详细步骤可参考《FFmpeg开发实战:从零基础到短视频上线》。
81 0
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
|
4月前
|
安全 C++ 开发者
C++一分钟之-RAII资源获取即初始化
【6月更文挑战第24天】RAII是C++中一种关键的资源管理技术,它利用对象生命周期自动获取和释放资源,减少内存泄漏。通过构造函数获取资源,析构函数释放资源,确保异常安全。优势包括自动性、异常安全和代码清晰。使用智能指针如`std::unique_ptr`和`std::shared_ptr`,以及标准库容器,可以避免手动管理。自定义RAII类适用于非内存资源。代码示例展示了智能指针和自定义RAII类如何工作。掌握RAII能提升程序的可靠性和可维护性。
50 6

热门文章

最新文章

下一篇
无影云桌面