您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页远程监控系统的云台控制及多画面显示

远程监控系统的云台控制及多画面显示

来源:华佗小知识
维普资讯 http://www.cqvip.com 2002年8月 电 脑 学 习 第4期 远程监控系统的云台控制及多画面显示 刘金明 摘 要陈佩江~ 周洪玉一 基于面向对象的编程思想。对有关串口编程和多画面显示的函数进行了类的封装。提出了串行通信和多画面显示程 序的一般方法。并给出了远程监控系统的软件实现方痞。 关键词 远程监控 Visual C++ 面向对象 串行通信 云台控制 多面面显示 Console Control and Multi-picture Show in Remote Monitoring System Liu Jinming Chen ̄ijiang Zhou Hongyu Abstract Basing on object-oriented program thinking,hits paper encapsulates some functions about serial portprogram and multi-picture show designing,and tells general method of serial communication program and muhipicture show designing.This paper also gives method of realizing remote monitoring and controlling system. Keyword Remote Monitoring Visual C++Object-orientd Sereial Communication Console Controlling Multi-picture Show 远程监控系统中云台和镜头的控制足系统的~个重要 器对应于现实中的站点(如哈尔滨火车站),一个云台对应于 某站点的一个监视点(如哈尔滨火车站售票人厅)。 功能,它须借助于串口编程来实现,如何有效地开发串行通 信程序,足远程监控系统软件中基础、关键的一个环节。本 文采用面向对象的编程方法,利用Visual C++实现监控系 统的云台控制和多画面显尔功能。 1远程监控系统结构 云台白r--h  亡] r--h   ̄-a星r苫 -- h 编码器 编码器 l 2M I编码器 l解码器 声视频采集卡 — 工 工 RS232 解码器 解码器 根据功能_手【I硬件连接方式的不同,远程监控系统可分 为二种类型:总线型,星型, 型扩展型。其中垡型足应用最 多,也是最经济的一种,其连接方法如图1所示。采用星型 }拧计算机 兰竺 网络分摔计算机 网络分控计算 图1星型远程监控系统结构 的远 监控系统的特点足: (1)对镜头可进行二可变控制:控制光圈、焦距、镜头 拉伸; 2远程监控系统的云台控制功能的实现 远程监控系统中控制功能有控制镜头和控制云台,它 须借助于串行通信来实现。串行通信可以在一定的硬件支 持下主要用软件来实现,更方便也更常,{J的串行通信实现 方法是使用硬件接口电路,再辅之以必要的软件驱动程序 。(2)埘云台可做全方位控制:该系统可以对云台的上、 下、左、右转动以及配套的云台护罩的丰H应保护设备进行全 方位的控制; (3)可同时 示多个通道的视频信息; (4)数字录像功能:能根据用户制定的计划智能录 像,也可随时录像,并可对录像文件进行查询和回放; (5)编码懈码器具有双向通讯功能:编码器和解码器 具有独 的地址编码,采J{J数字化信号进行寻址,它可将丰H 应的反馈信息及报警信息回传到主控系统,并可实现单线 遥控; 串行端口的本质功能是作为CPU和串行设备间的编码转 换器。当数据从CPU经过串行端口发送出去时,字节数据 转换为串行的位;在接收数据时,串行的位被转换为字节数 据。 在Windows环境卜,串口足系统资源的一部分。麻川程 序要使用串口进行通信,必须在使埘之前向操作系统提 打开串口要求,通信完成后必须关闭串口,释放资源。在实 际编程中,由于采刚的通信方式和流控制不 ,串口设置也 (6)编码控制节省控制线:系统各点均采用编码方式 总线控制,各监控点设备和控制设备只需挂接在总线上即 不同,这就涉及到DCB的仞始化和读弓串口等细节问题, DCB(Device Control Block)结构定义了串口通信设备的 可,方便灵活。同时编码控制提高了设备控制的可靠性,使 布线、维修较为容易。 本系统中一个编码器最多可接四个云台和摄像头。云 控制设置,许多重要设置部是在此结构中完成的 。 串口通信程序的流程如图2所爪。 在面向对象的编程过程中,类的实现是核心¨题l4J,存 台J{]来控制摄像头的移 和镜头的拉伸、调焦等任务。编码 刘金明哈尔滨铁路局齐齐哈尔科学技术研究所工程师(161002) 陈佩江哈尔滨理丁大学机械动力工程学院(150080) ・4・ 此可以把与串口操作有关的函数封装为一个类:CCorePort。 收稿日期:2002—02—27 维普资讯 http://www.cqvip.com 2£生 H鱼 墼墼H亟兰圭竖H 生 l 图2串行通信程序流程图 布程序中只要卢明一个CComPort的一个实例后便可对串 口进行操作。以卜埘CComPort类最常用的 L个成员函数进 行简要的说明。 (1)打丌串口:void OpenPort(int nPort,DWORD dw— Baud:9600.Parity parity NoParity.BYTE DataBits= 8,StopBits stopbits:1,FlowControl fc=NoFlowControl, BOOL bOverlapped=FALSE);nPon为所使刚的串口号, dwBaut为波特牢,parity为奇偶位,DataBits为数据位,stop- bits为停止位,fc为流 制设置,bOvedapped为是否采用异 步通信方式。 (2)写串口:DWORD WritePort(const void lpBuf,DW— ORD dwCount);lpBuf为存放要写入的数据的缓冲区,dw— Count为要写入的字节数。 (3)读串口:DWORD ReadPort(void lpBuf,DWORD dwCount);lpBuf为存放要读取数据的缓冲区,dwCount为要 读取的字节数。 (4)关闭串口:void ClosePort0,释放所申请的资源。 要实现监控系统的云台控制功能,需要发送给摄像机 云台驱动器命令码来使其进行以’卜操作,下面以操纵云台 向左运动为例说明: ①声明一个CComPort类的实例:CComPort Ill—Port; ②打丌串口:Ill—Port.OpenPort(1,9600,CComPort:: NoParity); ③弓串口:本文就是操纵云台向左运动。 void CCommand::I FC FdFop(BYTE EncordAddr,BYTE PtcAddr1 作云台向 运动 { BY FE cmdl 71; cmd[O I=Oxfc; cmd[1】:Ox6; cmdI 21=EricordAddr; 岛码器地址 cmdl31=0xl: 码器和云台直接相连,值恒定为1 cmd[4]=PtcAddr;//2台拧制器地址 cmdl51=Ox4; 制云台In,_走运动 cmdl6]=Oxl00一((cmdlOl+cmdl 1]+cmd[21+cmd[31+cmd[4]+cmd[5])% Oxm: 验码 m_l’oft.WritePort(cmd,7); ) ④关闭串口:m—Port.ClosePort0。 3远程监控系统多画面显示的实现 埘于远程 控系统来说,多画面显示也是必不可少的 一种功能。与传统的监控系统不同的足:多画面显求不是借 助于硬什来实现,而足完全由软件来完成。基于面向对象的 编程思想,本文定义了一个类CPicView,通过它可方便的实 现以}:功能,并H.可很人程度地提高软件的可扩展性。以F 埘CPicView类的主要的接口函数进行简要的说明。 (1)初始化:BOOL InitPicView(HWND hView);参数 hView为要显示图像的窗口的句柄。 (2)设置显示幅数:BOOL SetVieWMOde(int nMode1: 参数nMode为显示幅数,值可为1,4,9,16。 (3)显示图像:BOOL ShowMPG(int index.int chan— ne1);参数index代表要显示图像的区域为第几个矩形,基 数为0;参数channel为显尔的图像为第几通道的视频信 息,基数为0。 (4)设置某一通道为当前画面:BOOL SetCufDentView (int index);参数index为要设置的 前画面,基数为0:在整 个系统的控制面板上只有一个 前画面,控制功能只对当 前画面起作用.且只有当前画面可进行声音预览。 例如某远程监控系统有十个监视点,要四幅显示其中 的前四个通道的视频信息可由下面的步骤实现。 (1)在系统起动时,首先声明一个CPicView的实例:c picView Ill—PicView; (2)对实例进行初始化Ill—PicView.InitPicView(m_hWn d);m—hwnd为主窗口的句柄,以后所有的视频信息都将在 主窗口内显示: (3)显示四幅图像,可由下面的消息函数实现。 void CMonitorDlg::OnFourView() { nlPicView.SetViewMode(4);/臌置显示方式为四幅显示 f0r(int i_O;i<4;i++) { mPicView.ShowMPG(i,i1;∥显示四幅图像 】 mPicView.SetCurrentView(0);/A ̄置第一个画面为当前监视画面.并 可监听第一个画面所对应的通道的音频信息 】 4结束语 基于面向对象的编程思想,针对远程监控系统中的云 台控制和多画面显示,本文提出了串行通信程序设计和多 画面显示的一般方法,提高了程序的可扩展性和稳定性。采 用此方法编写的远程监控系统 投入使用,实地运行结果 表明,系统可实现对云台的上、卜、左、右转动伞方位的控制 和多画面显示功能,特别适用于监控对人体有毒、有害的 作环境,而且真正实现了少人或无人看管,减轻了现场工作 人员负担,降低了工程造价,提高了经济效益。该系统稳定 可靠,具有较强的适应性,经过简单修改后,就可应用于电 力、交通、医疗、银行等领域。 参考文献 1张力,吕振肃,赵庆林.vc++下串行通信的编程方法[J]. 成都:计算机应用,1999,(3) 2邹逢兴,史美萍,陈立刚.讨’算机硬件技术及应刚基础 【M】.长沙:国防科技大学出版社,2001:26—43 3刘树坤,刘金.用Windows API实现串行通信[J].成都: 计算机应用,2000,20(2):43—44 ・ 5 ‘ 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务