海康相机SDK二次开发的一些报错和解决办法

1.MV_OK 0x00000000 成功,无错误

解析:-2147483648/0x80000000正常状态返回,执行成功

2.MV_E_HANDLE 0x80000000 错误或无效的句

解析:-2147483648/0x80000000 无效句柄,常见问题如下:

用户没有申请句柄,直接调用接口,新手常犯的错误,要引导去学习我们接口使用流程

用户创建了句柄,但是其他地方销毁了句柄,用户没有注意到,需要仔细排查代码

3.MV_E_SUPPORT 0x80000001 不支持的功能

解析:-2147483647/0x80000001

SDK接口的bayer空域降噪、无损压缩、色彩矫正等ISP功能,需要配合CS-Pro系列相机支持

格式转化时,不同格式的相互转化,超出了算法能力集,详情请仔细查阅SDK接口说明

4.MV_E_BUFOVER 0x80000002 缓存已满

解析:-2147483646/0x80000002

常见于gige驱动启动时报错,低版本SDK在某些网卡上面易发,驱动启动失败后,走socket协议发送接收相机数据,效率低,CPU负载大 推荐使用SDK3.5版本解决此问题

5.MV_E_CALLORDER 0x80000003 函数调用顺序有误

解析:-2147483645/0x80000003

sdk接口调用,有一定流程顺序,例如getimagebuffer在startgrabing之前调用,就违反了接口流程,就会报错顺序调用错误 还比如,没有调用startgrabing接口,就去调用频繁调用stopgrabing接口,也会报此错误

6.MV_E_PARAMETER 0x80000004 错误的参数

解析:-2147483644/0x80000004

常见问题: 常见于格式转化、图像保存等需要补充数据结构的接口调用,部分参数传入错误,或者没有传入,这个时候,要去仔细检查参数的传入是否正确

7.MV_E_NODATA 0x80000007 无数据

解析:-2147483641/0x80000007无数据

相机帧率低,用户调用主动取流接口getimagebuffer/getoneframetimout频率高于相机出图频率,且超时时间短,没有拿到图片,此时应该打印相机帧号,如帧号连续则为正常现象

相机处于触发模式,没有触发信号给到相机,此时,应该排查用户是否给了软触发或者硬触发信号

相机停流,此时,建议打开MVS,观察相机状态

耐心寻找规律,看看是否跟packsize、scpd、取流超时时间不合理所致

8.MV_E_NOENOUGH_BUF 0x8000000A 传入的内存空间不足

解析:-2147483638/0x8000000A

1.用户自行开辟的内存大小,小于当前相机图像所需要的图像大小,例如用mono8的图像大小,接收RGB的图像

2.用户定义的内存大小,中途更换了分辨率更高的相机,导致所需内存较多

3.相机开启了chunk功能,用户开辟缓存大小,仅考虑了图像宽像素格式,没有考虑到chunk

解决方法:

排查内存开辟大小,建议使用相机payloadsize大小

检查相机图像格式

关闭相机chunk等功能

9.MV_E_UNKNOW 0x800000FF 未知的错误

解析:-2147483137/0x800000FF GenICam未知错误

未知错误,形成原因较难分析,建议如下

更新最新版本的sdk

开启sdk日志等级,通过日志分析形成原因

10.MV_E_GC_GENERIC 0x80000100 通用错误

解析:-2147483392/0x80000100

通用接口调用,关键词写错,例如曝光:ExposureTime,拼写错误就会报错

第三方相机链接,例如迈德威视相机链接MVS,也会报通用错误,这是因为迈德威视不是标准的genicam协议的相机导致的

接口类型用错,例如曝光时float型节点,我们使用了一个int型的节点接口进行读写,访问,那么也会报通用错误

11.MV_E_GC_RANGE 0x80000102 值超出范围

解析:-2147483390/0x80000102

接口传入的参数值,超出相机接受范围,例如,曝光存在上下限,图像宽高存在步进,没有按照步进进行设置等等

12.MV_E_GC_ACCESS 0x80000106 节点访问条件有误

解析:-2147483386/0x80000106

常见的问题类型有: 相机节点不存在或者无法访问,例如,自动曝光,在手动曝光情况下,自动曝光节点会被隐藏,或者其他相机存在这个参数,而使用的相机无此参数,例如线扫相机的行频参数等等,还比如说部分相机无此功能,例如event参数,部分相机固件暂不支持用户调用

13.MV_E_GC_TIMEOUT 0x80000107 超时

解析:-2147483385/0x80000107 GVCP命名包回复超时,一般出现在网络环境不好的情况下,此时应该调用接口加大gvcp命令包等待时间(MV_GIGE_GetGvcpTimeout()),持续出现该报错,应该排查网络环境问题

分析:根据海康SDK提示文件:更新官网最新SDK时,设备网络SDK开发包【库文件】里的HCNetSDK.dll、HCCore.dll、PlayCtrl.dll、SuperRender.dll、AudioRender.dll、HCNetSDKCom文件夹等文件均要加载到程序里面,HCNetSDKCom文件夹(包含里面的功能组件dll库文件)需要和HCNetSDK.dll、HCCore.dll一起加载,放在同一个目录下,且HCNetSDKCom文件夹名不能修改。

解决方法:将海康SDK的头文件放到Debug文件夹.exe文件的存放处:

14.MV_E_ACCESS_DENIED 0x80000203 设备无访问权限

解析:-2147483133/0x80000203常见问题有:

相机被其他软件打开占用,关闭其他软件,检查设备管理器中,可能存在的残留进程

代码debug下,心跳时间问题,等待60s后,可以重新打开(此问题参考心跳问题解决方法,可缩短打开时间)

