基于VC视频监控设备管理系统的设计与实现_第1页
基于VC视频监控设备管理系统的设计与实现_第2页
基于VC视频监控设备管理系统的设计与实现_第3页
基于VC视频监控设备管理系统的设计与实现_第4页
基于VC视频监控设备管理系统的设计与实现_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

基于VC视频监控设备管理系统的设计与实现

摘要城市公共安全视频网络中设备种类众多,各种设备的管理方式不尽相同,其中相当一部分管理方式是非图形界面的命令行形式,这实际上造成了网络中设备管理的不便、混乱以及低效。针对这种现状,开发了基于图形界面的视频监控设备管理系统,建立数据库对设备信息进行整合规划,将各种设备的管理通信协议进行封装,统一设备管理接口。该系统在青岛市城市公共安全视频网络中得到了应用,取得了理想的效果,提高了设备管理的效率,实现了资源的整合。关键词VC;视频监控;设备管理;套接字

1引言随着人们对生活和工作环境安全性要求的不断提高,安全防范系统的重要性变得越来越突出,而视频监控系统其独有的特点使其进入了一个快速发展的时期,视频采集,视频传输,视频管理,视频显示和视频录像等各个重要方面都得到了长足的发展。但是对于视频监控的另一方面--设备的管理方面一直被忽略而停滞不前。现在对于设备的管理还停留在早期的利用Telnet[1]实现远程登录上,早期的Telnet管理方式有以下几个缺点:①界面不易于浏览,获取信息慢。②管理方式烦琐。③需要记忆大量的IP地址,所以这种管理方式效率非常低下。因此这成了制约视频监控技术发展的一大瓶颈。目前,最为流行的开发方式是利用可视化开发工具进行开发,而VC是应用最为广泛的可视化开发工具,它的特点是把原来抽象的数字、图表、逻辑等用直观的图形图像的形式表现出来。本系统开发基于“青岛市公共安全视频网”,项目选用北京博研新创公司的系列产品,通信协议采用公司提供的网络管理协议。设计的设备管理系统在VisualC++环境下实现了对视频监控中多台设备的数据查询、数据浏览、数据修改等功能,大大方便了用户的管理要求。系统采用Socket进行通信实现Telnet管理功能。

2系统设计

系统网络结构系统采用两种传输方式,在地理位置方便的地方,接入光纤进行传输,辅以微波设备进行备份,在一些比较特殊的地方(比如山脉),光纤接入比较困难,采用微波设备进行传输,保证传输信息及时有效。实现设备管理系统的功能,采用从管理计算机以设备网络管理协议发出各种命令(查询、修改、重启等)通过光端机或者微波设备传输到设备,从而实现设备与计算机之间进行通信。系统的网络结构如图1所示。图1系统网络结构图

软件系统功能划分1)系统初始化及权限管理模块通过从数据库中获取信息完成系统的初始化。以树的形式把所有设备的名字列在系统主界面的左侧。系统设有管理权限来决定用户所能做的工作,分为系统管理员和一般用户两级。一般用户可以查看所有设备信息,不能修改。系统管理员可以查看,也可以修改。2)系统查询及浏览模块系统初始化后,用户发出请求动作(单击设备)时,连接设备,获取信息,对收到的信息做出相应的处理,显示在界面供用户浏览。3)系统修改模块用户在界面上找到要修改的参数时,发出请求修改动作(双击该参数),弹出相应的对话框,提示用户如何进行修改。把修改后的信息发送到设备,完成参数的修改。

通信协议本协议描述的是编码器,解码器与播放器、管理服务器之间的通信协议。可以用来查询或者修改设备信息。网络管理协议在多数情况下使用TCP协议,由管理器向网管代理发送命令,网管代理返回结果。在局域网搜索设备时,使用UDP协议,这种情况下只支持有限的命令。TCP和UDP服务端都使用端口6180。不论是命令还是结果,统一使用表1的命令格式。表1命令格式命令长度数据2字节2字节不定长命令:指定命令码,取值范围0-65535长度:指定数据域的大小,范围0-65532数据:包含附加的数据,具体格式在每个命令中定义(1)查询属性:命令码:0x0002数据:属性名字列表,每个属性名一行,每行以’“n’字符结尾。一个完整的属性名格式为:,其中section为类别名,例如,查询设备的IP地址命令格式为:/n,查询第一路视频亮度为_brightness/n.(2)修改属性:命令码:0x0003数据为文本格式,以NL(’“n’)作为换行符,每行设置一个属性。设置属性值命令的返回结果没有附加的信息,根据错误码确定是否成功。

