卡口视频监控系统手机APP接入服务器通信协议文档.docx

上传人:b****8 文档编号:28515467 上传时间:2023-07-18 格式:DOCX 页数:100 大小:204.24KB
下载 相关 举报
卡口视频监控系统手机APP接入服务器通信协议文档.docx_第1页
第1页 / 共100页
卡口视频监控系统手机APP接入服务器通信协议文档.docx_第2页
第2页 / 共100页
卡口视频监控系统手机APP接入服务器通信协议文档.docx_第3页
第3页 / 共100页
卡口视频监控系统手机APP接入服务器通信协议文档.docx_第4页
第4页 / 共100页
卡口视频监控系统手机APP接入服务器通信协议文档.docx_第5页
第5页 / 共100页
点击查看更多>>
下载资源
资源描述

卡口视频监控系统手机APP接入服务器通信协议文档.docx

《卡口视频监控系统手机APP接入服务器通信协议文档.docx》由会员分享,可在线阅读,更多相关《卡口视频监控系统手机APP接入服务器通信协议文档.docx(100页珍藏版)》请在冰豆网上搜索。

卡口视频监控系统手机APP接入服务器通信协议文档.docx

卡口视频监控系统手机APP接入服务器通信协议文档

 

卡口视频监控系统

手机APP接入服务器

通信协议文档

 

日期

版本

作者

描述

1.0

目录

1引言3

1.1编写目的3

1.2背景3

1.3定义3

1.4参考资料3

2文档约定3

3系统的结构4

4传输协议4

4.1协议介绍4

4.2协议说明4

4.2.1数据头5

4.2.2数据优化7

4.2.3数据内容9

4.3数据类型11

4.4协议事物12

4.5协议简化定义12

5协议枚举定义12

5.1协议枚举定义值规则说明12

5.2手持终端与中心服务器通信枚举12

5.3卡口设备与中心服务器通信枚举19

5.4通用响应枚举21

6手持终端22

6.1登录22

6.2保持在线23

6.3用户管理24

6.3.1获取用户列表24

6.3.2添加帐号24

6.3.3修改用户25

6.3.1删除帐号25

6.4修改密码25

6.5卡口管理26

6.5.1获取卡口列表26

6.5.2添加卡口设备26

6.5.3修改卡口设备27

6.5.4删除卡口设备27

6.6对讲28

6.6.1发起对讲28

6.6.2收到对讲28

6.6.3结束对讲29

6.6.4对方结束对讲30

6.7实时语音广播30

6.7.1发起广播30

6.7.2结束广播30

6.7.3卡口结束广播31

6.8摄像机参数设置31

6.8.1获取摄像机参数31

6.8.2设置摄像机参数33

6.9摄像机录像设置34

6.9.1获取录像计划34

6.9.2设置录像计划34

6.10摄像机录像设置35

6.10.1获取抓图参数35

6.10.2设置抓图参数36

6.11区域入侵侦测开关36

6.11.1获取区域入侵侦测36

6.11.2设置区域入侵侦测37

6.12摄像机报警38

6.13摄像机状态39

6.13.1摄像机上线39

6.13.2摄像机掉线39

6.14卡口状态39

6.14.1卡口上线39

6.14.2卡口掉线39

6.15订阅设备状态40

6.16取消订阅设备状态40

6.17通知添加卡口设备40

6.18通知删除卡口设备41

6.19获取卡口详细信息41

6.20获取报警录音文件列表41

6.21获取报警录音文件42

6.22上传报警录音文件42

6.23添加报警录音文件42

6.24修改报警录音文件43

6.25删除报警录音文件43

6.26获取广播录音文件列表44

6.27获取广播录音文件44

6.28上传广播录音文件44

6.29添加广播录音文件44

6.30修改广播录音文件45

6.31删除广播录音文件45

6.32卡口报警联动46

6.32.1获取卡口报警联动46

6.32.2获取卡口报警联动录音文件46

6.32.3上传卡口报警联动录音文件47

6.32.4设置卡口报警联动47

6.33文件上传下载47

6.33.1下载文件47

6.33.2上传文件48

6.33.3取消流传输49

6.33.4收到取消流传输49

6.34卡口广播49

6.34.1获取卡口广播49

6.34.2设置卡口广播50

6.34.3获取卡口广播录音文件51

6.34.4上传卡口广播录音文件51

6.35卡口LED显示51

6.35.1获取卡口LED显示配置51

6.34.2设置卡口LED显示配置52

6.36预览卡口视频53

6.36.1开流53

6.36.2关流54

6.37录像查询54

6.37.1查询月录像(查询一个月中那些天有录像)54

6.37.2查询录像详细55

6.38查询报警图片56

6.38.1查询报警图片56

6.38.2获取报警抓图58

