摘要

网络SDK作为和设备交互的基础组件,存在大量的集成用户接入各个产品线的设备,使用中由于客户端输入或设备问题往往会有各种各样的错误码产生,本文针对常见的错误进行梳理并给出排查建议和排查步骤,以便于问题能够快速定位解决。

问题分类

常见的错误往往是由于客户端的输入或者操作导致设备判定返回了错误或网络异常导致错误。因此把问题分为两类:设备判定的错误和网络错误

设备判定的错误

设备判定的错误通常是客户端传入的值设备判定为非法或操作的命令设备判定为异常。该类问题排查思路相近,排查步骤一致,下表进行了梳理。

表1:设备判定的错误汇总
SDK错误值 对应设备返回的错误值 错误类型 错误信息 排查建议
11 14(对应十六进制值:0x0e,抓包过滤条件:tcp.payload[8:4] == 00:00:00:0e) NET_DVR_NETWORK_ERRORDATA 传送的数据有误。发送给设备或者从设备接收到的数据错误,如远程参数配置时输入设备不支持的值。 通常为客户端下发的数据,设备判定为有误,建议客户端检测传入的数值。如不能解决需由设备同事介入排查。
23 13(对应十六进制值:0x0d,抓包过滤条件:tcp.payload[8:4] == 00:00:00:0d) NET_DVR_NOSUPPORT 设备不支持。 通常为设备不支持该操作,如需进一步确认,需由设备同事介入排查。
29 33(对应十六进制值:0x21,抓包过滤条件:tcp.payload[8:4] == 00:00:00:21) NET_DVR_DVROPRATEFAILED 设备操作失败。 通常为设备操作失败,如需进一步确认,需由设备同事介入排查。
28 32(对应十六进制值:0x20,抓包过滤条件:tcp.payload[8:4] == 00:00:00:20) NET_DVR_DVRNORESOURCE 设备资源不足。 通常在布防时出现,由于设备布防路数限制通常为10路(不同设备上限不同),超过此限制时将会出现该错误。如需进一步确认,需由设备同事介入排查。
4 7(对应十六进制值:0x7,抓包过滤条件:tcp.payload[8:4] == 00:00:00:07) NET_DVR_CHANNEL_ERROR 通道号错误。设备通道分模拟通道和数字通道(IP通道),NET_DVR_Login_V40登录设备成功之后会返回设备支持的通道个数和起始通道号取值,详见“通道和通道号号相关说明”。 通常为客户端传入的值为非法值,客户端需检查传入的通道号数值。如需进一步确认,需由设备同事介入排查。
1 3(对应十六进制值:0x3,抓包过滤条件:tcp.payload[8:4] == 00:00:00:03) NET_DVR_PASSWORD_ERROR 用户名密码错误。注册时输入的用户名或者密码错误。 通常为输入的用户名或密码错误导致,客户端需检查传入的用户名密码。如需进一步确认,需由设备同事介入排查。
13 5(对应十六进制值:0x5,抓包过滤条件:tcp.payload[8:4] == 00:00:00:05) NET_DVR_OPERNOPERMIT 无此权限。用户对某个功能模块的权限,例如无预览权限用户预览返回此错误。 通常为用户权限受限,建议增加用户权限或使用超级用户尝试。如需进一步确认,需由设备同事介入排查。
排查步骤
1、 获取出现错误的网络抓包文件及出现错误的时间点(通常由客户端调用的日志中可以看到)
2、 使用wireshark根据对应的错误码过滤出失败的交互报文,如下以“设备不支持”的错误为例,说明抓包查看方式:
1) 输入“设备不支持”的抓包过滤条件tcp.payload[8:4] == 00:00:00:0d
2) 过滤出对应抓包后追踪该TCP流
3) 确认设备返回的状态值即为过滤的00:00:00:0d
4) 查看该TCP流中客户端发送的命令字为00:09:01:02,并与设备端同事确认该命令字是否为不支持

最后修改:2022 年 04 月 27 日 08 : 02 PM
如果觉得我的文章对你有用,请随意赞赏