其余问题,例如一上电就打不开相机,需要重新插拔网线、USB线,就是其他问题,需要具体问题,具体分析

15.MV_E_NETER 0x80000206 网络相关错误

解析:-2147483130/0x80000206

此类报错非常常见,主要分以下集中

相机掉线,能够在日志中发现大量的206报错,此时需要去区分掉线原因,结合相机上电时间、心跳时间、相机权限,日志等信息,综合判断

网线异常,导致相机掉线,也需要具体问题分析

16.MV_E_IP_CONFLICT 0x80000221 设备IP冲突

解析:-2147483103/0x80000221,常见于IP设置时,当前ip已经被其他设备使用,需要更换ip重新设置

17.MV_E_USB_READ 0x80000300 读USB出错

解析:-2147482880/0x80000300

USB读取相机信息失败,此类问题较为复制,与USB接口稳定性、线缆长度、电磁环境相关,往往不好分析,可以尝试插拔一下,或者更换USB接口尝试

18.MV_E_USB_WRITE 0x80000301 写USB出错

解析:-2147482879/0x80000301

同0x80000300一样,不好分析,可以尝试插拔一下,或者更换USB接口尝试

19.MV_E_USB_DRIVER 0x80000305 驱动不匹配或者未装驱动

解析: -2147482875/0x80000305

同0x80000300一样,问题复杂,除了更换USB接口外,还可以尝试更换sdk版本

另外一种场景,比较好解决的是,卸载第三方的usb驱动,比如说halcon驱动

20、错误号64:NET_DVR_LOADPLAYERSDKFAILED 64 载入当前目录下 Player Sdk 出错
分析:该问题为解决错误107时间引出,问题应该在文件放置目录不对或者库文件内容有缺失导致;解决方法:与错误107相同,将其库文件放置到指定目录;必要时:检查调用Play的文件中是否引入头文件,可引入头文件如“PlayM4.h”或“plaympeg4.h”尝试解决。

————————————————
版权声明:本文为CSDN博主「吻等离子」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43445867/article/details/126283026

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 海康相机SDK海康威视公司提供的一套用于二次开发的软件开发工具包。使用海康相机SDK可以让开发者更加方便地集成和应用海康相机的功能。 首先,使用海康相机SDK进行C语言开发,需要先准备相应的开发环境,包括安装相机的驱动程序和SDK。安装完成后,可以通过编写C语言程序来调用SDK提供的接口实现相机的操作和控制。 在二次开发过程中,可以利用SDK提供的函数和接口,实现对相机的图像采集、图像处理、图像保存等功能。通过调用SDK提供的函数,可以实现相机参数的设置、视频流的获取、图像的采集和控制等操作。 此外,海康相机SDK还提供了一些实用的功能函数,比如图像导出、图像处理、图像匹配等,这些功能可以帮助开发者更加高效地处理相机的图像数据。 总之,海康相机SDK的二次开发c可以实现对海康相机功能的深入应用和扩展。通过使用SDK提供的接口和函数,开发者可以方便地实现相机的各种操作和控制,实现更加丰富的相机应用。 ### 回答2: 海康相机SDK是一套用于二次开发的工具包,具有丰富的功能和接口,可以用于编写海康相机相关的应用程序。 开发海康相机SDK的C语言接口是一种常用的开发方式。通过使用C语言接口,开发者可以方便地与相机进行通信、控制和数据交换。 在二次开发海康相机SDK时,首先需要搭建开发环境。这包括安装相机SDK,配置开发工具,编译环境等。接下来,可以通过调用SDK提供的接口来实现自己想要的功能。例如,可以调用接口来连接相机、进行图像采集、设置相机参数、进行图像处理等操作。 在编写代码的过程中,需要熟悉SDK提供的接口文档,了解每个接口的功能和参数。同时,根据自己的需求,可以使用不同的接口进行代码编写。在编写代码时,需要注意接口的调用顺序和参数的设置,确保代码的正确性和稳定性。 除了基本的功能接口外,海康相机SDK还提供了其他的扩展功能。例如,可以通过SDK提供的接口来实现图像识别、运动检测、人脸识别等高级功能。 总之,通过使用海康相机SDK进行二次开发,可以快速而有效地开发出符合自己需求的相机应用程序。无论是进行图像采集、监控、人脸识别等应用,海康相机SDK都能提供强大的支持,为开发者节省时间和精力,实现更多的功能。 ### 回答3: 海康相机SDK是一套用于二次开发的工具包,主要针对海康相机进行开发。C语言是一种常用的编程语言,可以用于开发各种应用程序。通过使用海康相机SDK进行C语言二次开发,可以实现对相机的控制、图像采集、图像处理等功能。 首先,我们需要在开发环境中安装海康相机SDK,并配置好相应的开发工具。然后,我们可以使用C语言编写代码来调用SDK提供的接口函数,实现对相机的各种操作。这些接口函数包括相机的初始化、打开、关闭、设置参数、触发采集、获取图像数据等。 在进行二次开发时,我们可以根据具体需求选择适合的接口函数进行调用,实现自己想要的功能。例如,如果我们想要实现图像采集功能,可以使用SDK提供的接口函数来启动相机,设置采集参数,然后通过循环获取图像数据进行处理或保存。 此外,海康相机SDK还提供了一些辅助功能,如图像显示、图像保存、图像处理等。我们可以利用SDK提供的函数来实现这些功能,以满足自己的需求。 总之,通过海康相机SDK的二次开发,我们可以使用C语言来控制海康相机,并实现各种功能。这为我们开发相机应用程序提供了丰富的工具和接口,并且可以根据具体需求进行定制。同时,掌握好C语言的基本语法和海康相机SDK的相关知识,对于进行二次开发将会有很大的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值