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

时间:2024-04-26 03:03:16 5A范文网 浏览: 论文范文 我要投稿

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


 

1  引言

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

2  系统设计

2.1  系统网络结构

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


 

 图1  系统网络结构图


 

2.2  软件系统功能划分

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

2.3  通信协议

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

2.4  软件设计

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


  [8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr /> 

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

3  系统的关键技术

3.1  Windows 套接字

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

3.2  用户管理数据库的开发

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

4  结束语

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

参考文献

[1] Postel,Reynolds.RFC854.TELNET PROTOCOL SPECIFICATION[S].1983[2] 蒋东兴.Windows Sockets网络程序设计大全[M].北京:清华大学出版社,1999:52-99[3] 张敬谊等.基于C/S结构的面向对象设备管理系统的研究[J].计算机工程,2002,28(1):236-238[4] 程永喜,蒋珉.基于TCP/IP协议的WinSock网络编程及应用[J].计算机时代,2004,21(8).40-45[5] 求是科技.Visual C++6.0数据库开发技术与工程实践[M].北京:人民邮电出版社,2004.78-99[6] 汪翔,袁辉.Visual C++实践与提高­­—网络编程篇[M].北京:中国铁道出版社,2001.17-25


  [8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr /> 

相关文章:

临床医学方面论文的范文04-26

临床医学类毕业论文04-26

回归学术初心把论文写在祖国大地上04-26

二十届学生艺术节!中小学生可报名!04-26

2020年《中国热带医学》杂志社招聘资格审查及笔试公告04-26

新冠肺炎重度缺氧患者早期俯卧位或有疗效 研究论文官04-26

关于科技评价中“唯论文”不良导向的若干措施(试行)04-26

发医学论文很难?可能是你没趁手意的“武器”常笑医学网04-26

当代艺术家曹雕的作品赏析04-26

浅析艺术市场新经济04-26

热搜文章
最新文章