跨平台网络通信协议
Last updated
Last updated
通信协议测试程序与源码下载地址: 提取码:LITT
本协议中约定AI端与操控端、AI端与吊舱之间的通信方式与协议。
操控端使用任何操作系统均可采用此JSON协议,本协议对平台无限制,可用于客户端软件的二次开发。
AI端在运行过程中对云台、镜头直接控制,AI端作为Server,吊舱与镜头控制端作为Client,AI端口号为8090。采用PelcoD协议与VISCA协议,以下简称PV协议。控制与查询周期默认为200ms一次。
操控端中支持AI端的算法模式切换与参数配置;识别、跟踪过程中信息接收;云台与镜头的手动控制,AI端作为Server,操控端作为Client,AI端口号为8089。采用JSON协议。所有JSON数据上下帧间隔不得小于300毫秒。
AI端采用 RTSP 协议传输视频,视频默认采用H.264编码,端口号为554。当AI相机节点开机时即启动RTSP Server等待视频点播。操控终端需要查看视频时,通过 RTSP URL 的形式点播视频。
网络链路中所有连接AI端的设备均需要符合心跳帧规则。
AI端与吊舱采用PV协议通信,其中云台运动与查询相关指令采用PelcoD协议,镜头变倍、聚焦、查询相关指令采用VISCA协议。
JSON通信协议适用于客户端与AI端之间的通信,用于控制与配置AI端,获取AI端的过程消息,手动控制云台与镜头。
以下数据帧说明中 S代表Server(AI模块),C代表客户端。
表格 1 协议格式
标识码1
标识码2
帧类型
帧长度
帧内容
1Byte
1Byte
1Byte
4Byte
N
0xEC
0x91
见帧类型表
帧载荷长度
JSON
图像抓拍协议说明:
图像抓拍为每个目标单独组包。例:该图像中3个目标,协议将发送三个独立协议包。
位置:目标在原始图像中的坐标位置,其中包括左(2Byte)、上(2Byte)、宽(2Byte)、高(2Byte)。
帧长度:JPEG的图像大小。
帧校验:0xEB+0x92+0x04+帧长度。
帧类型
类型名
备注
0x01(设备到客户端)
状态帧
JSON
0x03(客户端到设备)
控制指令
JSON
0x04
图像抓拍
JPEG
0x05
图像信息查询
0x06
设置目标检测区域
JSON
0x07(客户端到设备)
设置显示模式
JSON
0x08(客户端到设备)
设置算法模型
JSON
0x11
心跳
0x12
ACK
AI运行过程信息推送
JSON示例:
在跟踪过程中JSON示例:
状态帧:倍率与云台角度推送
Key
名称
Value
类型
备注
ControlType
控制类型
ZoomInfo
String
ZoomInfo
镜头倍率
精确到小数点后一位
Double
PTZInfoH
云台横向角度
精确到小数点后一位
Double
PTZInfoV
云台垂直角度
精确到小数点后一位
Double
LaserRange
测距
精确到小数点后一位
Double
CamShowMode
相机显示模式
0:彩色
1:黑白
Int
JSON示例:
控制指令:工作模式切换
JSON示例:
JSON示例:
控制指令:透传PELCO-D/VISCA
JSON示例:
客户帧发送格式:
查询信息反馈:
Key
名称
Value
类型
备注
ControlType
控制类型
ImageSetting
String
ImageSize
图像分辨率
0:1080P 1:720P
2:D1 3:1440P
int
ImageBit
图像码率
512~4096
Int
单位为Kb/S
ImageCode
编码格式
0:H264
1:H265
int
JSON示例:
设置目标检测区域
JSON示例:
1.设置检测区域:
2.取消检测区域:
Key
名称
Value
类型
备注
ControlType
控制类型
PipShowSetting
String
PipShow
显示类型
0:大图可见光,
小图红外
1:红外
2:可见光
3:融合
16:大图红外,
小图可见光
Int
非双光设备不支持此协议
JSON示例:
Key
名称
Value
类型
备注
ControlType
控制类型
ModelSetting
String
Model
算法模型
0:可见光混合模型
1:红外混合模型
2-人车识别
3-船识别
4-无人机识别
5-飞机,直升机识别
6-鸟识别
Int
1)2,3,4模型为标准提供的模型,0,1,5,6模型为非标准提供的模型,详情请咨询。
2)0,1模型为混合模型,即识别类别为4类或5类,波段与模型不匹配时自动切换成匹配的混合模型。
JSON示例:
服务器端与客户端均要在收到帧后进行ACK回复。如果15秒内没有ACK则会服务器会强制下线客户端,客户端需重新连接服务器。
标识码
标识码
帧类型
帧长度
状态码
1Byte
1Byte
1Byte
4Byte
2Byte
0xEC
0x91
0x12
0x00 00 00 02
0x00 XX
状态码
描述
0x00 00
执行正常
0x00 01
包不完整
0x00 02
协议内容错误
标识码
标识码
帧类型
帧长度
1Byte
1Byte
1Byte
4Byte
0xEC
0x91
0x11
0x00 00 00 00
客户端在15秒之内需要给服务器端发送心跳帧,当服务器收到客户端心跳帧后,将在1s内回复心跳,若客户端超时未收到回复,客户端需重新发送该帧。
当服务器连续15s内未收到客户端的心跳帧时,服务器将判定客户端已自动离线,将停止数据发送和接收。
当客户端连续15s内未收到服务器回复时,应判定本次连接已被中断,需重新连接。
通信不包含其他指令之外的数据,直接通过网络端口发送接收即可。此处列举几个常用协议指令,完整协议请参考 文档。
PelcoD与VISCA指令协议详见,。