From de2425e91c80400a6223fe1067355d10e36714a8 Mon Sep 17 00:00:00 2001
From: Unknown <csj_sky@126.com>
Date: 星期三, 03 七月 2019 11:02:13 +0800
Subject: [PATCH] 说明文档

---
 视频监控平台vss对外协议.doc |    0 
 测试rest.txt        |  273 +++++++++++++++++++
 视频监控平台vss对外协议.txt |  547 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 820 insertions(+), 0 deletions(-)

diff --git "a/\346\265\213\350\257\225rest.txt" "b/\346\265\213\350\257\225rest.txt"
new file mode 100644
index 0000000..50ec16e
--- /dev/null
+++ "b/\346\265\213\350\257\225rest.txt"
@@ -0,0 +1,273 @@
+需要开放的端口:
+mysql数据库端口:3306   
+srs流媒体服务端口:1935 8080  (TCP)
+videosvr视频服务端口: httpserver: 8060 (TCP) rtspserver:7554 (TCP)  国标服务端口:7060 (UDP和TCP) 国标接收码流端口:31000-35000 (UDP和TCP) 
+
+
+一、数据配置管理协议:
+1、设置服务器信息:POST
+	http://192.168.12.112:8060/vssconfig/set_platform_server?gbsvrid=32000000002000000001&gbsvrport=7060&gbsvrname=国标服务&rtspsvrport=7554
+	HTTP Method:	GET
+				
+	返回结果:
+		{
+			"errcode":0,
+			"errdesc":"OK"
+		}	
+
+2、获取服务器信息:GET
+	http://192.168.12.112:8060/vssconfig/get_platform_server	
+	返回结果:
+		{
+			"errcode":0,
+			"errdesc":"OK",
+			"name":"本级国标平台",
+			"ipaddr":"192.168.12.112",
+			"httpserverport":8060,
+			"publicid":"11000000002000000001",
+			"gbserverport":7060,
+			"rtspservrport":7554,
+			"httpclientip":"",
+			"httpclientport":0
+		}	
+
+3.设置上级平台信息:POST  
+	更新或则增加上级平台信息
+	http://192.168.12.112:8060/vssconfig/set_upper_platform_server/update	
+	HTTP Method:	POST
+			
+	Body: 
+		{"name":"test_upper1","publicid":"11010000002000000001","ip":"192.168.1.20","port":5060,"authname":"11010000002000000001","authpasswd":"12345678a","registertime":3600,"keepalivetime":60,"synctime":"false","pushprotocol":"udp"}	
+	返回结果:
+		{
+			"errcode":0,
+			"errdesc":"OK"
+		}	
+
+	删除上级平台信息
+	http://192.168.12.112:8060/vssconfig/set_upper_platform_server/delete	
+	HTTP Method:	POST
+			
+	Body: 
+		{"name":"test_upper1","publicid":"11010000002000000001","ip":"192.168.1.30","port":5060,"authname":"11010000002000000001","authpasswd":"12345678a","registertime":3600,"keepalivetime":60,"synctime":"false","pushprotocol":"udp"}	
+	返回结果:
+		{
+			"errcode":0,
+			"errdesc":"OK"
+		}	
+		
+4.获取上级平台信息:GET 
+	http://192.168.12.112:8060/vssconfig/get_upper_platform_server/1
+	
+	返回结果:
+		{
+			"errcode":0,"totalsize":2,"onepagesize":10,"totalpage":1,"pageno":1,"count":2,"data":
+			[
+				{"name":"test_upper1","publicid":"11010000002000000001","ip":"192.168.1.20","port":5060,"authname":"11010000002000000001","authpasswd":"12345678a","registertime":3600,"keepalivetime":60,"synctime":"false","pushprotocol":"udp","alive":1},
+				{"name":"test_upper2","publicid":"11010000002000000002","ip":"192.168.1.30","port":5060,"authname":"11010000002000000001","authpasswd":"12345678a","registertime":3600,"keepalivetime":60,"synctime":"false","pushprotocol":"udp","alive":1}
+			]
+		}
+		
+5.获取所有设备信息:GET
+	http://192.168.12.112:8060/vssconfig/get_all_device/1
+	
+	返回结果:
+		{
+			"errcode":0,"totalsize":3,"onepagesize":10,"totalpage":1,"pageno":1,"count":3,"data":
+			[
+				{"publicid":"11000000001320020001","name":"camear1","alive":1,"corp":"Dahua","parentid":"11010000002000000001","ip":"192.168.1.11","port":5060,"username":"","passwd":"","devmode":"gb28181"},
+				{"publicid":"11000000001320020002","name":"camear2","alive":1,"corp":"Dahua","parentid":"11010000002000000001","ip":"192.168.1.12","port":5060,"username":"","passwd":"","devmode":"gb28181"},
+				{"publicid":"11000000001320020003","name":"camear3","alive":1,"corp":"Dahua","parentid":"11010000002000000001","ip":"192.168.1.13","port":5060,"username":"","passwd":"","devmode":"gb28181"}
+			]
+		}	
+
+6.设备管理(一般用于删除设备):POST
+	删除设备:
+	http://192.168.12.112:8060/vssconfig/set_device/delete
+	
+	HTTP Method:	POST
+			
+	Body: 
+		{
+			"count":3,
+			"data":
+			[
+				{"publicid":"11010000001325000001","name":"hik_1","ip":"192.168.45.15", "port":8000,"username":"", "passwd":"", "devmode":"gb28181"},
+				{"publicid":"11016666001320020001","name":"hik_1","ip":"192.168.45.15", "port":8000,"username":"", "passwd":"", "devmode":"gb28181"},
+				{"publicid":"11010000001320020001","name":"hik_1","ip":"192.168.45.15", "port":8000,"username":"", "passwd":"", "devmode":"gb28181"}
+			]
+		}
+	返回结果:
+		{
+			"errcode":0,"errdesc":"OK","count":3,"data":
+			[
+				{"publicid":'11010000001325000001',"errcode":0,"errdesc":"OK"},
+				{"publicid":'11016666001320020001',"errcode":-501,"errdesc":"error 501"},
+				{"publicid":'11010000001320020001',"errcode":-502,"errdesc":"error 501"}
+			]
+		}
+
+7.获取设备的所有通道资源信息:GET
+	http://192.168.12.112:8060/vssconfig/get_all_channel/11010000002000000001/all/1
+
+	返回结果:
+	{ 
+		"errcode": 0 ,"errdesc": "OK" ,"totalsize": 5 ,"onepagesize": 100 ,"totalpage": 1 ,"pageno": 1, "count":5,"data":
+		[
+			{"restype":2,"publicid":"11010000002150000004","name":"28181推送角色","alive":1,"corp":"","model":"","owner":"","civilcode":"","address":"","devpubid":"11010000002000000001","parentid":"11010000002000000001","ip":"","port":0,"longitude":0.0,"latitude":0.0,"ptztype":0,"streamtype":0,"realrtspurl":""},
+			{"restype":2,"publicid":"11010000002160000009","name":"网关接入摄像机组","alive":1,"corp":"","model":"","owner":"","civilcode":"","address":"","devpubid":"11010000002000000001","parentid":"11010000002150000004","ip":"","port":0,"longitude":0.0,"latitude":0.0,"ptztype":0,"streamtype":0,"realrtspurl":""},
+			{"restype":1,"publicid":"11010000001310000004","name":"rtsp_69_1","alive":1,"corp":"51","model":"rtsplib_ipc","owner":"11010000002000000001","civilcode":"1101","address":"","devpubid":"11010000002000000001","parentid":"11010000002160000009","ip":"","port":0,"longitude":104.08116,"latitude":30.68946,"ptztype":3,"streamtype":0,"realrtspurl":"rtsp://192.168.12.112:7554/DevAor=11010000001310000004"},
+			{"restype":1,"publicid":"11010000001310000029","name":"成都分公司","alive":1,"corp":"8","model":"hikes_ipc","owner":"11010000002000000001","civilcode":"1101","address":"","devpubid":"11010000002000000001","parentid":"11010000002160000009","ip":"","port":0,"longitude":0.0,"latitude":0.0,"ptztype":1,"streamtype":0,"realrtspurl":"rtsp://192.168.12.112:7554/DevAor=11010000001310000029"},
+			{"restype":1,"publicid":"11010000001310000030","name":"大华测试摄像机179-1","alive":1,"corp":"1","model":"dahua_IPC","owner":"11010000002000000001","civilcode":"1101","address":"","devpubid":"11010000002000000001","parentid":"11010000002160000009","ip":"","port":0,"longitude":0.0,"latitude":0.0,"ptztype":1,"streamtype":0,"realrtspurl":"rtsp://192.168.12.112:7554/DevAor=11010000001310000030"}
+		]
+	}
+	
+8.获取设备下的一级资源信息:GET	 (根据父节点查找)
+	http://192.168.12.112:8060/vssconfig/get_all_channel/11010000002000000001/node/1
+	
+	返回结果:
+	{ 
+		"errcode": 0 ,"errdesc": "OK" ,"totalsize": 1 ,"onepagesize": 100 ,"totalpage": 1 ,"pageno": 1, "count":1,"data":
+		[
+			{"restype":2,"publicid":"11010000002150000004","name":"28181推送角色","alive":1,"corp":"","model":"","owner":"","civilcode":"1101","address":"","devpubid":"11010000002000000001","parentid":"11010000002000000001","ip":"","port":0,"longitude":0.0,"latitude":0.0,"ptztype":0,"streamtype":0,"realrtspurl":""}
+		]
+	}
+
+	
+9.获取平台的所有通道资源信息 (不包含资源组) ---->  如果只接入IPC设备, 建议采用该接口获取资源信息
+	http://192.168.12.112:8060/vssconfig/get_platform_all_channel/1
+	返回结果:
+	{ 
+		"errcode": 0 ,"errdesc": "OK" ,"totalsize": 3 ,"onepagesize": 100 ,"totalpage": 1 ,"pageno": 1, "count":3,"data":
+		[
+			{"restype":1,"publicid":"11010000001310000004","name":"rtsp_69_1","alive":1,"corp":"51","model":"rtsplib_ipc","owner":"11010000002000000001","civilcode":"1101","address":"","devpubid":"11010000002000000001","parentid":"11010000002160000009","ip":"","port":0,"longitude":104.08116,"latitude":30.68946,"ptztype":3,"streamtype":0,"realrtspurl":"rtsp://192.168.12.112:7554/DevAor=11010000001310000004"},
+			{"restype":1,"publicid":"11010000001310000029","name":"成都分公司","alive":1,"corp":"8","model":"hikes_ipc","owner":"11010000002000000001","civilcode":"1101","address":"","devpubid":"11010000002000000001","parentid":"11010000002160000009","ip":"","port":0,"longitude":0.0,"latitude":0.0,"ptztype":1,"streamtype":0,"realrtspurl":"rtsp://192.168.12.112:7554/DevAor=11010000001310000029"},
+			{"restype":1,"publicid":"11010000001310000030","name":"大华测试摄像机179-1","alive":1,"corp":"1","model":"dahua_IPC","owner":"11010000002000000001","civilcode":"1101","address":"","devpubid":"11010000002000000001","parentid":"11010000002160000009","ip":"","port":0,"longitude":0.0,"latitude":0.0,"ptztype":1,"streamtype":0,"realrtspurl":"rtsp://192.168.12.112:7554/DevAor=11010000001310000030"}
+		]
+	}
+	
+
+操作相关接口:
+1.PTZ控制
+	向上:		http://192.168.12.112:8060/vss/ptz/up/100/11000000001325000001
+
+	向下:		http://192.168.12.112:8060/vss/ptz/down/100/11000000001325000001
+	
+	向左:		http://192.168.12.112:8060/vss/ptz/left/100/11000000001325000001
+
+	
+	向右:		http://192.168.12.112:8060/vss/ptz/right/100/11000000001325000001
+	
+	左上:		http://192.168.12.112:8060/vss/ptz/leftup/100/11000000001325000001
+	
+	左下:		http://192.168.12.112:8060/vss/ptz/leftdown/100/11000000001325000001
+
+	右上:		http://192.168.12.112:8060/vss/ptz/rightup/100/11000000001325000001
+
+	右下:		http://192.168.12.112:8060/vss/ptz/rightdown/100/11000000001325000001
+	
+	镜头近:	http://192.168.12.112:8060/vss/ptz/zoomin/100/11000000001325000001
+	镜头远:	http://192.168.12.112:8060/vss/ptz/zoomout/100/11000000001325000001
+	
+	焦距远:	http://192.168.12.112:8060/vss/ptz/focusfar/100/11000000001325000001
+	焦距近:	http://192.168.12.112:8060/vss/ptz/focusnear/100/11000000001325000001
+	
+	设置预置位:http://192.168.12.112:8060/vss/ptz/setpos/100/11000000001325000001
+	调预置位:	http://192.168.12.112:8060/vss/ptz/callpos/100/11000000001325000001
+	
+	停止:		http://192.168.12.112:8060/vss/ptz/stop/0/11000000001325000001
+	
+	
+2.录像查询
+	http://192.168.12.112:8060/vss/history_search/2018-08-30T00:00:00/2018-08-30T02:00:00/11000000001325000001
+		
+	返回结果:
+		{
+			"errcode":0,"errdesc":"OK","totalsize":16,"onepagesize":16,"totalpage":1,"pageno":1,"count":16,"data":
+			[
+				{"channelid":"11000000001325000001","begintime":"2018-08-29T23:54:27","endtime":"2018-08-30T00:00:01","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T00:00:01","endtime":"2018-08-30T00:09:28","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T00:09:28","endtime":"2018-08-30T00:11:32","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T00:11:32","endtime":"2018-08-30T00:26:32","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T00:26:32","endtime":"2018-08-30T00:28:37","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T00:28:37","endtime":"2018-08-30T00:43:38","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T00:43:38","endtime":"2018-08-30T00:45:43","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T00:45:43","endtime":"2018-08-30T01:00:43","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T01:00:43","endtime":"2018-08-30T01:02:48","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T01:02:48","endtime":"2018-08-30T01:17:50","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T01:17:50","endtime":"2018-08-30T01:19:54","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T01:19:54","endtime":"2018-08-30T01:34:54","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T01:34:54","endtime":"2018-08-30T01:37:00","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T01:37:00","endtime":"2018-08-30T01:52:00","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T01:52:00","endtime":"2018-08-30T01:54:05","filename":"成都分公司ipc","type":"all"},
+				{"channelid":"11000000001325000001","begintime":"2018-08-30T01:54:05","endtime":"2018-08-30T02:09:04","filename":"成都分公司ipc","type":"all"}
+			]
+		}
+
+
+3.设备控制
+	
+	手动录像开启:http://192.168.12.112:8060/vss/device_ctrl/record/11000000001325000001/start
+	手动录像停止: http://192.168.12.112:8060/vss/device_ctrl/record/11000000001325000001/stop
+		
+	返回结果:
+		{
+			"errcode":0,
+			"errdesc":"OK"
+		}
+
+	
+4. 实时截图
+	字段说明:
+	"channelid":  (字符串)   通道20位编号
+	"type":       (数字)   	 国标请求视频类型:1:udp 2:tcp主动 3:tcp被动
+
+	"errcode":    (数字)   返回值,0表示成功,其他见错误码
+	"imageurl":    (字符串) 图片的url地址
+请求:
+	URL:	http://192.168.12.112:8060/vss/get_image/11000000001320020001/1
+		
+	HTTP Method:	GET
+		
+返回:
+	其中errcode为必填项,errcode小于0表示错误,无数据
+	{
+		"errcode":0,
+		"errdesc":"OK",
+		"imagetime":"2019-03-04T11:44:16",
+		"imageurl":"http://192.168.12.112:8088/image/11000000001320020001.jpg"
+	}			
+		
+5. 重新获取资源目录
+	字段说明:
+	"devpubid":  (字符串)   设备20位编号 
+	
+请求:
+	URL:	http://192.168.12.112:8060/vss/get_catalog/11010000002000000001
+		
+	HTTP Method:	GET
+		
+返回:
+	其中errcode为必填项,errcode小于0表示错误
+	{
+		"errccode":0,
+		"errdesc":"OK"
+	}		
+
+二、报警通知  
+	视频服务器作为httpclient
+	URL:	http://192.168.12.112:8060/vssalarm
+
+		
+	HTTP Method:	POST
+		
+	Body: 
+	所有字段都为必填项
+	{"channelid":"11000000001325000001","alarmtype":1,"alarmtime":"2017-09-19T15:13:24","alarmdesc":"fire","longitude":"10.01123","latitude":"20.34221"}	
+
+
+
+
+
+
+
diff --git "a/\350\247\206\351\242\221\347\233\221\346\216\247\345\271\263\345\217\260vss\345\257\271\345\244\226\345\215\217\350\256\256.doc" "b/\350\247\206\351\242\221\347\233\221\346\216\247\345\271\263\345\217\260vss\345\257\271\345\244\226\345\215\217\350\256\256.doc"
new file mode 100644
index 0000000..6857b9e
--- /dev/null
+++ "b/\350\247\206\351\242\221\347\233\221\346\216\247\345\271\263\345\217\260vss\345\257\271\345\244\226\345\215\217\350\256\256.doc"
Binary files differ
diff --git "a/\350\247\206\351\242\221\347\233\221\346\216\247\345\271\263\345\217\260vss\345\257\271\345\244\226\345\215\217\350\256\256.txt" "b/\350\247\206\351\242\221\347\233\221\346\216\247\345\271\263\345\217\260vss\345\257\271\345\244\226\345\215\217\350\256\256.txt"
new file mode 100644
index 0000000..efa1f55
--- /dev/null
+++ "b/\350\247\206\351\242\221\347\233\221\346\216\247\345\271\263\345\217\260vss\345\257\271\345\244\226\345\215\217\350\256\256.txt"
@@ -0,0 +1,547 @@
+
+
+
+错误码定义:
+//-----------------------------------------------------------
+
+//内部错误码
+//错误码
+#define ERR_OK                      0      //成功			//OK
+
+#define ERR_JSON                    -71    //json解析失败  	//Parse Json Failed
+#define ERR_PERSE                   -72    //协议解析出错	//Protocol Resolution Error
+#define ERR_PARAM                   -73    //参数错误		//Parameter Error
+#define ERR_NODATA                  -74    //无数据			//No Data
+#define ERR_BULID_URL               -75    //构造url失败	//Build Url Failed
+
+#define ERR_TIMEOUT                 -81    //请求超时		//Request Timeout
+#define ERR_DEVICE_OFFLINE          -82    //设备下线		//Device Offline
+#define ERR_DEVICE_NOTEXIST         -83    //设备不存在		//Device Not Exist
+#define ERR_DEVICE_NOINIT           -84    //设备未初始化	//Device Not Init
+#define ERR_DEVCHAN_NOTEXIST        -85    //通道不存在		//Channel Not Exist
+
+
+#define ERR_VIDEO_REQ_FAIL          -200    //视频请求失败				//Video Request Failed
+#define ERR_VIDEO_REQ_NOTEXIST      -201    //视频不存在				//Video Not Exist
+#define ERR_PTZ_CONTRL_FAIL         -202    //ptz控制失败				//PTZ Control Failed
+#define ERR_VOD_RECORD_QUERY_FAIL   -203    //录像查询失败				//Vod Query Failed
+#define ERR_VOD_CONTRL_FAIL         -204    //点播控制失败				//Vod Control Failed
+#define ERR_VOD_NOSESSION           -205    //没有找到点播下载句柄		//Vod Session Not Exist
+
+#define ERR_VSS_NO_MEMORY           -300    //申请内存失败
+#define ERR_PORT_ALLOCAT_FAIL       -301    //端口分配失败				//Port allocation failure
+//内部错误码
+#define ERR_PARTERROR               -1001    //部分成功					//Internal Error
+
+
+
+通道为请求视频的单位,通道id生成方式:
+
+	采用20位国标id的方式:
+	
+一、数据配置管理协议:
+1.设置服务器信息 
+	字段说明:
+	"gbsvrname":    (字符串)   国标平台的名称
+	"gbsvrid":     (字符串)   国标平台的20位ID (200类型)
+	"gbsvrport":   (数字) 	 国标平台监听的端口 
+	"rtspsvrport":  (数字) 	 RTSP服务的端口
+	
+	"errcode:    (数字)   返回状态值,0表示正常状态,其他见错误码(下同)
+	"errdesc":   (字符串) 错误码描述(下同)
+请求:
+	URL:	http://192.168.0.10:8060/vssconfig/set_platform_server?gbsvrid=32000000002000000001&gbsvrport=7060&gbsvrname=国标服务&rtspsvrport=7554
+		
+	HTTP Method:	GET
+	
+返回:
+	其中errcode为必填项,errcode小于0表示错误
+	{
+		"errcode":0,
+		"errdesc":"OK"
+	}	
+	
+2.获取服务器信息 (根节点)
+	字段说明:
+	"name":     	  (字符串)   国标平台的名称
+	"publicid":     (字符串)   国标平台的20位ID (200类型)
+	"gbserverport":   (数字) 	 国标平台监听的端口 
+	"rtspservrport":  (数字) 	 RTSP服务的端口
+	"httpclientip":   (字符串)   HTTP客户端的ip(用于报警通知,一般不设置)
+	"httpclientport": (数字) 	 HTTP客户端的端口(用于报警通知,一般不设置)
+	
+	"errcode:    (数字)   返回状态值,0表示正常状态,其他见错误码(下同)
+	"errdesc":   (字符串) 错误码描述(下同)
+请求:
+	URL:	http://192.168.0.10:8060/vssconfig/get_platform_server
+		
+	HTTP Method:	GET
+		
+返回:
+	其中errcode为必填项,errcode小于0表示错误,无数据
+	{
+		"errcode":0,
+		"errdesc":"OK",
+		"name":"bejing",
+		"ipaddr":"192.168.0.10",
+		"httpserverport":8060,
+		"publicid":"11000000002000000001",
+		"gbserverport":7060,
+		"rtspservrport":7554,
+		"httpclientip":"",
+		"httpclientport":0
+	}	
+
+3.设置上级平台信息 
+	字段说明:
+	"type":      	  (字符串)   上级平台设置的类型  update-更新和增加  delete-删除
+	
+	"name":			  (字符串)   上级平台的名称
+	"publicid":       (字符串)   上级国标平台的20位ID (200类型)
+	"ip":   		  (字符串)   上级国标平台的ip地址
+	"port": 		  (数字) 	 上级国标平台的端口	
+	"authname":   	  (字符串) 	 上级国标平台认证的用户名 
+	"authpasswd":  	  (字符串) 	 上级国标平台认证的密码
+	"registertime":   (数字) 	 上级国标平台的注册饱和时间间隔
+	"keepalivetime":  (数字) 	 上级国标平台的心跳饱和时间间隔
+	"synctime":       (字符串)   是否同步上级平台的时间
+	"pushprotocol":   (字符串)   资源返回或则录像检索返回采用的协议方式(UDP或则TCP) (目前只支持UDP)
+	
+	"errcode:    (数字)   返回状态值,0表示正常状态,其他见错误码(下同)
+	"errdesc":   (字符串) 错误码描述(下同)
+请求:
+	URL:	http://192.168.0.10:8060/vssconfig/set_upper_platform_server/{type}
+		
+	HTTP Method:	POST
+	
+	Body: 
+	{"name":"test_upper1","publicid":"11010000002000000001","ip":"192.168.0.10","port":5060,"authname":"11010000002000000001","authpasswd":"12345678a","registertime":3600,"keepalivetime":60,"synctime":"false","pushprotocol":"udp"}	
+	
+返回:
+	其中errcode为必填项,errcode小于0表示错误
+	{
+		"errcode":0,
+		"errdesc":"OK"
+	}	
+
+4.获取上级平台信息  
+	字段说明:
+	"pageno":      (数字)   指定获取第几页,第一次为1,返回总页数,总条数  
+	
+	"errcode:      (数字)   返回状态值,0表示正常状态,其他见错误码(下同)
+	"errdesc":     (字符串) 错误码描述(下同)
+	"totalsize":   (数字)   设备总数  (下同)
+	"onepagesize": (数字)   每页大小  (下同)
+	"totalpage":   (数字)   总分页数  (下同)
+	"pageno":      (数字)   当前第几页(下同)
+	"count":       (数字)   当前有几条数据(下同)
+	"data":        设备信息,参照“1.设备管理”定义
+	
+	"name":			  (字符串)   上级平台的名称
+	"publicid":       (字符串)   上级国标平台的20位ID (200类型)
+	"ip":   		  (字符串)   上级国标平台的ip地址
+	"port": 		  (数字) 	 上级国标平台的端口	
+	"authname":   	  (字符串) 	 上级国标平台认证的用户名 
+	"authpasswd":  	  (字符串) 	 上级国标平台认证的密码
+	"registertime":   (数字) 	 上级国标平台的注册饱和时间间隔
+	"keepalivetime":  (数字) 	 上级国标平台的心跳饱和时间间隔
+	"synctime":       (字符串)   是否同步上级平台的时间
+	"pushprotocol":   (字符串)   资源返回或则录像检索返回采用的协议方式(UDP或则TCP) (目前只支持UDP)	
+	"alive"			  (数字)     0-不在线  1-在线
+	
+请求:
+	URL:	http://192.168.0.10:8060/vssconfig/get_upper_platform_server/{pageno}
+		
+	HTTP Method:	GET
+		
+返回:  
+	其中errcode为必填项,errcode小于0表示错误,无数据; 如果errcode等于0,那么数据里面的每项都是必填项
+	{
+		"errcode":0,"totalsize":3,"onepagesize":10,"totalpage":1,"pageno":1,"count":3,"data":
+		[
+			{"name":"test_upper1","publicid":"11010000002000000001","ip":"192.168.0.10","port":5060,"authname":"11010000002000000001","authpasswd":"12345678a","registertime":3600,"keepalivetime":60,"synctime":"false","pushprotocol":"udp","alive":1},
+			{"name":"test_upper2","publicid":"11010000002000000002","ip":"192.168.1.240","port":5060,"authname":"11010000002000000001","authpasswd":"12345678a","registertime":3600,"keepalivetime":60,"synctime":"false","pushprotocol":"udp","alive":1},
+			{"name":"test_upper3","publicid":"11010000002000000003","ip":"192.168.1.250","port":5060,"authname":"11010000002000000001","authpasswd":"12345678a","registertime":3600,"keepalivetime":60,"synctime":"false","pushprotocol":"udp","alive":1}
+		]
+	}	
+			
+5.获取所有的设备信息 (二级根节点)
+	字段说明:
+	"pageno":      (数字)   指定获取第几页,第一次为1,返回总页数,总条数  
+	
+	"errcode:      (数字)   返回状态值,0表示正常状态,其他见错误码(下同)
+	"errdesc":     (字符串) 错误码描述(下同)
+	"totalsize":   (数字)   设备总数  (下同)
+	"onepagesize": (数字)   每页大小  (下同)
+	"totalpage":   (数字)   总分页数  (下同)
+	"pageno":      (数字)   当前第几页(下同)
+	"count":       (数字)   当前有几条数据(下同)
+	"data":        设备信息,参照“1.设备管理”定义
+	
+	"publicid":   (字符串)   国标设备20位id 
+	"name":       (字符串)   资源名称 
+	"alive":   	  (数字) 	 状态 0:不在线 1:在线
+	"corp":  	  (字符串) 	 厂商
+	"parentid":   (字符串) 	 父节点id 
+	"ip":         (字符串)   ip地址
+	"port":       (数字)     端口
+	"username"	  (字符串)   设备注册用户名 
+	"passwd"	  (字符串)   设备注册密码
+	"devmode"	  (字符串)   设备类型
+	
+请求:
+	URL:	http://192.168.0.10:8060/vssconfig/get_all_device/{pageno}
+		
+	HTTP Method:	GET
+		
+返回:  
+	其中errcode为必填项,errcode小于0表示错误,无数据; 如果errcode等于0,那么数据里面的每项都是必填项
+	{
+		"errcode":0,"totalsize":4,"onepagesize":100,"totalpage":1,"pageno":1,"count":4,"data":
+		[
+			{"publicid":"11000000001320020001","name":"camear1","alive":1,"corp":"Dahua","parentid":"11010000002000000001","ip":"192.168.1.11","port":5060,"username":"","passwd":"","devmode":"gb28181"},
+			{"publicid":"11000000001320020002","name":"camear2","alive":1,"corp":"Dahua","parentid":"11010000002000000001","ip":"192.168.1.12","port":5060,"username":"","passwd":"","devmode":"gb28181"},
+			{"publicid":"11000000001320020003","name":"camear3","alive":1,"corp":"Dahua","parentid":"11010000002000000001","ip":"192.168.1.13","port":5060,"username":"","passwd":"","devmode":"gb28181"}
+		]
+	}	
+	
+6.	设备管理  (一般用于删除设备)
+	方法说明: 
+	"type":      	  (字符串)   上级平台设置的类型  update-更新和增加  delete-删除
+	
+	字段说明:
+	"publicid":   (字符串)   国标设备20位id 
+	"name":       (字符串)   资源名称 
+	"ip":         (字符串)   ip地址
+	"port":       (数字)     端口
+	"username"	  (字符串)   设备注册用户名 (一般不填写)
+	"passwd"	  (字符串)   设备注册密码	(一般不填写)
+	"devmode"	  (字符串)   设备类型   (默认gb28181)
+	
+	"errcode:    (数字)   返回状态值,0表示正常状态,其他见错误码(下同)
+	"errdesc":   (字符串) 错误码描述(下同)
+	"devid":     (数字)   返回设备编号
+请求:
+	URL:	http://192.168.0.10:8060/vssconfig/set_device/{type}
+		
+	HTTP Method:	POST
+		
+	Body: 
+	{
+		"count":3,
+		"data":
+		[
+			{"publicid":"11000000001320020001","name":"hik_1","ip":"192.168.45.15", "port":8000,"username":"", "passwd":"", "devmode":"gb28181"},
+			{"publicid":"11000000001320020002","name":"hik_1","ip":"192.168.45.15", "port":8000,"username":"", "passwd":"", "devmode":"gb28181"},
+			{"publicid":"11000000001320020003","name":"hik_1","ip":"192.168.45.15", "port":8000,"username":"", "passwd":"", "devmode":"gb28181"}
+		]
+	}
+返回:  
+	其中errcode为必填,errcode小于0表示错误,无数据
+	{
+		"errcode":0,"errdesc":"OK","count":3,"data":
+		[
+			{"publicid":'11000000001320020001',"errcode":0,"errdesc":"OK"},
+			{"publicid":'11000000001320020001',"errcode":-501,"errdesc":"error 501"},
+			{"publicid":'11000000001320020001',"errcode":-502,"errdesc":"error 501"}
+		]
+	}	
+	
+
+7.获取设备的所有通道资源信息
+
+	字段说明:
+	"pageno":      (数字)   指定获取第几页,第一次为1,返回总页数,总条数  
+	"devpubid":	   (字符串) 注册的设备id
+	"type"		   (字符串) "all"-表示获取设备的所有资源  "node"-父节点下的第一级资源
+	
+	"errcode:      (数字)   返回状态值,0表示正常状态,其他见错误码(下同)
+	"errdesc":     (字符串) 错误码描述(下同)
+	"totalsize":   (数字)   设备总数  (下同)
+	"onepagesize": (数字)   每页大小  (下同)
+	"totalpage":   (数字)   总分页数  (下同)
+	"pageno":      (数字)   当前第几页(下同)
+	"count":       (数字)   当前有几条数据(下同)
+	"data":        设备信息,参照“1.设备管理”定义
+	
+	"restype":	  (数字)	 1-通道资源 2-资源组 
+	"publicid":  (字符串)   国标资源通道20位id (用于请求视频、控制等操作)
+	"name":       (字符串)   资源名称 
+	"alive":   	  (数字) 	 状态 0:不在线 1:在线
+	"corp":  	  (字符串) 	 厂商
+	"owner":   	  (字符串)   设备归属
+	"civilcode":  (字符串) 	 行政区域 (可以按照行政区域进行划分资源组)
+	"address":    (字符串) 	 地址
+	"devpubid":   (字符串) 	 通道的设备id
+	"parentid":   (字符串) 	 父节点id
+	"ip":         (字符串)   ip地址
+	"port":       (数字)     端口
+	"longitude":  (数字)     经度
+	"latitude":   (数字)     纬度
+	"ptztype":    (数字)     控制类型 1-球机;2-半球;3-固定枪机;4-遥控枪机;
+	"streamtype": (数字)     码流类型 0-H264;1-MPEG2;2-MPEG4;3-SVAC;4-3GP;5-H265;
+	"realrtspurl":(字符串)   实时视频的rtsp地址
+	
+请求:
+	URL:	http://192.168.0.10:8060/vssconfig/get_all_channel/{devpubid}/{type}/{pageno}
+		
+	HTTP Method:	GET
+		
+返回:  
+	其中errcode为必填项,errcode小于0表示错误,无数据; 如果errcode等于0,那么数据里面的每项都是必填项
+	{ 
+		"errcode": 0 ,"errdesc": "OK" ,"totalsize": 5 ,"onepagesize": 100 ,"totalpage": 1 ,"pageno": 1, "count":13,"data":
+		[
+			{"restype":2,"publicid":"11010000002150000004","name":"28181推送角色","alive":1,"corp":"","model":"","owner":"","civilcode":"","address":"","devpubid":"11010000002000000001","parentid":"11010000002000000001","ip":"","port":0,"longitude":0.0,"latitude":0.0,"ptztype":0,"streamtype":0,"realrtspurl":""},
+			{"restype":2,"publicid":"11010000002160000009","name":"网关接入摄像机组","alive":1,"corp":"","model":"","owner":"","civilcode":"","address":"","devpubid":"11010000002000000001","parentid":"11010000002150000004","ip":"","port":0,"longitude":0.0,"latitude":0.0,"ptztype":0,"streamtype":0,"realrtspurl":""},
+			{"restype":1,"publicid":"11010000001310000004","name":"rtsp_69_1","alive":1,"corp":"51","model":"rtsplib_ipc","owner":"11010000002000000001","civilcode":"1101","address":"","devpubid":"11010000002000000001","parentid":"11010000002160000009","ip":"","port":0,"longitude":104.08116,"latitude":30.68946,"ptztype":3,"streamtype":0,"realrtspurl":"rtsp://192.168.0.10:7554/DevAor=11010000001310000004"},
+			{"restype":1,"publicid":"11010000001310000029","name":"成都分公司","alive":1,"corp":"8","model":"hikes_ipc","owner":"11010000002000000001","civilcode":"1101","address":"","devpubid":"11010000002000000001","parentid":"11010000002160000009","ip":"","port":0,"longitude":0.0,"latitude":0.0,"ptztype":1,"streamtype":0,"realrtspurl":"rtsp://192.168.0.10:7554/DevAor=11010000001310000029"},
+			{"restype":1,"publicid":"11010000001310000030","name":"大华测试摄像机179-1","alive":1,"corp":"1","model":"dahua_IPC","owner":"11010000002000000001","civilcode":"1101","address":"","devpubid":"11010000002000000001","parentid":"11010000002160000009","ip":"","port":0,"longitude":0.0,"latitude":0.0,"ptztype":1,"streamtype":0,"realrtspurl":"rtsp://192.168.0.10:7554/DevAor=11010000001310000030"}
+		]
+	}
+
+
+资源组展现方式:(完全采用下级注册资源展现方式)
+	本级平台的(Svrtbl)
+		--注册设备1(VSSDevtbl)
+			--注册设备下的资源组1 (VSSChannelTbl)
+				--通道资源 (VSSChannelTbl)
+			--注册设备下的资源组2 (VSSChannelTbl)
+				--通道资源 (VSSChannelTbl)
+		--注册设备2(VSSDevtbll)
+			--通道资源 (VSSChannelTbl)	
+
+资源树展现:
+	一级资源组(国标服务名称:http://192.168.0.10:8060/vssconfig/get_platform_server)
+		--二级资源组 (设备信息:http://192.168.0.10:8060/vssconfig/get_all_device/{pageno})
+			--三级资源组 (restype=2 通道资源:http://192.168.0.10:8060/vssconfig/get_all_channel/{devpubid}/node/{pageno})
+				--通道资源 (restype=1 通道资源:http://192.168.0.10:8060/vssconfig/get_all_channel/{devpubid}/node/{pageno})
+		--二级资源组 (设备信息:http://192.168.0.10:8060/vssconfig/get_all_device/{pageno})	
+			--通道资源 (restype=1 通道资源:http://192.168.0.10:8060/vssconfig/get_all_channel/{devpubid}/node/{pageno})	
+	
+
+8.获取平台的所有通道资源信息 (不包含资源组) ---->  如果只接入IPC设备, 建议采用该接口获取资源信息
+
+	字段说明:
+	"pageno":      (数字)   指定获取第几页,第一次为1,返回总页数,总条数  
+	
+	"errcode:      (数字)   返回状态值,0表示正常状态,其他见错误码(下同)
+	"errdesc":     (字符串) 错误码描述(下同)
+	"totalsize":   (数字)   设备总数  (下同)
+	"onepagesize": (数字)   每页大小  (下同)
+	"totalpage":   (数字)   总分页数  (下同)
+	"pageno":      (数字)   当前第几页(下同)
+	"count":       (数字)   当前有几条数据(下同)
+	"data":        设备信息,参照“1.设备管理”定义
+	
+	"restype":	  (数字)	 1-通道资源 2-资源组 
+	"publicid":  (字符串)   国标资源通道20位id (用于请求视频、控制等操作)
+	"name":       (字符串)   资源名称 
+	"alive":   	  (数字) 	 状态 0:不在线 1:在线
+	"corp":  	  (字符串) 	 厂商
+	"owner":   	  (字符串)   设备归属
+	"civilcode":  (字符串) 	 行政区域 (可以按照行政区域进行划分资源组)
+	"address":    (字符串) 	 地址
+	"devpubid":   (字符串) 	 通道的设备id
+	"parentid":   (字符串) 	 父节点id
+	"ip":         (字符串)   ip地址
+	"port":       (数字)     端口
+	"longitude":  (数字)     经度
+	"latitude":   (数字)     纬度
+	"ptztype":    (数字)     控制类型 1-球机;2-半球;3-固定枪机;4-遥控枪机;
+	"streamtype": (数字)     码流类型 0-H264;1-MPEG2;2-MPEG4;3-SVAC;4-3GP;5-H265;
+	"realrtspurl":(字符串)   实时视频的rtsp地址
+	
+请求:
+	URL:	http://192.168.0.10:8060/vssconfig/get_platform_all_channel/{pageno}
+		
+	HTTP Method:	GET
+		
+返回:  
+	其中errcode为必填项,errcode小于0表示错误,无数据; 如果errcode等于0,那么数据里面的每项都是必填项
+	{ 
+		"errcode": 0 ,"errdesc": "OK" ,"totalsize": 3 ,"onepagesize": 100 ,"totalpage": 1 ,"pageno": 1, "count":13,"data":
+		[
+			{"restype":1,"publicid":"11010000001310000004","name":"rtsp_69_1","alive":1,"corp":"51","model":"rtsplib_ipc","owner":"11010000002000000001","civilcode":"1101","address":"","devpubid":"11010000002000000001","parentid":"11010000002160000009","ip":"","port":0,"longitude":104.08116,"latitude":30.68946,"ptztype":3,"streamtype":0,"realrtspurl":"rtsp://192.168.0.10:7554/DevAor=11010000001310000004"},
+			{"restype":1,"publicid":"11010000001310000029","name":"成都分公司","alive":1,"corp":"8","model":"hikes_ipc","owner":"11010000002000000001","civilcode":"1101","address":"","devpubid":"11010000002000000001","parentid":"11010000002160000009","ip":"","port":0,"longitude":0.0,"latitude":0.0,"ptztype":1,"streamtype":0,"realrtspurl":"rtsp://192.168.0.10:7554/DevAor=11010000001310000029"},
+			{"restype":1,"publicid":"11010000001310000030","name":"大华测试摄像机179-1","alive":1,"corp":"1","model":"dahua_IPC","owner":"11010000002000000001","civilcode":"1101","address":"","devpubid":"11010000002000000001","parentid":"11010000002160000009","ip":"","port":0,"longitude":0.0,"latitude":0.0,"ptztype":1,"streamtype":0,"realrtspurl":"rtsp://192.168.0.10:7554/DevAor=11010000001310000030"}
+		]
+	}	
+
+9.获取单个设备或则通道的信息
+
+	字段说明:
+	"publicid":    (字符串)   设备或则通道信息
+	
+	"restype":	  (数字)	 1-通道资源 2-资源组 
+	"publicid":  (字符串)    国标资源通道20位id (用于请求视频、控制等操作)
+	"name":       (字符串)   资源名称 
+	"alive":   	  (数字) 	 状态 0:不在线 1:在线
+	"corp":  	  (字符串) 	 厂商
+	"owner":   	  (字符串)   设备归属
+	"civilcode":  (字符串) 	 行政区域 (可以按照行政区域进行划分资源组)
+	"address":    (字符串) 	 地址
+	"devpubid":   (字符串) 	 通道的设备id
+	"parentid":   (字符串) 	 父节点id
+	"ip":         (字符串)   ip地址
+	"port":       (数字)     端口
+	"longitude":  (数字)     经度
+	"latitude":   (数字)     纬度
+	"ptztype":    (数字)     控制类型 1-球机;2-半球;3-固定枪机;4-遥控枪机;
+	"streamtype": (数字)     码流类型 0-H264;1-MPEG2;2-MPEG4;3-SVAC;4-3GP;5-H265;
+	"realrtspurl":(字符串)   实时视频的rtsp地址
+	
+请求:
+	URL:	http://192.168.0.10:8060/vssconfig/get_device_info/{publicid}
+		
+	HTTP Method:	GET
+		
+返回:  
+	其中errcode为必填项,errcode小于0表示错误,无数据; 如果errcode等于0,那么数据里面的每项都是必填项
+	{
+		"errcode":0,
+		"errdesc":"OK",
+		"restype":1,
+		"publicid":"11010000001310000004",
+		"name":"rtsp_69_1",
+		"alive":1,
+		"corp":"51",
+		"model":"rtsplib_ipc",
+		"owner":"11010000002000000001",
+		"civilcode":"1101","address":"",
+		"devpubid":"11010000002000000001",
+		"parentid":"11010000002160000009",
+		"ip":"",
+		"port":0,
+		"longitude":104.08116,
+		"latitude":30.68946,
+		"ptztype":3,
+		"streamtype":0,
+		"realrtspurl":"rtsp://192.168.0.10:7554/DevAor=11010000001310000004"
+	}	
+
+	
+
+二、通信接口:
+	视频服务器作为httpserver。		
+		
+1.	PTZ云台控制
+	字段说明:
+	"channelid":  (字符串)   通道20位编号
+	"ptztype":   (字符串) 控制类型:上"up",下"down",左"left",右"right",左上"leftup",左下"leftdown",右上"rightup",右下"rightdown",镜头近"zoomin",镜头远"zoomout", 
+							焦距远"focusfar",焦距近"focusnear", 设置预置位"setpos",调预置位"callpos",停止"stop"
+	"ptzparam":   (数字)   参数,速度范围为1-255
+	
+请求:
+	URL:	http://192.168.0.10:8088/vss/ptz/{ptztype}/{ptzparam}/{channelid}
+		
+	HTTP Method:	GET
+		
+返回: 
+	其中errcode为必填项,errcode小于0表示错误
+	{"errcode":0,"errdesc":"OK"}
+
+
+2.	录像查询
+	字段说明:
+	
+	"channelid":   (字符串)   通道20位编号
+	"begintime":   (字符串) "YYYY-MM-DDTHH:MM:SS":  年月日时分秒; 开始时间,注意不全0
+	"endtime":     (字符串) "YYYY-MM-DDTHH:MM:SS":  年月日时分秒; 结束时间,注意不全0
+	
+	"data":        录像查询信息
+	"begintime":   (字符串) "YYYY-MM-DDTHH:MM:SS":  年月日时分秒; 开始时间,注意不全0
+	"endtime":     (字符串) "YYYY-MM-DDTHH:MM:SS":  年月日时分秒; 结束时间,注意不全0
+	"filename":    (字符串) 文件名,不一定用,如果根据文件回放才用,根据时间回放不用
+	"type":	  (字符串)录像类型 all,time,alarm,manual
+
+请求:
+	URL:	http://192.168.0.10:8088/vss/history_search/{begintime}/{endtime}/{channelid}
+		
+	HTTP Method:	GET
+		
+返回: 
+	其中errcode为必填项,errcode小于0表示错误,无数据; 如果errcode等于0,那么数据里面的每项都是必填项
+	{"errcode":0,"errdesc":"OK","totalsize":3,"onepagesize":100,"totalpage":1,"pageno":1,"count":3,"data":
+		[
+			{"channelid":11000000001325000001,"begintime":"2017-09-19T15:13:24","endtime":"2017-09-19T15:38:34","filename":"101101001_0","type":"all"},
+			{"channelid":11000000001325000001,"begintime":"2017-09-19T15:56:52","endtime":"2017-09-19T16:03:10","filename":"101101001_2","type":"all"},
+			{"channelid":11000000001325000001,"begintime":"2017-09-19T16:06:42","endtime":"2017-09-19T17:28:55","filename":"101101001_4","type":"all"}
+		]
+	}
+
+3. 	设备控制
+	字段说明:
+	"channelid":  (字符串)   通道或者设备20位编号
+	"devctrltype": (字符串)  "record":录像开启和停止-通道id "guard":布放和撤防-报警通道id "reboot":设备重启-设备id "keyfame":强制关键帧-通道id  
+	"param":  (字符串) "start"启动,"stop"停止 
+	
+请求:
+	URL:	http://192.168.0.10:8060/vss/device_ctrl/{devctrltype}/{channelid}/{param}
+		
+	HTTP Method:	GET
+		
+返回:
+	其中errcode为必填项,errcode小于0表示错误
+	{"errccode":0,"errdesc":"OK"}
+	
+4. 	重新获取资源目录
+	字段说明:
+	"devpubid":  (字符串)   设备20位编号 
+	
+请求:
+	URL:	http://192.168.0.10:8060/vss/get_catalog/{devpubid}
+		
+	HTTP Method:	GET
+		
+返回:
+	其中errcode为必填项,errcode小于0表示错误
+	{"errccode":0,"errdesc":"OK"}
+	
+	
+三、报警通知  
+	视频服务器作为httpclient
+
+	方法说明: 
+	
+
+	字段说明:
+	"channelid":  (字符串)   通道20位编号
+	"alarmtype": (数字) 报警类型(后续根据需求定义)
+	"alarmtime":  (字符串) "YYYY-MM-DDTHH:MM:SS":  年月日 时分秒; 报警时间
+	"alarmdesc":  (字符串) 报警描述
+	"longitude":  (字符串) 经度
+	"latitude":	  (字符串) 纬度
+	
+请求:
+	URL:	http://192.168.0.10:8088/vssalarm
+
+		
+	HTTP Method:	POST
+		
+	Body: 
+	所有字段都为必填项
+	{"channelid":"11000000001325000001","alarmtype":1,"alarmtime":"2017-09-19T15:13:24","alarmdesc":"fire","longitude":"10.01123","latitude":"20.34221"}	
+
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	

--
Gitblit v1.8.0