宇鸿科技视频传输协议说明书_第1页
宇鸿科技视频传输协议说明书_第2页
宇鸿科技视频传输协议说明书_第3页
宇鸿科技视频传输协议说明书_第4页
宇鸿科技视频传输协议说明书_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

文档编号:20101129002版本:V1.0密级:机密作者:全嘉准,万克波日期:2010-11-31审批:日期:修改:日期:修改:日期:成都宇鸿科技视频传输协议说明书目录TOC\o"1-4"\h\z\u目录 11 网络处理流程: 32 网络协议包结构定义: 42.1 协议包结构: 4、说明: 43 包类型及数据实体定义: 43.1用户登录及设备管理: 4客户端登录请求与响应: 4前端设备注册请求与响应: 6心跳包 7错误信息包 73.2媒体流控制与传输: 8与被选设备建立连接: 8查看被选设备的视频通道: 9启动音频对讲: 10云台控制: 113.3设备功能参数配置: 12基本设置 13 设备名称: 13 日期和时间: 14 用户管理: 14 手机控制: 15 恢复出厂设置: 16 系统升级: 17网络参数 17 设备IP地址和端口: 17 无线网络配置: 18 中转服务器配置: 21通道参数 22 编码配置: 22 云台设置: 24 图像调节: 26报警参数 27 探头报警检测: 27 视频移动侦测: 29 短信报警配置: 30 FTP图像上传: 31 报警录像: 33 报警抓拍: 34 Email上传 35前端存储 36录像存储: 36磁盘管理: 383.4GPS传输 393.5视频回放 40查询视频回放文件 40请求视频回放 413.6特殊命令 42参数保存 42重启设备 431 网络处理流程:2 网络协议包结构定义: 该网络协议由协议头和数据实体构成,为客户端、服务器、前端设备之间的数据传输和命令控制提供交互标准。2.1 协议包结构:协议头数据实体协议尾包头包长包的类型数据包尾UnsignedIntUnsignedIntUnsignedintUnsignedint、说明:1.包头:规定每个包的包头为0x778855aa,占4个字节,共32位;2.包的长度:包的长度=消息实体的长度+类型字段+包尾字段;3.包的类型:标识是那种类型的协议包,占四个字节;4.数据实体:包含具体的数据,由不同类型的数据包具体决定;3.包尾:0xFFEE,占两个字节。3 包类型及数据实体定义:说明:本部分定义了具体协议包的类型,以及该类型的包具有的实体数据。3.1用户登录及设备管理:通用数据包即数据包中不包含任何数据实体的数据包,.使用时填充包头,包尾,包长,数据包的类型即可,该数据包的结构体定义如下:typedefstruct_PKG_COMMON{ unsignedintpkg_head; //协议包的包头 unsignedintpkg_length; //协议包的长度 intpkg_type; //协议包的类型; intpkg_end;}PKG_COMMON;客户端登录请求与响应:登录请求:与服务器或者前端设备建立TCP连接后。向远程服务器或者局域网内的前端设备发送登录请求。登录时需要发送登录请求数据包,该数据包的数据实体包含“用户名”和“密码”。包的类型定义: #definePKGTYPE_LOGIN_REQ 0x0000登录请求数据包: typedefstruct _PKG_ACOUNT_INFO{ unsignedintpkg_head; unsignedintpkg_length; intpkg_type; S_ACCOUNT_INFOacc_info;//登录请求包数据实体 intpkg_end;}PKG_ACOUNT_INFO;相关结构体及宏定义:typedefstruct{ unsignedcharusername[NAME_LEN]; //用户名 unsignedcharpassward[PSW_LEN]; //密码 intaccount_type; //账户类型}S_ACCOUNT_INFO;#define ACCOUNT_TYPE_ADMIN 0xF0 //管理员账户#define ACCOUNT_TYPE_GNL 0xF1 //普通账户 #defineACCOUNT_TYPE_NULL0xF2//账户类型为空 登录响应:成功登录:中转服务器或者前端设备返回在线设备的设备信息数据包.有多少个属于登录帐户的设备,就返回多少次这样的数据包。登录失败:账户类型设置为ACCOUNT_TPE_NULL,并且设备信息为空’\0’包的类型定义: #define PKGTYPE_LOGIN_RESP 0x0001设备信息数据包:typedefstruct _PKG_LOGIN_RESP{unsignedintpkg_head; unsignedintpkg_length; intpkg_type; S_LOGIN_RESPlogin_resp;//登录响应数据实体,该结构体包含设备信息,设//备通道号,登录帐户的类型intpkg_end;}PKG_LOGIN_RESP; 登录失败时发送的数据包:Account_type为ACCOUNT_TYPE_NULL相关结构体及宏定义:typedefstruct {//设备信息结构体;S_DEVICE_INFO dev_info; //设备信息intaccount_type; //账户类型}S_LOGIN_RESP; Typedef struct{unsignedchardevname[NAME_LEN]; //设备名,最多支持32个字节Intchncount; //该设备的视频通道个数;}S_DEVICE_INFO;登录出错状态: #define ERR_ACCOUNT_ERROR 0x10 //账户验证失败 #define ERR_NO_EXIST_DEV 0x11 //对应账户无设备 设备掉线回应包:如果服务器上检测到有设备掉线后,会发送掉线设备的设备信息给客户端:包的类型定义: #define PKGTYPE_OFFLINE_DEV 0x62 //掉线设备信息包typedefstruct _PKG_LOGIN_RESP{ unsignedintpkg_head; unsignedintpkg_length; intpkg_type; S_LOGIN_RESPlogin_resp;//登录响应包数据实体实体 intpkg_end;}PKG_LOGIN_RESP; 前端设备注册请求与响应: 注册请求:前端设备启动后,程序从参数文件中读取中转服务器IP和PORT参数。尝试与中转服务器进行TCP连接。TCP连接成功后。向中转服务器发送注册请求数据包。注册数据包括:1、管理员用户名和密码、账户类型;2、该设备的设备名和通道数。 包的类型定义: #define PKGTYPE_REG_FRONTDEV_REQ 0x0002 前端设备注册请求数据包:typedefstruct _PKG_REG_FRONTDEV {unsignedintpkg_head; //协议包的包头unsignedintpkg_length; //协议包的长度intpkg_type; //协议包的类型;S_FRONTDEV_INFOfrontdev_info;intpkg_end;}PKG_FRONTDEV_INFO;相关结构体及宏定义:typedefstruct {//前端设备注册信息结构体 S_ACCOUNT_INFOaccount_info[MAX_ACCOUNT]; //账户信息 S_DEVICE_INFO dev_info; //设备信息}S_FRONTDEV_INFO; 注册响应:发生注册响应数据包。注册成功,发送成功状态,注册失败,返回失败状态。 包的类型定义:#define PKTYPE_REG_FRONTDEV_RESP 0x0003注册响应数据包:typedefstruct_PKG_RETURNSTATUS_RESP相关结构体及宏定义:#define FRONTDEV_REG_SUCCESS 0x01//注册成功状态#define FRONTDEV_REG_FAILURE 0x00//注册失败状态心跳包包的类型定义:#define PKGTYPE_HEARD_PKG 0x63//心跳包 数据包的定义:typedefstruct_PKG_COMMON{unsignedintpkg_head; //协议包的包头unsignedintpkg_length; //协议包的长度intpkg_type; //协议包的类型;intpkg_end;}PKG_COMMON;错误信息包 包的类型定义: #definePKGTYPE_ERR_REQ0x0061 //错误信息包数据包的定义:typedefstruct_PKG_RETURNSTATUS_RESP{unsignedintpkg_head; unsignedintpkg_length;intpkg_type; RETURN_STATUSret_status;intpkg_end;}PKG_RETURNSTATUS_RESP; 错误类型:#defineERR_ACOUNT_ERROR 0x10 //账户验证失败#defineERR_NO_EXIST_DEV 0x11 //对应账户没有在线设备#defineERR_PTZ_ADDR_ERROR 0x12 //云台地址错误#defineERR_WIFI_ERROR 0x13 //WIFI模块出错#defineSET_WIFI_SUCCESS0x14 #define ERR_SELEQU_NODEV 0x15 //选择观看的设备不存在#define ERR_SELEQU_OVERLIST 0x16 //超出了转发个数等待其他用户释放3.2媒体流控制与传输:与被选设备建立连接: 请求:发送连接被选设备数据包,建立与设备的连接。在进行视频查看、音频对讲、云台控制、参数设置等操作前都需要建立与被操作设备的连接。 包的类型定义: #definePKGTYPE_CNT_FRONTDEV_REQ 0x0004连接被选设备数据包:typedefstruct_PKG_DEV_INFO{unsignedintpkg_head; //协议包的包头unsignedintpkg_length; //协议包的长度intpkg_type; //协议包的类型;S_DEVICE_INFOdev_info;intpkg_end;}PKG_DEV_INFO;响应:发生连接响应数据包。连接成功:返回连接成功状态;连接失败:返回失败状态。 包的类型定义: #define PKGTYPE_CNT_FRONTDEV_RESP 0x0005连接响应数据包:typedefstruct_PKG_RETURNSTATUS_RESP #define CNT_FRONTDEV_SUCCESS 0X01; //连接成功 #define CNT_FRONTDEV_FAILURE 0X00;//连接失败查看被选设备的视频通道: 请求:与被选设备建立连接后,向前端设备发送视频查看请求数据包。该数据包的实体包含的参数为:1.被选设备名;2.视频通道号;3。视频查看开关。如果发送视频关请求。则停止发送码流。包的类型定义: #definePKGTYPE_VIEWVIDEO_REQ 0x0006 视频查看请求数据包:typedefstruct _PKG_VIEWVIDEO_REQ{unsignedintpkg_head; //协议包的包头unsignedintpkg_length; //协议包的长度intpkg_type; //协议包的类型;S_VIEWVIDEOview_video;intpkg_end;}PKG_VIEWVIDEO;相关数据结构及宏定义:#define VIDEO_CH_0 0;#define VIDEO_CH_1 1;#define VIDEO_CH_2 2;#define VIDEO_CH_3 3; #define CONNECT_TYPE_D1 0x81 //请求D1分辨率的视频#define CONNECT_TYPE_CIF 0x82 //请求CIF分辨率的视频#defineCONNECT_TYPE_NONE 0x83 //关闭视频查看请求Typedef struct{ int chn_num; //视频通道号; int cnt_type; //视频连接类型D1或者CIF}S_VIEWVIDEO; 响应:前端设备接到视频开请求后,发送视频流数据包到客户端。如果没有相应分别率的图像,则不发送视频 包的类型定义: #definePKGTYPE_VIDEO_STREAM 0x0007 视频流数据包:注意:该结构体只是说明视频流数据包的结构。typedefstruct _PKG_VIDEO_STREAM{unsignedintpkg_head; //协议包的包头unsignedintpkg_length; //协议包的长度Intpkg_type; //协议包的类型;intchn_num; //通道号unsignedchar*p_stream; //H.264码流指针Intpkg_end;}PKG_VIDEO_STREAM; 启动音频对讲: 说明:前端设备只能同时支持一路音频对讲,前端设备接收到客户端音频对讲请求后,检测音频是否被占用,如果设备被占用,客户端将受到状态并提示用户。如果前端设备音频未被占用,则可以开始互相音频流数据包。音频数据包类型定义: #definePKGTYPE_AUDIO_STREAM 0x0008音频流数据包: typedefstruct _PKG_AUDIO_STREAM{ unsignedintpkg_head; //协议包的包头unsignedintpkg_length; //协议包的长度 Intpkg_type; //协议包的类型; Unsignedchar*p_stream; //音频数据 intpkg_end;}PKG_AUDIO_STREAM; 音频请求:与被选中的前端设备发送音频对讲请求数据包。 包的类型定义: #definePKGTYPE_AUDIO_TALK_REQ 0x0009音频对讲请求数据包typedefstruct _PKG_AUDIO_REQ{unsignedintpkg_head; //协议包的包头unsignedintpkg_length; //协议包的长度intpkg_type; //协议包的类型;inta_switch; //音频对讲开关intpkg_end;}PKG_AUDIO_REQ;相关结构体及宏定义: #defineAUDIO_TALK_ON 0x01; //打开音频对讲; #defineAUDIO_TALK_OFF 0x00; //关闭音频对讲;响应:前端设备接收到音频对讲请求后,如果音频功能被占用,则返回音频设备状态包;如果音频设备可用,则发送音频流数据包 包的类型定义:#define PKGTYPE_AUDIO_TALK_RESP 0X000A 音频设备状态包:typedefstruct _PKG_RETURNSTATUS_RESP相关结构体及宏定义:#define AUDIO_DEV_OK 0x01;//音频设备可用;#define AUDIO_DEV_BUSY 0X00; //音频设备忙;云台控制: 说明:由用户对特定设备的视频通道发起云台控制请求数据包。如果云台可用,则前端设备直接响应云台命令控制云台。如果云台出错,要向用户返回出错代码,客户端软件可以通过编程通知用户出错原因,也可以不用通知: 请求:云台控制请求数据包的内容为:1、云台命令;2、当前视频通道。 包的类型定义: #definePKGTYPE_PTZCTL_REQ 0x000B 云台控制请求数据包:typedefstruct _PKG_PTZCTL_REQ{unsignedintpkg_head; //协议包的包头unsignedintpkg_length; //协议包的长度intpkg_type; //协议包的类型;S_PTZCTLptz_ctl;intpkg_end;}PKG_PTZCTL_REQ;相关结构体及宏定义: Typedef struct { Int ptz_cmd; //云台命令; Intptz_speed; //云台速度 int chn_num; //视频通道;}S_PTZCTL; #define PTZ_UP 0xE0 //云台向上 #define PTZ_DOWN 0xE1 //云台向下 #define PTZ_LEFT 0xE2 //云台向左 #define PTZ_RIGHT 0xE3 //云台向右 #define PTZ_STOP 0xE4 //停止云台 #define PTZ_AUTO 0xE5 //云台自动旋转 #define PTZ_FOCUSSMALL 0xE6 //焦点小 #define PTZ_FOCUSLAGRE 0xE7 //焦点大 #define PTZ_FOCUSNEAR 0xE8 //聚焦近 #define PTZ_FOCUSFAR 0xE9 //聚焦远 #define PTZ_APT_SMALL 0xEA //光圈小 #define PTZ_APT_LAGRE 0xEB //光圈大 响应:如果云台正常,则响应相应动作;如果云台出错,发送云台控制响应数据包,返回错误代码; 包的类型定义:#definePKGTYPE_PTZCTL_RESP 0x000C 云台控制响应数据包:typedefstruct_PKG_RETURNSTATUS_RESP#define ERR_PTZ_ADDR_ERROR 0x12 //云台地址错误3.3设备功能参数配置:描述:设备功能参数主要有查询和配置两项动作,在进行查询和配置之前,先要与被操作的前端设备建立连接。查询是向前端设备发生数据包,查询当前的设置项的内容。配置是将配置好的功能参数发生给前端设备,对前端设备进行配置。基本设置.1 设备名称:说明:用户可以查询前端设备的设备名,并给给指定的设备重新命名设备名。设备接收到查询或者修改消息后,向客户端返回查询或者修改状态。查询请求:用户要查看设备名称,选中该项后,向前端设备发送设备名查询数据包。 包的类型定义:#define PKGTYPE_GET_DEVNAME_REQ 0x000D 设备名查询数据包:typedefstruct_PKG_COMMON查询响应:前端设备接收到请求后,查找设备名。发送设备名查询响应数据包 包的类型定义: #define PKGTYPE_GET_DEVNAME_RESP 0x000E设备名查询响应数据包:typedefstruct_PKG_DEV_INFO设置请求:用户需要更改前端设备的设备名,则更改完后,发生设备名更改请求数据包。包的类型定义:#define PKGTYPE_SET_DEVNAME_REQ 0x000F设备名更改请求数据包:typedefstruct_PKG_DEV_INFO 设置响应:被更改了设备名的设备如果连接了中转服务器,则向中转服务器发送更改后的设备名。 包的类型定义: #definePKGTYPE_SET_DEVNAME_RESP 0x0010 发送到中转服务器的数据包:typedefstruct_PKG_DEVNAME.2 日期和时间:说明:将PC时间同步到前端设备设置请求:发送时间同步数据包。前端设备接收到该请求后,设置前端设备的当前时间。 包的类型定义: #define PKGTYPE_SET_DATETIME_REQ 0x0011 时间同步数据包:typedefstruct _PKG_DATETIME{unsignedintpkg_head; //协议包的包头unsignedintpkg_length; //协议包的长度intpkg_type; //协议包的类型;S_DATETIMEdatatime;intpkg_end;}PKG_DATETIME;相关结构体及宏定义:typedefstruct{ unsignedcharnowtime[32];}S_DATETIME; 设置响应:收到响应的协议包,说明时间同步成功,否则失败 包的类型定义#define PKGTYPE_SET_DATETIME_RESP 0x0012时间同步成功响应数据包:typedefstruct_PKG_COMMON(已定义).3 用户管理:说明:配置该设备的用户名和密码,包括一个管理员账号和一个普通账号。查询请求:查询设备的管理员用户名和普通用户名,客户端接收到响应后,用户名用明码显示,密码用暗码(比如*)显示。包的类型定义:#define PKGTYPE_GET_ACCOUNT_REQ 0x0013用户信息查询请求:typedefstruct_PKG_COMMON(已定义)查询响应:前端设备将从参数中查询到的账号返回给发起请求的客户端,有多少个账号就发回多少个这样的数据包。包的类型定义:#define PKGTYPE_GET_ACCOUNT_RESP 0x0014;帐户查询响应数据包:typedefstruct _PKG_ACOUNT_INFO设置请求:将设置好的账户信息发送给前端设备。前端设备接收到该数据包后,从数据包中提取账户和密码的值,更新到参数中。包的类型定义:#define PKGTYPE_SET_ACCOUNT_REQ 0x0015帐户设置请求数据包Typedefstruct_PKG_ACOUNT_INFO设置响应:设置成功,返回一个响应数据包。 包的类型定义:#definePKGTYPE_SET_ACCOUNT_RESP 0x0016帐户设置响应数据包typedefstruct_PKG_COMMON(已定义).4 手机控制:说明:该配置项配置是否支持手机控制。如果支持,配置拥有控制权限手机号码。查询请求:向前端设备发送命令,查询手机控制设置项的当前状况包的类型定义:#define PKGTYPE_GET_PHONE_CTL_REQ 0x0017手机控制参数查询请求包:Typedefstruct_PKG_COMMON查询响应:返回手机控制参数包的类型定义:#define PKGTYPE_GET_PHONE_CTL_RESP 0x0018手机控制参数数据包:typedefstruct _PKG_PHONE_CTL{unsignedintpkg_head; //协议包的包头unsignedintpkg_length; //协议包的长度intpkg_type; //协议包的类型;S_PHONE_CTLphone_ctl;intpkg_end;}PKG_PHONE_CTL;相关结构体及类型定义:Typedefchar PHONE_NUM[PHONE_NUM_LEN];typedefstruct{intenable; //是否使能手机控制unsignedcharpsw[PSW_LEN];//手机控制密码}S_PHONE_CTL;#define PHONE_CTL_ON 0x01 //打开手机控制功能;#define PHONE_CTL_OFF 0x00 //关闭手机控制功能;设置请求:将设置好的手机控制参数发送到前端设备,前端设备保持该参数的值。包的类型定义:#definePKGTYPE_SET_PHONE_CTL_REQ 0x0019手机控制参数数据包:typedefstruct _PKG_PHONE_CTL设置响应:设置成功,发送响应包,否则不发送。 包的类型定义: #define PKGTYPE_SET_PHONE_CTL_RESP 0x001ATypedefstruct_PKG_COMMON .5 恢复出厂设置:说明:该设置让前端设备将参数恢复到出厂时的状态。设置请求:直接发送恢复出厂设置命令即可。包的类型定义:#define PKGTYPE_RESET_REQ 0x001BTypedefstruct_PKG_COMMON 设置响应:恢复出厂设置成功,客户端收到响应包后,提醒用户重启前端设备 包的类型定义: #define PKGTYPE_RESET_RESP 0x001CTypedefstruct_PKG_COMMON .6 系统升级: 网络参数.1 设备IP地址和端口:说明:设置前端设备的IP地址、端口号、网关、子网掩码、DNS服务器等参数;查询请求:向前端设备发起网络参数查询的请求。包的类型定义:#define PKGTYPE_GET_NETPARAM_REQ 0x0021Typedefstruct_PKG_COMMON查询响应:返回网络参数信息给客户端包的类型定义:#define PKGTYPE_GET_NETPARAM_RESP 0x0022网络参数数据包:typedefstruct _PKG_NETPARAM{unsignedintpkg_head; //协议包的包头unsignedintpkg_length; //协议包的长度intpkg_type; //协议包的类型;S_NETPARAMnetparam;intpkg_end;}PKG_NETPARAM;相关结构体及宏定义:typedefstruct{//网络地址信息 unsignedcharip_addr[IP_ADDR_LEN]; // IP地址 int port; //端口号;}NET_ADDR_INFO;Typedef struct _PKG_NETPARAM{NET_ADDR_INFO dev_addr;charsubnet_mask[15];chargateway[15];char dns[15];}S_NETPARAM;设置请求:向前端设备发送设置好的网络参数。包的类型定义:#define PKGTYPE_SET_NETPARAM_REQ 0x0023网络参数数据包:typedefstruct _PKG_NETPARAM设置响应:参数设置成功,前端设备返回响应数据包,否则不返回 包的类型定义: #define PKGTYPE_SET_NETPARAM_RESP 0x0024 Typedefstruct_PKG_COMMON.2 无线网络配置:说明:自动显示当前的3G拨号模式,并且提供wifi设置项,设置wifi登录的用户名和密码。查询请求:发送协议包,查询当前的无线网络配置状况。 包的类型定义: #definePKGTYPE_GET_WLSPARAM_REQ 0x0025Typedefstruct_PKG_COMMON 查询响应:返回无线网络参数,给客户端显示。 包的类型定义:#definePKGTYPE_GET_WLSPARAM_RESP 0x0026无线网络参数数据包:typedefstruct _PKG_WLSPARAM {unsignedintpkg_head; //协议包的包头unsignedintpkg_length; //协议包的长度intpkg_type;S_WLSPARAMwlsparam;intpkg_end;}PKG_WLSPARAM;相关结构体及宏定义:typedefstruct {intppp_status; //3G是否开机启动intwifi_status; //是否启用WIFIunsignedcharwifi_name[NAME_LEN];//WIFI用户名unsignedcharwifi_psw[PSW_LEN]; //WIFI密码}S_WLSPARAM;#define DIAL_MODE_EVDO 0xb1 //EVDO拨号模式;#define DIAL_MODE_WCDMA 0xb2 //WCDMA拨号模式;#define DIAL_MODE_TD 0xb3 //TD拨号模式;#define DIAL_MODE_NONE 0xb4 //拨号模块不存在;#define WIFI_ENABLE 0xb5 //使能wifi#define WIFI_DISENBLE 0xb6 //不使用wifi#definePPP_STATUS_OK0x01 //3G已拨号#definePPP_STATUS_NONE0x00 //3G未拨号#definePPP_STARTDAIL_ON 0x01 //开机时启动3G模块#definePPP_STARTDAIL_OFF 0x00//开机时不启动3G模块 设置请求:设置无线网络参数,主要是设置wifi上网的用户名和密码。 包的类型定义: #define PKGTYPE_SET_WLSPARAM_REQ 0x0027 无线网络参数数据包:typedefstruct _PKG_WLSPARAM 设置响应:如果wifi设置成功,则返回设置成功代码,如果设置失败,则返回出错代码 包的类型定义: #define PKGTYPE_SET_WLSPARAM_RESP 0x0028typedefstruct_PKG_RETURNSTATUS_RESP#define ERR_WIFI_ERROR 0x13 //wifi模块不可以#defineSET_WIFI_SUCCESS0x143g模块设置和查询 3g模式信息的 包的类型定义#definePKGTYPE_GET_PPP_REQ 0x78 //3//3g信息查询 数据包用通用数据包。 3g模块信息查询回应包 包的类型定义#definePKGTYPE_GET_PPP_RESQ 0x79数据结构typedefstruct _PKG_PPPRESP 3g模块设置 包的类型定义#definePKGTYPE_SET_PPP_REQ 0x80数据结构 typedefstruct _PKG_WLSPARAM 3g模式设置返回包包的类型定义#definePKGTYPE_SET_PPP_RESQ 0x81数据结构通用数据包.3 中转服务器配置:说明:配置中转服务器的IP和端口号。查询请求:向前端设备获取当前的中转服务器IP地址和端口号VTS(VideoTransmit Server); 包的类型定义: #define PKGTYPE_GET_VTSPARAM_REQ 0x0029 Typedefstruct_PKG_COMMON 查询响应:查询成功,返回转服务器参数包,查询失败,不返回。 包的类型定义: #define PKGTYPE_GET_VSTPATAM_RESP 0x002A 中转服务器参数包typedefstruct _PKG_VTSPARAM{unsignedintpkg_head; //协议包的包头unsignedintpkg_length; //协议包的长度 intpkg_type; //协议包的类型; S_ADDR_INFOvts_addr; //中转服务器地址信息 intpkg_end;}PKG_VTSPARAM; 设置请求:将设置好的中转服务器IP和端口号等参数发送给前端设备。 包的类型定义: #define PKGTYPE_SET_VTSPARAM_REQ 0x002B 中转服务器参数包typedefstruct _PKG_VTSPARAM 设置响应:设置成功,返回响应包。 包的类型定义: #define PKGTYPE_SET_VTSPARAM_RESP 0x002C Typedefstruct_PKG_COMMON通道参数.1 编码配置:1.编码格式:说明:在这里切换编码格式,每个前端设备最多支持4种编码格式。查询请求:发送该请求,向前端设备获取前端设备当前的编码格式,并且获取该设备所支持的所有编码格式,供用户自由切换。 包的类型定义: #define PKGTYPE_GET_VIDEOFORMAT_REQ 0x002DTypedefstruct_PKG_COMMON 查询响应:返回当前的视频编码格式相关参数 包的类型定义: #define PKGTYPE_GET_VIDEOFORMAT_RESP 0x002E视频编码格式数据包:typedefstruct _PKG_VIDEOFORMAT{unsignedintpkg_head; //协议包的包头 unsignedintpkg_length; //协议包的长度 unsignedshortpkg_type; //协议包的类型; S_VIDEOFORMATv_fmt; unsignedcharpkg_end;}PKG_VIDEOFORMAT; 相关结构体及宏定义: Typedefstruct _PKG_VIDEOFORMAT { unsignedchar cur_format; //当前编码格式 unsignedchar format[4]; //该设备支持的编码格式,最多支持4}S_VIDEOFORMAT; #defineVIDEO_FORMAT_H264_D1CIF 0x90 #defineVIDEO_FORMAT_H264_D1 0x91 #defineVIDEO_FORMAT_H264_4CIF 0x92#defineVIDEO_FORMAT_H264_2D1 0x93#defineVIDEO_FORMAT_H264_NONE0x94 设置请求:发送变换前端设备的视频编码格式请求 包的类型定义:#define PKGTYPE_SET_VIDEOFOTMAT_REQ 0x002F数据包的结构定义:Typedefstruct _PKG_VIDEOFORMAT 设置响应:无2.码率设置:说明:可以设置前端设备编码器的属性,包括图像格式码率设置、最大码率、最好质量、最差质量、帧率、码流类型、关键帧间隔。 查询请求:发送该请求时,前端设备向客户端发送编码配置相关的信息。 包的类型定义: #define PKGTYPE_GET_ENCODERATTR_REQ 0x0030 Typedefstruct_PKG_COMMON 查询响应:返回编码器相关参数: 包的类型定义: #define PKGTYPE_GET_ENCODERATTR_RESP 0x0031查询编码码流参数数据包 typedefstruct _PKG_ENCODERATTR{ unsignedintpkg_head; unsignedintpkg_length; intpkg_type; S_ENCODERATTRenc_attr; intpkg_end;}PKG_ENCODERATTR;相关结构体及宏定义:#define BITRATE_MODE_VBR 0x98 //动态码率#define BITRATE_MODE_CBR 0x99 //固定码率Typedef struct { Int bitrate; //码率的值<16~4000>,单位为Kbps; Int gop; //I帧间隔<0~65536> unsignedChar rate_mode; //码率模式:CBR/VBR unsignedChar pic_level; //图像等级,0~5;CBR模式表示图像质量,值越小质量越好,VBR模式表示码率的波动范围。 unsignedChar framerate //目标帧率}S_VENATTR;#define MAX_CHN 4;Typedef struct { Char chncount; //前端设备的视频输入通道数,1或4; S_VENATTR main_ven[MAX_CHN]; //主码流码率参数; S_VENATTR minor_ven[MAX_CHN]; //次码流码率参数;}S_ENCODERATTR; 设置请求:向前端设备发送某个编码通道的配置参数。 包的类型定义: #define PKGTYPE_SET_ENCODERATTR_REQ 0x0032 设置码流参数数据包: typedefstruct _PKG_SETVENCATTR{ unsignedintpkg_head; unsignedintpkg_length; Intpkg_type; S_SETVENCATTRset_venc_attr; intpkg_end;}PKG_SETVENCATTR;相关结构体及宏定义:typedefstruct {intchn_num; //被设置的编码通道S_VENATTRmain_attr; //主码流对应的参数S_VENATTRminor_attr; //次码流对应的参数}S_SETVENCATTR; 设置响应:.2 云台设置:说明:该协议包用来为前端设备某个视频通道设置云台参数,包括云台协议、云台地址、云台串口参数。查询请求:向服务器发送请求,获取当前的云台参数 包的类型定义: #define PKGTYPE_GET_PTZPARAM_REQ 0x0035Typedefstruct_PKG_COMMON 查询响应:返回云台当前参数 包的类型定义: #define PKGTYPE_GET_PTZPARAM_RESP 0x0036云台参数数据包: typedefstruct _PKG_PTZPARAM { unsignedintpkg_head; unsignedintpkg_length; intpkg_type; S_PTZPARAMptzparam;I ntpkg_end;}PKG_PTZPARAM; 相关结构体及宏定义: #define PTZ_TYPE_PELCO_P 0xEC //PELCO-P云台协议#define PTZ_TYPE_PELCO_D 0xED //PELCO-D云台协议 Typedefstruct {int protocol; //云台类型,即使用什么协议的云台 int addr; //云台地址 int databit; //云台串口数据位 int stopbit; //串口停止位; int Char parity; //校检位; Int baudrate; //波特率;}S_PTZ; Typedefstruct _PKG_PTZPARAM { intchncount; //视频通道总数 S_PTZ ptz[4];//总共四组云台参数}S_PTZPARAM; 设置请求:将设置好的云台参数发送到前端设备 包的类型定义: #define PKGTYPE_SET_PTZPARAM_REQ 0x0037 云台参数数据包:typedefstruct_PKG_SETPTZ{ unsignedintpkg_head; unsignedintpkg_length; intpkg_type; S_SETPTZsetptz; intpkg_end;}PKG_SETPTZ;相关结构体及宏定义:typedefstruct{intchn_num;S_PTZptz;}S_SETPTZ;设置响应:设置成功,返回包含该类型的_PKG_COMMON包 #define PKGTYPE_SET_PTZPARAM_RESP 0x0038Typedefstruct_PKG_COMMON.3 图像调节:说明:提供对前端设备图像色彩的实时调节,满足用户需求,主要有:亮度、色度、对比度、饱和度。查询请求:发送数据包,向前端设备获取当前的图像的色彩值。 包的类型定义: #define PKGTYPE_GET_PICCOLOR_REQ 0x0039 Typedefstruct_PKG_COMMON查询响应:返回图像的色彩参数:包的类型定义: #define PKGTYPE_GET_PICCOLOR_RESP 0x003A 图像调节参数数据包:typedefstruct _PKG_PICCOLOR{unsignedintpkg_head; unsignedintpkg_length; intpkg_type;S_PICCOLORpic_color;intpkg_end;}PKG_PICCOLOR; 相关结构体及宏定义: Typedefstruct { int chn_num; //被设置的视频通道的通道号int brightness; //图像的亮度,取值范围[0,255]; int contrast; //图像的对比度,取值[0,127]; int hue; //图像的色度,取值[0,255]; int saturate;//图像的饱和度,取值[0,127];}S_PICCOLOR;设置请求:发送已经配置的图像色彩值到前端设备 包的类型定义: #define PKGTYPE_SET_PICCOLOR_REQ 0x003B图像调节参数数据包:typedefstruct _PKG_PICCOLOR设置响应:参数设置成功,返回响应数据包 包的类型定义: #define PKGTYPE_SET_PICCOLOR_RESP 0x003CTypedefstruct_PKG_COMMON报警参数.1 探头报警检测: 说明:用户可以设置是否启用探头报警,报警的时间段,以及配置是否启用抓拍,抓拍的时间间隔,是否启用录像,是否启用屏幕提示,短信报警等报警方式。 查询请求:查询当前的探头报警参数: 包的类型定义: #define PKGTYPE_GET_PROBEALARM_REQ 0x003D Typedefstruct_PKG_COMMON 查询响应:返回探头报警参数 包的类型定义:#define PKGTYPE_GET_PROBEALARM_RESP 0x003E探头报警参数数据包:typedefstruct _PKG_PROBEALARM{unsignedintpkg_head; unsignedintpkg_length; intpkg_type;S_PROBEALARM probeparam;intpkg_end;}PKG_PROBEALARM; 相关结构体及宏定义typedefstructbits{ unsignedscreentips:1;//是否启用屏幕提示,值为1,表示启用,值为0表示关闭 unsignedbuzzer:1;//是否启用蜂鸣器,值为1,表示启用,值为0表示关闭 unsigned:1;//保留 unsignedcapture:1;//是否启用抓拍功能,值为1,表示启用,值为0表示关闭unsignedcapture_chn:4;//该位域的从右到左标识0~3号抓拍通道//如0b0011,表示开启抓拍通道0和1,0b0100表示//开启抓拍通道2,以此类推unsignedftpsend:1;//FTP上传服务值为1,表示启用,值为0表示关闭 unsignedsmsalarm:1;//是否启用短信报警,值为1,表示启用,值为0表示关闭 unsignedalarmrec:1;//是否启用报警录像,值为1,表示启用,值为0表示关闭 unsignedemailsend:1;//是否启用邮件上传,值为1,表示启用,值为0表示关闭 unsignedalarmrec_chn:4;//该位域的从右到左标识0~3号抓拍通道 unsigned:16;//保留}S_ALARMWAY;typedefstruct {int enable; //是否使能探头报警S_SCHEDTIME probetime[7]; //规划探头报警时间S_ALARMWAYalarmway;//报警方式}S_PROBEALARM; 设置请求:将配置好的探头报警参数发送到前端设备 包的类型定义: #define PKGTYPE_SET_PROBEALARM_REQ 0x003F探头报警参数数据包:typedefstruct _PKG_PROBEALAR 设置响应:如果设置成功,则返回该类型的包 包的类型定义:

#define PKGTYPE_SET_PROBEALARM_RESP 0x0040Typedefstruct_PKG_COMMON.2 视频移动侦测: 说明:该设置项可以是否启用移动侦测,以及用户如何部署移动侦测。查询请求:查询移动侦测相关参数,包的类型定义:#definePKGTYPE_GET_MDALARM_REQ0x0041 Typedefstruct_PKG_COMMON查询相应:返回移动侦测报警参数。ARM端根据当前的编码格式,返回相应参数.比如,当前采用的是D1CIF编码格式,那么就返回通道0的移动侦测参数到客户端,如果是4CIF的编码格式,则要返回四次,每次返回一个移动侦测通道的参数。包的类型定义:#definePKGTYPE_GET_MDALARM_RESP0x0042 移动侦测参数数据包:Typedefstruct_PKG_MDALARM {unsignedintpkg_head; unsignedintpkg_length; intpkg_type; S_MDALARMmdalarm; intpkg_end;}PKG_MDALARM相关数据结构及类型定义:#defineMD_ALARM_ON0x01//启用移动侦测#defineMD_ALARM_OFF0x00//关闭移动侦测typedefstruct{ intenable;//使能移动侦测 intchn_num;//移动侦测视频通道 S_MDPARAMmd_param;//移动侦测参数 S_SCHEDTIMEprobetime[7];//移动侦测时间 S_ALARMWAYalarmway; //报警方式}S_MDALARM;typedefstruct{intsensitivity;//移动侦测敏感度0~100,值越小,越灵敏intthreshold;//报警门限值0~100值越小unsignedcharscopebit[52];//报警区域}S_MDPARAM;设置请求:部署了移动侦测报警后,将参数发送给前端设备。包的类型定义:#definePKGTYPE_SET_MDALARM_RESP0x0043 Typedefstruct_PKG_MDALARM 设置响应:设置成功,返回响应包 包的类型定义:#definePKGTYPE_SET_MDALARM_RESP0x0044 Typedefstruct_PKG_COMMON.3 短信报警配置:说明:由用户配置短信报警参数,配置接收报警信号的手机号码,手机号码最多支持4个。查询请求:发送获取短信报警参数的查询请求给前端设备。得到当前前端设备的短信报警参数。 包的类型定义: #define PKGTYPE_GET_SMSALARM_REQ 0x0046Typedefstruct_PKG_COMMON 查询响应:返回短信报警参数给客户端; 包的类型定义: #define PKGTYPE_GET_SMSALARM_RESP 0x0047 短信报警参数数据包 typedef struct _PKG_SMSALARMPARAM{unsignedintpkg_head; unsignedintpkg_length; Intpkg_type;S_SMSALARMsmsalarm;intpkg_end;}PKG_SMSALARMPARAM; 相关数据结构:typedefstruct{PHONE_NUMphone[4];}S_SMSALARM; 设置请求:设置短信报警功能,使能该功能,并且配置产生报警事件时的目标手机。 包的类型定义: #define PKGTYPE_SET_SMSALARM_REQ 0x0048短信报警参数数据包 typedef struct _PKG_SMSALARMPARAM 设置响应:设置成功,返回设置后的状态。 包的类型定义: #define PKGTYPE_SET_SMSALARM_RESP 0x0049 Typedefstruct_PKG_COMMON.4 FTP图像上传: 说明:如果在报警事件产生时需要将抓拍的图片上传到指定的FTP服务器,则可以配置该选项。 查询请求:查询前端设备FTP上传功能相关参数。 包的类型定义: #define PKGTYPE_GET_FTPPARAM_REQ 0x004ATypedefstruct_PKG_COMMON 查询响应:将FTP上传的相关参数返回到客户端。 包的类型定义: #define PKGTYPE_GET_FTPPARAM_RESP 0x004B FTP上传参数数据包typedefstruct _PKG_FTPPARAM{ unsignedintpkg_head; unsignedintpkg_length; intpkg_type; S_FTPPARAMftpparam; intpkg_end;}PKG_FTPPARAM; 相关结构体及宏定义: #defineFTP_SERVER_OPEN0x01//开启FTP服务#defineFTP_SERVER_CLOSE0x00//关闭FTP服务 Typedef struct { Intenable; S_ADDR_INFO ftp_addr; Unsignedchar ftp_user[NAME_LEN]; Unsignedchar ftp_psw[PSW_LEN]; }S_FTPARAM 设置请求:设置FTP上传参数 包的类型定义: #define PKGTYPE_SET_FTPPARAM_REQ 0x004C FTP上传参数数据包typedefstruct _PKG_FTPPARAM 设置响应:设置成功,返回该类型的包 包的类型定义:

#define PKGTYPE_SET_FTPPARAM_RESP 0x004DTypedefstruct_PKG_COMMON.5 报警录像: 说明:用户可以查询和配置报警录像功能,该功能在产生报警事件时,前端设备会自动录制现场视频,并保持到前端设备的存储媒介上。 查询请求:查询报警录像相关参数,返回给客户端 包的类型定义: #define PKGTYPE_GET_ALARMREC_REQ 0x004E Typedefstruct_PKG_COMMON 查询响应:返回报警录像参数给客户; 包的类型定义: #define PKGTYPE_GET_ALARMREC_RESP 0x004F //报警录像参数数据包typedefstruct _PKG_ALARMREC{unsignedintpkg_head; unsignedintpkg_length; intpkg_type;S_ALARMRECalarm_rec;intpkg_end;}PKG_ALARMREC; 相关结构体及类型定义: Typedef struct _PKG_ALARMREC { Int last; //录像延续时间;}S_ALARMREC; 设置请求:设置报警录像功能; 包的类型定义: #define PKGTYPE_SET_ALARMREC_REQ 0x0050 //报警录像参数数据包typedefstruct _PKG_ALARMREC 设置响应:设置成功,返回如下数据类型的包 包的类型定义: #define PKGTYPE_SET_ALARMREC_RESP 0x0051Typedefstruct_PKG_COMMON.6 报警抓拍:说明:报警事件产生时,前端设备抓拍图像并存储。查询请求:查询当前报警抓拍的设置参数包的类型定义:#define PKGTYPE_GET_ALARMCAPTURE_REQ 0x0052Typedefstruct_PKG_COMMON查询响应:返回抓拍设置参数:包的类型定义:#define PKGTYPE_GET_ALARMCAPTURE_RESP 0x0053报警抓拍参数数据包typedefs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论