6.39录像回放58

6.39.1请求录像回放58

6.39.2快播,慢播,暂停,继续59

6.39.3停止回放59

6.40录像下载60

6.41控制云台60

6.42到预置位60

6.43开关扫描61

6.44获取扫描状态61

6.45获取卡口设备状态62

6.46开关卡口设备电源62

6.47获取气象信息63

7卡口设备63

7.1向卡口注册63

7.2对讲64

7.2.1发起对讲64

7.2.2收到对讲64

7.2.3结束对讲65

7.2.4对方结束对讲66

7.3实时语音广播66

7.3.1手机请求广播66

7.3.2手机挂断广播66

7.4卡口报警联动67

7.4.1获取卡口报警联动67

7.4.2获取卡口报警联动录音文件67

7.5上传下载68

7.5.1收到下载请求68

7.5.2收到上传请求69

7.5.3收到取消流传输70

7.6卡口广播70

7.6.1获取卡口广播70

7.6.2设置卡口广播71

7.6.3获取卡口广播录音文件71

7.6.4上传卡口广播录音文件71

7.7卡口LED显示72

7.7.1获取卡口LED显示配置72

7.7.2设置卡口LED显示配置73

7.8报警通知到卡口74

7.9通知卡口同步时间74

7.10控制云台74

7.11到预置位75

7.12开关扫描75

7.13获取扫描状态76

7.14获取卡口设备状态76

7.15开关卡口设备电源77

7.16获取气象信息77

8网页配置78

8.1网页登录78

1引言

1.1编写目的

1.2背景

1.3定义

列出本文件中用到专门术语的定义和外文首字母组词的原词组。

卡口接入服务器:

卡口设备、IP摄像机,手持终端通过卡口接入服务器处理数据,转发信令,存取数据库,视音频转发。

手持终端:

安卓下开发的一款远程管理前端卡口等。

中心服务器:

卡口接入服务器简写

1.4参考资料

方案资料:

2文档约定

为方便阅读该文档,发起方使用如下所示的图形表示:

响应方,使用另一种图形表示:

3系统的结构

 

4传输协议

数据的传输协议由卡口接入服务器统一约定,各客户端逐步实现协议规范。

4.1协议介绍

目前,实现数据传输协议的设备有手机和卡口设备和IP摄像机,卡口设备、手持终端同卡口接入服务器通信采用DKLPRT(XX实时通信协议)。

当前借鉴RTMP协议的子协议AMF,该协议是Adobe公司的协议,主要用于数据交互和远程过程调用,在功能上与WebService相当。

其特点主要有:

•基于远程的异步方法调用

•数据压缩率高

•支持20种数据类型,满足各种使用场景

•统一格式解析方法

•便于系统扩展

4.2协议说明

手持终端和卡口设备与卡口接入服务器进行数据传输时,每次传输的数据包由数据头和数据内容两部分组成;下面以手持终端登录为例说明协议规则,手持终端向卡口接入服务器发送的数据(以十六进制表示)如下:

030000000000000076000100001300030007436d64547970650600000001000d5472616e73616374696f6e4964110020396531376466663030366236343663363838653863313838656163626135666500064f626a6563741300020008557365724e616d6511000868656c70736f6674000850617373776f7264110006313233343536

上面的数据包含了头和内容两部分,下面分别进行拆分说明。

4.2.1数据头

数据头包含的内容:

03000000000000007600010000

字节数据

类型

字节数

说明

03

byte

3

1

头类型和通道,前两位表示类型,后六位表示通道

00000000

int

0

4

时间戳

00000076

int

118

4

数据大小

0001

short

1

2

消息类型

0000

short

0

2

流ID

第一个字节03包含了两部分信息,即头类型和通道,将03以二进制形式表示为00000011,前两位00表示头类型为0,后六位000011表示通道为3;头类型共有四个值,主要用于对数据头进行优化,降低网络传输流量,这在传输音频和视频信息的时候尤其有用。

头类型详细说明见下表:

说明

0

完整的头数据包(时间戳、数据大小、消息类型、流ID)

1

没有流ID的头数据包

2

只包含时间戳的头数据包

3

空头,即头数据不包含任何信息

对于通道信息,可表示的最大通道数为,有效的通道值为2~63(0和1有特殊用途);协议约定通道等于0或者1时,说明当前通道数不够用,需要进行通道扩充,即没有扩充时实际可用通道数为62个;当通道为0时,数据头会在第一个字节后面再增加一个字节以扩充通道数,一个字节可存储的值范围为0~255,此时可表示的最大通道数为,有效的通道值为64~319;当通道为1时,数据头会在第一个字节后面再增加两个字节进行通道扩充,此时可表示的最大通道数为,有效的通道值为320~65535。

图3.2数据通道扩展