软件设计软件实现思路本系统的软件实现分为:①连接数据库,导入设备名字。②获取设备信息,进行相应处理。③修改设备信息。各部分重点工作如下所述:1)设备名字导入建立数据库,建立相应的设备表信息,把网内的所有设备的名字以及IP地址等相关信息全部录入到表内。数据库连接方式采用MFCODBC方式,使用CDatabase打开数据源的连接,使用向导加入由CRecordset类派生的用户记录集类,完成对数据库表的绑定。使用记录集对象对数据库进行遍历操作,使设备名字在树型控件中列出。以下是对数据库实现遍历操作:if(!m_pSet-IsOpen()//m_pSe是一个记录集指针m_pSet-Open();m_pSet-MoveFirst();HTREEITEMhBase=m_("编码器",0,0);//生成树的根结点while(!m_pSet-IsEoF())//判断是否到尾端{m_(m_pSet-m_name,0,0,hBase);//插入到树型控件m_pSet-MoveNext();//继续下一条记录}m_pSet-MoveFirst();2)设备信息的读入构造一个连接函数,用来实现与设备的连接。为了使用VC的Socket通信,需要在向导中选中WindowsSocket选项。连接函数说明VoidConnection(CStringstr_ip){//定义套接字SOCKETm_socket;m_socket=socket(AF_INET,SOCK_STREAM,0);unsignedlongul=1;//设置为非阻塞模式ioctlsocket(m_socket,FIONBIO,&ul);interror;SOCKADDR_INipaddr;//一种结构体___addr=inet_addr(str_ip);//IP地址_family=AF_INET;//网际网区域_port=htons(6180);//端口号error=connect(m_socket,(SOCKADDR*)&ipaddr,sizeof(SOCKADDR));if(error!=0)MessageBox(“连接错误”);}连接后,可以向设备发送查询命令,获取需要的信息,因此需要有GetInfo()函数,函数代码VoidGetInfo(){//查询命令形成一个长字符串放在这里charbufsend[200]=”commandline“;//获取字符串长度intcommandcount=strlen(bufsend);bufsend[0]=0;bufsend[1]=0x02;//表示查询bufsend=0;//视第四个字节而定,如果超过256,则改为1,依次类推//上面为1,则减去256bufsend=commandcount//重新形成一个字符串strcpy(bufsend+4,”commandline”);send(m_socket,bufsend,220,0);//字符串发送到设备。charbufreceive[230];//定义一个接收数组,定义为全局变量recv(m_socket,bufreceive,230,0);//从设备中得到信息closesocket(m_socket);//关闭套接字}

对获得的bufreceive通过CString类的Find函数进行相应处理,得到相应的信息反馈到图形界面,实现信息读入。3)修改设备信息对每个参数进行修改,把修改后的信息传回设备,函数为SetInfo(CStringstr_command),把需要修改的属性按命令格式形成字符串,传给str_command,其它代码同读入基本相同,只不过需要把上面的bufsend[1]改为0x03(0x03表示修改)。软件流程首先连接数据库,把所有的设备名字导入到树型控件中。当选择其中一台设备,根据函数名字获取相对应的IP地址,调用连接函数与设备进行连接。连接成功后可以发送相应的查询命令到设备,将用户需要的信息查询出来,然后再经过适当的处理,使这些设息以可视化的形式反馈到用户浏览界面,如果需要修改参数,则选择相应的参数进行修改,再把修改后的参数发送回相应的设备。以此实现对设备的管理。通信过程实现流程如图2所示。图2通信流程图界面设计系统的界面设计采用全中文图形人机界面,界面设计友好,操作简单,所有的功能只需用鼠标点击菜单,按钮或者列表,以及双击参数即可完成。系统主界面如图3所示。图3系统主界面

3系统的关键技术

Windows套接字套接字(socket)是一种网络编程接口,它是对通信端点的一种抽象,提供了一种发送和接收数据的机制。用户目前可以使用两种套接字,它们是数据报套接字(DatagramSockets)和流式套接字(StreamSockets),本系统根据其特点选用流式套接字。在使用套接字之前,必须先拥有一个套接字,系统调用socket()向应用程序提供创建套接字的手段,其调用格式SOCKETPASCALFARsocket(intaf,inttype,intprotocol);该调用要接收三个参数:af、type、protocol。参数af指定通信发生的区域,UNIX系统支持的地址族有:AF_UNIX、AF_INET、AF_NS等,而DOS、WINDOWS中仅支持AF_INET,它是网际网区域。因此,地址族与协议族相同。参数type描述要建立的套接字的类型。参数protocol说明该套接字使用的特定协议,如果调用者不希望特别指定使用的协议,则置为0,使用默认的连接模式。根据这三个参数建立一个套接字,并将相应的资源分配给它,同时返回一个整型套接字号。建立套接字后,需调用connect()用于建立连接,connect()的调用格式intPASCALFARconnect(SOCKETs,conststructsockaddrFAR*name,intnamelen);参数s是欲建立连接的本地套接字描述符。参数name指出说明对方套接字地址结构的指针。对方套接字地址长度由namelen说明。如果没有错误发生,connect()返回0。否则返回值SOCKET_ERROR。在面向连接的协议中,该调用导致本地系统和外部系统之间连接实际建立。

用户管理数据库的开发用户管理数据库采用的是SQLServer数据库,建立用户权限表以及设备信息表,通过MFCODBC方式访问,使用类CRecordset的函数MoveFirst()、MoveLast()、MoveNext()、MovePrev()、IsBOF()、IsEOF()对设备信息表实现遍历操作,使用类CRecordset的函数AddNew增加设备或者函数Delete删除设备。并根据用户登录情况确定用户是否可以修改设备信息,以此实现后台数据与前台界面操作的一致。

4结束语“青岛市公共安全视频网”是青岛市政府重点扶持项目,由青岛理工大学现代通讯研究所联合公安局,交警,人防,边防等部门联合开发的大型视频监控网,包含有几百个视频源,上千台设备需要进行管理。根据该项目对设备管理的要求,利用VisualC++做出了友好直观的浏览界面,实现了更便捷、更高效的管理方式。系统的主要优点有:①摒弃了传统的Dos界面,改进的图形界面易于浏览,更快更好的获取信息。②把分散的设备管理整合在一起,实现了资源整合。③使设备易于维护。目前本管理系统已应用于青岛市公共安全项目中,系统运行稳定可靠,响应速度快,操作方便,获得了一致好评。随着计算机网络化和通信技术的快速发展,视频监控的设备管理方面必将得到更好的发展。

参考文献[1]Postel,PROTOCOLSPECIFICATION[

温馨提示

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

评论

0/150

提交评论