Tofu User Manual
  • 中文
    • 简介
    • Tofu系列产品展示
    • AI云台相机与吊舱产品
    • 模块级产品介绍
      • Tofu3产品介绍
      • Tofu5s产品介绍
      • Tofu5m产品介绍
      • Tofu6S高速AI (受限支持)
      • Mini串口服务器产品介绍
      • 网络交换板产品介绍
    • 快速应用
      • 软件安装
      • 设备连接
      • 视频拉流地址配置
      • 各接口协议说明
    • 客户端下载与使用说明
      • 多机版客户端下载与使用说明
      • 多机版软件键盘快捷键
      • 触控版客户端下载与使用说明
    • 硬件使用说明
      • 线缆接口说明
      • Tofu3硬件使用指南
        • 变焦可见光一体机连接
        • 无人机吊舱连接
        • 变焦热红外连接
        • 双光相机连接
      • Tofu5硬件使用指南
      • Tofu6S高速AI硬件使用指南
      • 云台接口与协议/调参说明
    • 通信协议
      • PELCO-D云台控制与VISCA镜头控制协议
      • PelcoD非标协议高精度控制
      • LPP无级变速云台控制协议说明
      • 跨平台网络通信协议
      • 串口控制与报警指令
    • 第三方相机与镜头要求
      • 第三方变焦镜头接口要求
      • 第三方热红外数字接口要求
    • 公网端口映射说明
    • 常见问题解答与错误码查询
    • 可更换配件表
    • 销售与售后服务条款
    • 联系方式
  • English
    • Tofu Quick Start Guide
    • MulDev Software User Manual
    • SiDev Software User Manual
    • Network protocols for VMS
    • Tofu FAQ & Error Code List
Powered by GitBook
On this page
  • 1. 简介
  • 2. PV通信协议
  • 3. JSON通信协议
  • 4. JSON帧内容说明
  • 4.1 服务器端到客户端帧内容
  • 4.2 客户端到服务器端帧内容
  • 4.3 客户端查询图像参数信息
  • 4.4 客户端设置目标检测区域
  • 4.5 客户端设置显示模式
  • 4.6 客户端设置算法模型
  • 5. ACK与心跳帧
  • 5.1 ACK帧
  • 5.2 心跳帧
  1. 中文
  2. 通信协议

跨平台网络通信协议

PreviousLPP无级变速云台控制协议说明Next串口控制与报警指令

Last updated 11 months ago

通信协议测试程序与源码下载地址: 提取码:LITT


1. 简介

本协议中约定AI端与操控端、AI端与吊舱之间的通信方式与协议。

注意,本协议中所指的吊舱专指Tofu型号吊舱,其他吊舱与云台不适用PV协议通信方式。

操控端使用任何操作系统均可采用此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端的设备均需要符合心跳帧规则。

2. PV通信协议

AI端与吊舱采用PV协议通信,其中云台运动与查询相关指令采用PelcoD协议,镜头变倍、聚焦、查询相关指令采用VISCA协议。

3. JSON通信协议

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

4. JSON帧内容说明

4.1 服务器端到客户端帧内容

AI运行过程信息推送

JSON示例:

{
  "ControlType": "AIInfo",
  "WorkMode": 1,
  "ObjectCount": 2,
  "Object": {
    "01": {
      "Class": 161,
      "Points": {
        "Left": 100,
        "Top": 100,
        "Right": 200,
        "Bottom": 200
      }
    },
    "02": {
      "Class": 162,
      "Points": {
        "Left": 300,
        "Top": 100,
        "Right": 400,
        "Bottom": 200
      }
    }
  }
}

在跟踪过程中JSON示例:

{ "ControlType": "AIInfo",
  "WorkMode": 2,
  "ObjectCount": 1,
  "Object": {
    "01": {
      "Class": 177,
      "Points": {
        "Left": 220,
        "Top": 450,
        "Right": 250,
        "Bottom": 490
      }
    }
  }
}

状态帧:倍率与云台角度推送

Key

名称

Value

类型

备注

ControlType

控制类型

ZoomInfo

String

ZoomInfo

镜头倍率

精确到小数点后一位

Double

PTZInfoH

云台横向角度

精确到小数点后一位

