图漾相机错误码解析

文章目录

  • 1.相机错误码汇总
  • 2.常见报错码
    • 2.1 -1001报错
      • 2.1.1 没有找到相机
      • 2.1.2 SDK没有进行初始化
      • 2.1.3 相机不支持Histo属性
    • 2.2 -1005报错
      • 2.2.1 跨网段打开相机
      • 2.2.2 旧版本SDK在软触发失败后提示的报错
      • 2.2.3 相机初始化上电时报错
      • 2.2.4 USB相机被占用
    • 2.3 -1009报错
      • 2.3.1 相机本身不支持改属性
    • 2.4 -1014报错
      • 2.4.1 超时时间设置较小
      • 2.4.2 相机丢帧
    • 2.5 -1016报错
      • 2.5.1 SDK调用顺序逻辑有问题
      • 2.5.2 相机在StartCapture后处于busy状态
      • 2.5.3 相机异常关闭时,再次刷新打开相机,提示报错
    • 2.6 -1018报错
      • 2.6.1 网络因素造成的丢帧
    • 2.7 -1024报错
  • 3.不常见错误
    • 3.1 -1003报错
    • 3.2 -1004报错
    • 3.3 -1008报错
  • 4.综合问题
    • 4.1 相机供电原因,造成的相机异常
      • 4.1.1 供电设备工作在限流模式

1.相机错误码汇总

1.相机自身常见的错误码如下,具体含义稍后阐述:

 TY_STATUS_OK                = 0,   //相机正常工作TY_STATUS_ERROR             = -1001,//相机状态异常TY_STATUS_NOT_INITED        = -1002, //相机未初始化TY_STATUS_NOT_IMPLEMENTED   = -1003, //相机未实现TY_STATUS_NOT_PERMITTED     = -1004, //状态不允许TY_STATUS_DEVICE_ERROR      = -1005, //相机设备错误TY_STATUS_INVALID_PARAMETER = -1006, //非法的参数TY_STATUS_INVALID_HANDLE    = -1007,//非法的设备句柄TY_STATUS_INVALID_COMPONENT = -1008,//非法的设备组件TY_STATUS_INVALID_FEATURE   = -1009,//非法的属性TY_STATUS_WRONG_TYPE        = -1010,//错误类型TY_STATUS_WRONG_SIZE        = -1011,//错误的尺寸TY_STATUS_OUT_OF_MEMORY     = -1012,//超出memoryTY_STATUS_OUT_OF_RANGE      = -1013,//超出范围TY_STATUS_TIMEOUT           = -1014,//设备取图超时TY_STATUS_WRONG_MODE        = -1015,//错误的模式TY_STATUS_BUSY              = -1016,//系统处于忙碌中TY_STATUS_IDLE              = -1017,//相机未回到idle状态TY_STATUS_NO_DATA           = -1018,//未取到完整图像数据TY_STATUS_NO_BUFFER         = -1019,//buffer中无数据TY_STATUS_NULL_POINTER      = -1020,//空指针TY_STATUS_READONLY_FEATURE  = -1021,//只读的属性TY_STATUS_INVALID_DESCRIPTOR= -1022,//非法描述TY_STATUS_INVALID_INTERFACE = -1023, //非法的接口TY_STATUS_FIRMWARE_ERROR    = -1024, //固件相关错误/* ret_code from remote device */TY_STATUS_DEV_EPERM         = -1,//operation not permittedTY_STATUS_DEV_EIO           = -5,// I/O erTY_STATUS_DEV_ENOMEM        = -12,//not enough memoryTY_STATUS_DEV_EBUSY         = -16, //device is busy,属于相机内部busyTY_STATUS_DEV_EINVAL        = -22,//相机内部初始化异常/* endof ret_code from remote device */