当通道扩展一个字节时,会有一个加减操作,当通道扩展两个字节时,则没有这一操作,因为此时可使用的通道数已经足够多,无须进行加减操作。

这里重点介绍通道扩展一个字节时的相关操作,比如现在手持终端要给卡口接入服务器发送数据包,在构建数据头时,指定通道数为270,由于第一个字节的后六位最大可用的通道数为63,因此需要扩展一个字节,扩展的字节中实际存储的值为,其二进制形式的值如图3.3。

图3.3206的二进制形式

卡口接入服务器收到该数据包后,解析通道时,首先应判断数据头中第一个字节后六们的值,如果该值等于0,则说明有一个通道字节扩展,读出扩展字节的值,然后加上64即为实际通道的值。

目前已经约定使用的通道如下表:

通道

说明

3

用于Command和Notify的消息类型

6

用于AudioData音频的消息类型

7

用于VideoData视频的消息类型

8

用于AckSize的消息类型

9

用于FileData的消息类型

11

用于Heartbeat心跳包的消息类型

数据头中的消息类型用来说明数据包的作用,当前使用的消息类型有六种,如下表:

消息类型

说明

Command

1

命令类型,主要用于发送与接收业务数据

AudioData

3

音频类型

VideoData

4

视频类型

Heartbeat

5

心跳包

AckSize

6

接收数据数大小,结合音频和视频消息使用,防止网络阻塞

FileData

7

文件传输,在文件传输中,时间戳有特殊意义,0表示正常传输,1标识文件无法读取,2发送文件结束

None

其它类型,目前未使用

4.2.2数据优化

数据优化主要是对数据包中数据头的优化,这需要头类型和数据通道共同发挥作用,由卡口接入服务器(服务器)与手持终端(客户端)采用共同的方式(数据传输协议)接收与获取数据头信息。

在传输普通数据时,数据优化效果不明显,但是在传输音频或视频信息时,其优化效果则比较突出。

在数据传输过程中,有一个针对数据头的缓存机制,该缓存以通道和消息类型的形式保存在内存中,连接断开时则销毁缓存;缓存的键为数据通道,值为数据头。

在构建数据头时,首先需要判断缓存中是否有对应通道的头信息,如果没有则将当前头添加缓存中,如果有则取出并与当前头进行对比,以确定头类型,最后根据头类型确定要发送数据头,详细流程如图3.4所示。

图3.4构建数据头流程

当手持终端接收到卡口接入服务器发过来的一个数据包时,处理流程如图:

卡口设备与手持终端以及中心服务器都使用相同协议通信。

4.2.3数据内容

数据内容即为数据包的后半部分,以下是对数据内容进行拆解:

1300030007436d64547970650600000001000d5472616e73616374696f6e4964110020396531376466663030366236343663363838653863313838656163626135666500064f626a6563741300020008557365724e616d6511000868656c70736f6674000850617373776f7264110006313233343536

字节数据

类型

字节数

说明

13

byte

19

1

Variant类型的数据类型

0003

short

3

2

Variant包含的值的数量

0007

short

7

2

第一个对象的键的长度

436d6454797065

string

CmdType

7

Variant的键

06

byte

6

1

Variant的键对应值的类型为整形

00000001

int

1

4

Variant的键对应值

000d

short

13

2

第二个Variant的键的长度

5472616e73616374696f6e4964

string

TransactionId

13

Variant的键

11

byte

17

1

Variant的键对应值的类型为字符串

0020

short

32

2

Variant的键对应值的长度

3965313764666630303662363436633638386538633138386561636261356665

string

9e17dff006b646c688e8c188eacba5fe

32

Variant的键对应值

0006

short

6

2

Variant的键的长度

4f626a656374

string

Object

6

Variant的键

13

byte

19

Variant的键对应值为对象

0002

short

2

2

Variant包含的值的数量

0008

short

8

2

Variant第一个键的长度

557365724e616d65

string

UserName

8

Variant第一个键

11

byte

17

1

Variant第一个键对应值数据类型

0008

short

8

2

Variant第一个键对应值长度

68656c70736f6674

string

Dklpsoft

8

Variant第一个键对应值

0008

short

8

2

Variant第二个键的长度

50617373776f7264

string

Password

8

Variant第二个键

11

byte

17

1

Variant第二个键对应值数据类型

0006

short

6

2

Variant第二个键对应值长度

313233343536

string

123456

6

Variant第二个键对应值

拆分后的最终结果如下:

data["CmdType"]=1;

data["TransactionId"]="9e17dff006b646c688e8c188eacba5fe";

data["Object"]="对象";

data["Object"]["UserName"]="Dklpsoft";

data["Object"]["Password"]="123456";

注意:

