卡口视频监控系统手机APP接入服务器通信协议文档.docx
- 文档编号:28515467
- 上传时间:2023-07-18
- 格式:DOCX
- 页数:100
- 大小:204.24KB
卡口视频监控系统手机APP接入服务器通信协议文档.docx
《卡口视频监控系统手机APP接入服务器通信协议文档.docx》由会员分享,可在线阅读,更多相关《卡口视频监控系统手机APP接入服务器通信协议文档.docx(100页珍藏版)》请在冰豆网上搜索。
卡口视频监控系统手机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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 卡口 视频 监控 系统 手机 APP 接入 服务器 通信协议 文档