而在打开相机的过程中,遇到-1024报错,一定要打起十二分的精神,具体错误码含义如下:

 TY_FW_ERRORCODE_CAM0_NOT_DETECTED       = 0x00000001, //没有检测到左IRTY_FW_ERRORCODE_CAM1_NOT_DETECTED       = 0x00000002,//没有检测到右IRTY_FW_ERRORCODE_CAM2_NOT_DETECTED       = 0x00000004,//没有检测到Color相机TY_FW_ERRORCODE_POE_NOT_INIT            = 0x00000008,//POE初始化异常TY_FW_ERRORCODE_RECMAP_NOT_CORRECT      = 0x00000010,//极线校正错误RecMap errorTY_FW_ERRORCODE_LOOKUPTABLE_NOT_CORRECT = 0x00000020,//视差匹配错误 Disparity error TY_FW_ERRORCODE_DRV8899_NOT_INIT        = 0x00000040,//舵机初始化异常 Motor init erroTY_FW_ERRORCODE_FOC_START_ERR           = 0x00000080,//舵机开启失败 Motor start failedTY_FW_ERRORCODE_CONFIG_NOT_FOUND        = 0x00010000,//相机内部缺失config文件 Config file not existTY_FW_ERRORCODE_CONFIG_NOT_CORRECT      = 0x00020000,//相机内部config文件损坏 Broken Config fileTY_FW_ERRORCODE_XML_NOT_FOUND           = 0x00040000,//相机内部缺失xml文件 XML file not existTY_FW_ERRORCODE_XML_NOT_CORRECT         = 0x00080000,//解析xml文件失败 XML Parse errTY_FW_ERRORCODE_XML_OVERRIDE_FAILED     = 0x00100000,//非法的xml文件,只可用于debug测试 Illegal XML file overrided Only Used in Debug Mode!"      TY_FW_ERRORCODE_CAM_INIT_FAILED         = 0x00200000,//初始化相机默认属性失败 Init default cam feature failed!TY_FW_ERRORCODE_LASER_INIT_FAILED       = 0x00400000,//初始化相机Laser属性失败 Init default laser feature failed!

在这里插入图片描述

2.常见报错码

2.1 -1001报错

  相机出现-1001报错,可能的原因如下:

2.1.1 没有找到相机

解决措施:
  首先需要检查下相机是否正常供电,状态指示灯是否正常,相机状态指示灯如下图所示,同时通过PercipioViewer软件能否正常枚举到相机。
在这里插入图片描述

2.1.2 SDK没有进行初始化

以C++版本SDK为例,需要完整调用以下两个接口,否则容易在初始化枚举设备时出现-1001报错

  LOGD("=== Init lib");ASSERT_OK( TYInitLib() );TY_VERSION_INFO ver;ASSERT_OK( TYLibVersion(&ver) );LOGD("     - lib version: %d.%d.%d", ver.major, ver.minor, ver.patch);

2.1.3 相机不支持Histo属性

原因:不支持Histo属性的相机,在startCapture时上报some error -1001
在这里插入图片描述

2.2 -1005报错

2.2.1 跨网段打开相机

原因1
   相机的 IP 地址与上位机 IP 地址不在同一网段,若相机的 IP 地址与上位机 IP 地址不在同一网段,上位机可跨网段发现该相机,但不能打开。此时,可修改相机 IP 地址或上位机IP 地址。

解决措施1
  相机出厂默认IP为169.254.X.X网段,如果是第一次连接图漾相机,建议先将电脑上网络适配器改为自动IP,通过PeripioViewer连接一下相机,之后将电脑上网络适配器改为静态IP后,再将相机设置为静态IP。

原因2
   之前在A电脑上将旧相机IP设置为192.168.1.X网段,在B电脑(与A电脑不在同一个网段)上打开相机,提示-1005报错。

解决措施2
   使用官网最新的PercipioViewer软件打开相机,进行更改IP操作,具体步骤如下:
   图漾相机更改IP操作

2.2.2 旧版本SDK在软触发失败后提示的报错

原因
  3.6.53版本之前的SDK,触发超时错误码是-1005