Double

PTZInfoV

云台垂直角度

精确到小数点后一位

Double

LaserRange

测距

精确到小数点后一位

Double

CamShowMode

相机显示模式

0:彩色

1:黑白

Int

JSON示例:

{
  "ControlType": "ZoomInfo",
  "ZoomInfo": 3.6,
  "PTZInfoH": -50.3,
  "PTZInfoV": 16.4,
  "LaserRange": 810.0,
  "CamShowMode":0
}

4.2 客户端到服务器端帧内容

控制指令:工作模式切换

JSON示例:

{
  "ControlType": "SetWorkMode",
  "SetWorkMode": 1
}

P2Track信息仅在点选跟踪模式与波门跟踪模式下输入,点选跟踪需要提供点击的坐标,如果坐标在识别到的目标区域内即会锁定跟踪。

波门跟踪提供的是中心坐标与跟踪框宽度(高度)信息。

JSON示例:

{
  "ControlType": "SetWorkMode",
  "SetWorkMode": 4
  “P2Track”:{
    “Center”:{
       “X”:310
       “Y”:660
    }
    “Distance”:64
  }
}

控制指令:透传PELCO-D/VISCA

JSON示例:

{
  "ControlType": "SerialControl",
  "SerialType": "PELCO_D",
  "SerialData": {
    "Lens": 7,
    "Data": "FF01000800FF08"
  }
}

4.3 客户端查询图像参数信息

客户帧发送格式:

查询信息反馈:

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示例:

{
  "ControlType": " ImageSetting",
  " ImageSize ": 0,
  " ImageBit ": 4096,
  " ImageCode ": 0
}

4.4 客户端设置目标检测区域

设置目标检测区域

JSON示例:

1.设置检测区域:

{
      "ControlType": "SetAreaDot",
      "WarnArea": {
            "AreaItem": 1,
            "AreaPoint": [
                  {
                       "X": 120,
                       "Y": 100
                  }, {
                       "X": 310,
                       "Y": 100
                  }, {
                       "X": 310,
                       "Y": 360
                  }, {
                       "X": 120,
                       "Y": 360
                  }
            ]
      }
}

2.取消检测区域:

{
      "ControlType": "SetAreaDot",
      "WarnArea": {
            "AreaItem": 0
      }
}

4.5 客户端设置显示模式

Key

名称

Value

类型

备注

ControlType

控制类型

PipShowSetting

String

PipShow

显示类型

0:大图可见光,

小图红外

1:红外

2:可见光

3:融合

16:大图红外,

小图可见光

Int

非双光设备不支持此协议

JSON示例:

{
  "ControlType": " PipShowSetting ",
  " PipShow ": 0
}

4.6 客户端设置算法模型

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示例:

{
  "ControlType": "ModelSetting",
  "Model": 3
}

5. ACK与心跳帧

5.1 ACK帧

服务器端与客户端均要在收到帧后进行ACK回复。如果15秒内没有ACK则会服务器会强制下线客户端,客户端需重新连接服务器。

标识码

标识码

帧类型

帧长度

状态码

1Byte

1Byte

1Byte

4Byte

2Byte

0xEC

0x91

0x12

0x00 00 00 02

0x00 XX

状态码

描述

0x00 00

执行正常

0x00 01

包不完整

0x00 02

协议内容错误

5.2 心跳帧

标识码

标识码

帧类型

帧长度

1Byte

1Byte

1Byte

4Byte

0xEC

0x91

0x11

0x00 00 00 00

客户端在15秒之内需要给服务器端发送心跳帧,当服务器收到客户端心跳帧后,将在1s内回复心跳,若客户端超时未收到回复,客户端需重新发送该帧。

当服务器连续15s内未收到客户端的心跳帧时,服务器将判定客户端已自动离线,将停止数据发送和接收。

当客户端连续15s内未收到服务器回复时,应判定本次连接已被中断,需重新连接。

通信不包含其他指令之外的数据,直接通过网络端口发送接收即可。此处列举几个常用协议指令,完整协议请参考 文档。

PelcoD与VISCA指令协议详见,。

PelcoD云台控制与VISCA镜头控制协议
PELCO-D云台控制与VISCA镜头控制协议
点击下载