在每一次的传输过程中,都必须有CmdType、TransactionId和Object键值对,如果没有,卡口接入服务器会认为这是一个错误的数据包。

4.3数据类型

数据包支持的数据类型如下表:

数据类型

说明

V_NULL

1

V_UNDEFINED

2

V_BOOL

3

V_INT8

4

8位有符号整数

V_INT16

5

V_INT32

6

32位有符号整数

V_INT64

7

V_UINT8

8

V_UINT16

9

V_UINT32

10

V_UINT64

11

和V_INT64效果一样,因此协议中不使用该数据类型

V_DOUBLE

12

V_NUMERIC

13

V_TIMESTAMP

14

V_DATE

15

日期类型

V_TIME

16

时间类型

V_STRING

17

字符串类型,以UTF-8格式编码

V_TYPED_MAP

18

V_MAP

19

对象类型

V_BYTEARRAY

20

字节数组

4.4协议事物

信令中TransactionId(事物ID),信令请求方生成唯一事物ID,信令响应方返回响应结果中事物ID必须是请求发起方的事物ID,以便于发起方做业务关联。

事物本分有超时机制,超时控制由发起方自身维护,超时更具实际业务决定超时时长。

4.5协议简化定义

手持终端,中心服务器,卡口设备,网络通信都使用C++封装后的协议,所以在后面定义信令中省略必填部分如下:

data["CmdType"]=通信枚举信令号

data["TransactionId"]="事物ID";

data["Object"]="实际通信数据";

__index__value__0在网络中实际不传输,在通信双方自己建立,其中0标识第一个,后面所有"__index__value__0代替了N多个集合简写了

5协议枚举定义

5.1协议枚举定义值规则说明

协议枚举值定义:

请求使用奇数,响应使用偶数,通知使用奇数,通知响应使用偶数。

协议枚举值范围定义:

1-10000卡口设备与中心中心交互使用,10000-20000手持终端与中心交互使用

5.2手持终端与中心服务器通信枚举

协议通信枚举信令号如下图:

枚举

说明

PhoneRequestLogin

10001

手持终端登录中心服务器

PhoneResponseLogin

10002

中心服务器响应手持登录

PhoneRequestGetUserList

10003

获取用户列表

PhoneResponseGetUserList

10004

响应用户列表

PhoneRequestAddUser

10005

添加用户

PhoneResponseAddUser

10006

响应添加用户结果

PhoneRequestUpdateUser

10007

更改用户信息

PhoneResponseUpdateUser

10008

响应更改用户信息

PhoneRequestDeleteUser

10009

删除用户注意:

Dklpsoft帐号禁止删除

PhoneResponseDeleteUser

10010

响应删除用户

PhoneRequestUpdatePassword

10011

修改用户自己的密码

PhoneResponseUpdatePassword

10012

响应修改密码

PhoneRequestGetBayonetDeviceList

10013

获取卡口设备列表

PhoneResponseGetBayonetDeviceList

10014

响应卡口设备列表

PhoneRequestAddBayonetDevice

10015

添加卡口设备

PhoneResponseAddBayonetDevice

10016

响应卡口设备添加

PhoneRequestUpdateBayonetDevice

10017

更新卡口设备

PhoneResponseUpdateBayonetDevice

10018

响应卡口更新结果

PhoneRequestDeleteBayonetDevice

10019

删除卡口设备

PhoneResponseDeleteBayonetDevice

10020

响应卡口设备删除

PhoneRequestInvite

10021

手机发起呼叫

PhoneResponseInviteRing

10022

响应振铃

PhoneResponseInvite

10024

响应发起呼叫

PhoneRequestInvited

10025

收到呼叫

PhoneResponseInvitedRing

10026

响应收到呼叫回应振铃

PhoneResponseInvited

10028

响应收到呼叫

PhoneRequestInviteBye

10029

结束呼叫通话

PhoneResponseInviteBye

10030

响应结束呼叫通话

PhoneNotifyInviteBye

10031

对方结束通话通知另外一方

PhoneRequestBroadcast

10033

请求同卡口广播

PhoneResponseBroadcast

10034

响应广播

PhoneRequestBroadcastBye

10035

请求挂断广播

PhoneResponseBroadcastBye

10036

响应挂断广播

PhoneNotifyBroadcastdBye

10037

卡口掉线广播中断

PhoneRequestGetCameraSetting

10039

获取摄像机参数

PhoneResponseGetCameraSetting

10040

响应获取摄像机参数

PhoneRequestSetCameraSetting

10041

设置摄像机参数

PhoneResponseSetCameraSetting

10042

响应设置摄像机参数

PhoneRequestGetRecordParam

10043

获取录像参数

PhoneResponseGetRecordParam

10044

响应录像参数

PhoneRequestSetRecordParam

10045

设置录像参数

PhoneRespon

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1