在这里插入图片描述
解决措施
  升级一下相机SDK或者旧SDK里面规避一下此问题。

 if (m_run_model == CameraModel::TRIGGER && m_get_data){int isok=TYSendSoftTrigger(hDevice);if (TY_STATUS_OK!=isok){//trigger muti timeLogError("soft trigger fail!");LogInfo("camera return :"<<isok)if (isok==-1005){ASSERT_OK(TYStopCapture(hDevice));std::this_thread::sleep_for(std::chrono::milliseconds(600));ASSERT_OK(TYStartCapture(hDevice));continue;}else{std::this_thread::sleep_for(std::chrono::milliseconds(200));continue;}};}

2.2.3 相机初始化上电时报错

原因
上电到初始化完成整个过程约40s,初始化完成后,Power灯以 1HZ 频率闪烁,Ethernet 灯常亮(表示相机为千兆网),Act 灯会在有数据传输时闪烁。如果在刚上电的时候,就打开相机,会提示-1005报错,这个跟相机底层枚举机制有关系,初始上电时,建议加一些延时。
在这里插入图片描述

2.2.4 USB相机被占用

  请排查是否有其他进程占用了该 USB 相机(如 Percipio Viewer 工具)。若是其他进程占用了该相机,关闭进程即可。

2.3 -1009报错

2.3.1 相机本身不支持改属性

原因
  如TM461-E2相机本身不支持触发,如果SDK设置触发模式,此时会报错

解决措施
  屏蔽对应报错代码。

2.4 -1014报错

2.4.1 超时时间设置较小

原因
  程序中 TYFetchFrame 中的超时时间设置过短。

解决措施
  请根据相机的出图延迟时间合理设置超时时间,推荐5000以上,单位:毫秒。

TYFetchFrame(hDevice, &frame, 5000);

2.4.2 相机丢帧

原因1
  相机进入百兆网时,Ethernet 灯处于熄灭状态,如下图所示:

解决措施1
  1.首先检测硬件配置,排查顺序依次是网口->网线->交换机/网卡配置
  2.尤其是PS800/802/FM855/815/TL430等使用X-Code线缆的相机,一定要注意检查Pin针是否歪了,如下图所示
  3.其次确认所用网线是否为CAT5E及以上的网线(千兆网线)。
  4.确认是否是独享带宽交换机,同时开启了交换机Web功能,开启Web功能,不同交换机型号不太一样,以 TP-LINK TL-SG2210PE 为例介绍如何开启流控,具体操作请参考下面链接
  开启交换机流控功能
  5.如果相机另外一端连接的是网卡,请参考下面链接第四章节,进行网卡设置。
   Windows环境网卡设置

原因2
  数据量太大

解决措施2
  数据量太大,上位机处理能力不足。建议更换性能好的上位机或者减少数据量。

原因3
  SDK中未开启网络重传
解决措施3

LOGD("=== resend: %d", resend);if (resend) {bool hasResend;ASSERT_OK(TYHasFeature(hDevice, TY_COMPONENT_DEVICE, TY_BOOL_GVSP_RESEND, &hasResend));if (hasResend) {LOGD("=== Open resend");ASSERT_OK(TYSetBool(hDevice, TY_COMPONENT_DEVICE, TY_BOOL_GVSP_RESEND, true));}else {LOGD("=== Not support feature TY_BOOL_GVSP_RESEND");}}

原因4
  一台上位机同时运行多台相机
解决措施4
  打开多相机瞬间CPU升高,相机一定时间内没有收到心跳包。

2.5 -1016报错

2.5.1 SDK调用顺序逻辑有问题

原因
  配置相机属性时,报错-1016
解决措施
  需要在TYStartCapture() 之前配置的参数,写在startcapture之后。
  如设置相机图像的分辨率、设置相机的工作模式等。
  具体参见相机fetch_config.xml文件。若writableAtRun≠"1",则必须写在 TYStartCapture() 之前。

2.5.2 相机在StartCapture后处于busy状态

原因
  发送软触发命令时存在-1016的报错。

个别相机如:TL460-S1-E1、FM851-S1-E2内部带算力的相机,在相机TYStartCapture()之后,会有一段busy时间,这个时间内发送软触发命令,会造成-1016报错。

解决措施
  1.增加一段延迟时间,MSLEEP(7000);
  2.将代码进行修改,如下:

while(TY_STATUS_BUSY == TYSendSoftTrigger(hDevice));

2.5.3 相机异常关闭时,再次刷新打开相机,提示报错

现象
  相机运行时,拔掉相机后点击刷新列表,列表中相机状态变为-1016,相机重连后,再点击刷新列表,错误码不消失。

测试方法

1.连接一台相机(tof或者双目相机)
2.使用PV软件打开相机并使相机采集图像
3.拔掉相机的电源,点击刷新列表

原因
  相机掉线之后,SDK 接口TYCloseDevice无法和相机正常通讯提前返回了,导致相机的is_running flag不会被重置,后面重新打开此相机,就会出现busy错误。

解决措施
  将相机SDK版本升级至3.6.66及其以上版本

2.6 -1018报错

2.6.1 网络因素造成的丢帧

原因1
  网络波动,造成的丢帧,如日志中出现DropImage或者Ignoring frame。
在这里插入图片描述
原因2
  旧版本的SDK(3.6.48版本之前),某次sendSoftTrigger超时,但是未正常处理(只检测了busy),或者是软触发指令没有下发下去,造成取不到图 。

2.7 -1024报错

   1.打印error code,进行对比,确定问题发生的原因,将TYOpenDevice()接口调用修改如下:

TY_FW_ERRORCODE fw_err;
ASSERT_OK( TYOpenDevice(hIface, selectedDev.id, &hDevice,&fw_err) );
LOGD("%x", fw_err);

  2.运行程序,读出fw_error 后进行对照下表找出对应的错误。

cam0表示left ir,cam1表示right ir,cam2表示color。

  3.如出现TY_FW_ERRORCODE_POE_NOT_INIT 错误,请确认PoE的型号是否符合协议标准。

3.不常见错误

3.1 -1003报错

现象
  使用open-close 测试 TY_BOOL_GVSP_RESEND ,概率上报Assert failed: error -1003(not implemented)
原因
  增加Feature的成员变量,TYHasFeature
未进行初始化,代码自动生成的feature未调用SetHasPvalue,此成员变量为随机值,若为true, 则会调用trySetCamPValue,返回TY_STATUS_NOT_IMPLEMENTED。
解决措施:
  升级相机SDK版本。

3.2 -1004报错

现象
  早期的PM805/806系列相机,在代码里设置scale_unit属性,提示报错
原因
  早期的PM805/806系列相机,scale_unit属性是可读不可写,在SDK进行属性设置时,会报错。

TYSetFloat(hDevice,TY COMPONENT DEPTH CAM,TY FLOAT SCALE UNIT,1))

解决措施:
  联系图漾技术,升级相机固件版本。

3.3 -1008报错

现象
  运行没有RGB的相机时,提示"-1008"报错
在这里插入图片描述
原因
  一些相机里面有RGB组件,在走到设置RGB组件和属性时,产生报错。

解决措施:
  代码里加个判断,如果有color,再去读color的标定数据

在这里插入图片描述

4.综合问题

4.1 相机供电原因,造成的相机异常

4.1.1 供电设备工作在限流模式

  一些客户在给3D相机供电时,会使用到如下供电设施给相机供电,如下图:
在这里插入图片描述
现象
  在相机工作一阵子后,出现工作不稳定的现象
原因
  这种供电设施,正常模式工作在限流模式,如果想提高电压,需要先提升电流。
解决措施:
  建议使用明纬等常规工业开关电源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/81892.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

18. 结合Selenium和YAML对页面继承对象PO的改造

18. 结合Selenium和YAML对页面继承对象PO的改造 一、架构改造核心思路 1.1 改造前后对比 #mermaid-svg-ziagMhNLS5fIFWrx {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ziagMhNLS5fIFWrx .error-icon{fill:#5522…

将VMware上的虚拟机和当前电脑上的Wifi网卡处在同一个局域网下,实现同一个局域网下实现共享

什么是桥接模式&#xff1a;桥接模式&#xff08;Bridging Mode&#xff09;是一种网络连接模式&#xff0c;常用于虚拟机环境中&#xff0c;将虚拟机的虚拟网络适配器直接连接到主机的物理网络适配器上&#xff0c;使虚拟机能够像独立的物理设备一样直接与物理网络通信 1.打开…

gitee错误处理总结

背景 如上图&#xff0c;根据图片中的 Git 错误提示&#xff0c;我们遇到的问题是 ​本地分支落后于远程分支&#xff0c;导致 git push 被拒绝。 ​问题原因​ 远程仓库的 master 分支有其他人推送的新提交&#xff0c;而您的本地 master 分支未同步这些更新&#xff08;即本…

如何提高独立服务器的安全性?

独立服务器相对于其它服务器来说&#xff0c;整体的硬件设备都是独立的同时还有着强大的服务器性能&#xff0c;其中CPU设备能够决定着服务器的运算能力&#xff0c;所以独立服务器的安全性受到企业格外的重视&#xff0c;严重的话会给企业造成巨大的资金损失。 那么&#xff0…

Spark,集群搭建-Standalone

以下是 Spark Standalone 集群搭建 的详细步骤&#xff08;基于 Linux 系统&#xff0c;以伪分布式为例&#xff09;&#xff1a; 一、环境准备 1. 硬件要求 - 至少 2 台节点&#xff08;1 台 Master&#xff0c;1 台 Worker&#xff0c;可扩展&#xff09;。 - 每节点配置…

如何在WordPress中使用ChatGPT

ChatGPT 自 2022 年 11 月问世以来&#xff0c;极大地影响了我们的创作方式。ChatGPT 可以帮助您制作大纲、标题、段落或完整的博客文章&#xff0c;各地的数字创作者都在热衷于使用人工智能&#xff08;AI&#xff09;创建内容。随着人工智能的不断发展&#xff0c;我们看到了…

spring5-配外部文件-spEL-工厂bean-FactoryBean-注解配bean

spring配外部文件 我们先在Spring里配置一个数据源 1.导c3p0包,这里我们先学一下hibernate持久化框架&#xff0c;以后用mybites. <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>5.2.…

GStreamer (三)常⽤插件

常⽤插件 1、Source1.1、filesrc1.2. videotestsrc1.3. v4l2src1.4. rtspsrc和rtspclientsink 2、 Sink2.1. filesink2.2. fakesink2.3. xvimagesink2.4. kmssink2.5. waylandsink2.6. rkximagesink2.7. fpsdisplaysink 3 、视频推流/拉流3.1. 本地推流/拉流3.1.1 USB摄像头3.1…

【EDA软件】【联合Modelsim仿真使用方法】

背景 业界EDA工具仿真功能是必备的&#xff0c;例如Vivado自带仿真工具&#xff0c;且无需联合外部仿真工具&#xff0c;例如MoodelSim。 FUXI工具仿真功能需要联合Modelsim&#xff0c;才能实现仿真功能。 方法一&#xff1a;FUXI联合ModelSim 1 添加testbench文件 新建to…

国产化Excel处理组件Spire.XLS for .NET系列教程:通过 C# 将 TXT 文本转换为 Excel 表格

在数据处理和管理场景中&#xff0c;将原始文本文件&#xff08;TXT&#xff09;高效转换为结构化的 Excel 电子表格是一项常见要求。对于那些需要自动生成报表或者处理日志文件的开发人员而言&#xff0c;借助 C# 实现 TXT 到 Excel 的转换工作&#xff0c;可以简化数据组织和…

DeepSeek 的强化学习优化策略:RLHF 与 DPO 的应用

DeepSeek 的强化学习优化策略&#xff1a;RLHF 与 DPO 的应用 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 DeepSeek 的强化学习优化策略&#xff1a;RLHF 与 DPO 的应用摘要引言技术原理对比1. RLHF&#xff1a…

c: 分号的歧义

最近看到一个关于某些语言里的分号问题&#xff0c;比如下面一个作者就是无意识的每行后面多加了分号导致问题。 其实python的语法可以更好的规避这种潜意识&#xff0c;因为根本就不需要每行后面加分号的意识&#xff0c;也就不需要开发者习惯这种意识。 所以&#xff0c;最后…

Elasticsearch 实战面试题,每个题目都会单独解析

Elasticsearch 在 Java 中最常用的客户端是什么&#xff1f;如何初始化一个 RestHighLevelClient&#xff1f;如何用 Spring Boot 快速集成 Elasticsearch&#xff1f;Spring Data Elasticsearch 如何定义实体类与索引的映射&#xff1f; ES的倒排索引和正排索引的区别及适用场…

拉普拉斯高斯(LoG)滤波器掩模的注意事项

目录 问题&#xff1a; 解答&#xff1a; 一、高斯函数归一化&#xff1a;消除幅度偏差 1. 归一化的定义 2. 为何必须归一化&#xff1f; 二、拉普拉斯系数和为零&#xff1a;抑制直流项干扰 1. 拉普拉斯算子的特性 2. 系数和不为零的后果 三、直流项如何影响零交叉点&…

运维实施35-磁盘管理

了解磁盘 硬盘的接口类型 接口类型发展方向应用场景IDESATA I/II/III个人PC机SCSISAS服务器上 磁盘命名规则 OSIDE(并口)SATA(串口)SCSIRHEL5/dev/hda/dev/sda/dev/sdaRHEL6/dev/sda/dev/sda/dev/sdaRHEL7/dev/sda/dev/sda/dev/sda 磁盘设备的命名 /dev/sda2 s 硬件接口…

API面临哪些风险,如何做好API安全?

API面临的风险 API&#xff08;应用程序编程接口&#xff09;在现代软件开发和集成中扮演着至关重要的角色&#xff0c;但同时也面临着多种安全风险&#xff0c;主要包括以下几个方面&#xff1a; 数据泄露风险&#xff1a; API通常涉及敏感数据的传输和交换&#xff0c;如用…

`application-{env}.yml` 配置文件来实现多环境配置

在 Spring Boot 应用中&#xff0c;使用多套 application-{env}.yml 配置文件来实现多环境配置是一种常见且推荐的做法。这种方式可以帮助你根据不同的环境&#xff08;如开发、测试、生产等&#xff09;加载不同的配置&#xff0c;从而实现环境隔离和灵活配置。以下是如何通过…

野火鲁班猫(arrch64架构debian)从零实现用MobileFaceNet算法进行实时人脸识别(一)conda环境搭建

先安装miniconda wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh chmod x Miniconda3-latest-Linux-aarch64.sh bash Miniconda3-latest-Linux-aarch64.sh source ~/.bashrc conda --version按照MobileFaceNet的github官方指南&#xff0c;需要…

目标检测 Lite-DETR(2023)详细解读

文章目录 迭代高级特征跨尺度融合高效的低层次特征跨尺度融合KDA&#xff1a;Key-aware Deformable Attention 论文翻译&#xff1a; CVPR 2023 | Lite DETR&#xff1a;计算量减少60%&#xff01;高效交错多尺度编码器-CSDN博客 DINO团队的 &#xff08;Lightweight Transfo…

【Git】远程操作

Git 是一个分布式版本控制系统 可以简单理解为&#xff0c;每个人的电脑上都是一个完整的版本库&#xff0c;这样在工作时&#xff0c;就不需要联网 了&#xff0c;因为版本库就在自己的电脑上。 因此&#xff0c; 多个人协作的方式&#xff0c;譬如说甲在自己的电脑上改了文件…