摘 要 城市公共安全视频网络中设备种类众多,各种设备的管理方式不尽相同,其中相当一部分管理方式是非图形界面的命令行形式,这实际上造成了网络中设备管理的不便、混乱以及低效。针对这种现状,开发了基于图形界面的视频监控设备管理系统,建立数据库对设备信息进行整合规划,将各种设备的管理通信协议进行封装,统一设备管理接口。该系统在青岛市城市公共安全视频网络中得到了应用,取得了理想的效果,提高了设备管理的效率,实现了资源的整合。 关键词 VC;视频监控;设备管理;套接字
1 引言
随着人们对生活和工作环境安全性要求的不断提高,安全防范系统的重要性变得越来越突出,而视频监控系统其独有的特点使其进入了一个快速发展的时期,视频采集,视频传输,视频管理,视频显示和视频录像等各个重要方面都得到了长足的发展。但是对于视频监控的另一方面--设备的管理方面一直被忽略而停滞不前。现在对于设备的管理还停留在早期的利用Telnet[1]实现远程登录上,早期的Telnet管理方式有以下几个缺点:①界面不易于浏览,获取信息慢。②管理方式烦琐。③需要记忆大量的IP地址,所以这种管理方式效率非常低下。因此这成了制约视频监控技术发展的一大瓶颈。 目前,最为流行的开发方式是利用可视化开发工具进行开发,而VC是应用最为广泛的可视化开发工具,它的特点是把原来抽象的数字、图表、逻辑等用直观的图形图像的形式表现出来。 本系统开发基于“青岛市公共安全视频网”,项目选用北京博研新创公司的系列产品,通信协议采用公司提供的网络管理协议。设计的设备管理系统在Visual C++6.0环境下实现了对视频监控中多台设备的数据查询、数据浏览、数据修改等功能,大大方便了用户的管理要求。系统采用Socket[2]进行通信实现Telnet管理功能。2 系统设计
2.1 系统网络结构
系统采用两种传输方式,在地理位置方便的地方,接入光纤进行传输,辅以微波设备进行备份,在一些比较特殊的地方(比如山脉),光纤接入比较困难,采用微波设备进行传输,保证传输信息及时有效。 实现设备管理系统[3]的功能,采用从管理计算机以设备网络管理协议发出各种命令(查询、修改、重启等)通过光端机或者微波设备传输到设备,从而实现设备与计算机之间进行通信。系统的网络结构如图1所示。
2.2 软件系统功能划分
1)系统初始化及权限管理模块 通过从数据库中获取信息完成系统的初始化。以树的形式把所有设备的名字列在系统主界面的左侧。系统设有管理权限来决定用户所能做的工作,分为系统管理员和一般用户两级。一般用户可以查看所有设备信息,不能修改。系统管理员可以查看,也可以修改。 2)系统查询及浏览模块系统初始化后,用户发出请求动作(单击设备)时,连接设备,获取信息,对收到的信息做出相应的处理,显示在界面供用户浏览。 3)系统修改模块 用户在界面上找到要修改的参数时,发出请求修改动作(双击该参数),弹出相应的对话框,提示用户如何进行修改。把修改后的信息发送到设备,完成参数的修改。2.3 通信协议
本协议描述的是编码器,解码器与播放器、管理服务器之间的通信协议。可以用来查询或者修改设备信息。网络管理协议在多数情况下使用TCP协议 ,由管理器向网管代理发送命令,网管代理返回结果。在局域网搜索设备时,使用UDP协议,这种情况下只支持有限的命令。TCP和UDP服务端都使用端口6180。不论是命令还是结果,统一使用表1的命令格式。表1命令格式命令 | 长度 | 数据 |
2字节 | 2字节 | 不定长 |
第一路视频亮度为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 />
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