远程监控系统的云台控制及多画面显示
2002年8月 电 脑 学 习 第4期
远程监控系统的云台控制及多画面显示
刘金明 陈佩江~ 周洪玉一
摘 要 基于面向对象的编程思想。对有关串口编程和 多画面显示的函数进行了类的封装。提出了串行通信和多画面显示程
序 的一 般方法 。并给 出 了远程 监控 系统的软件实现方痞 。
关键词 远程监控 Visual C++ 面向对象 串行通信 云 台控制 多面面显示
Console Control and Multi-picture Show in Remote M onitoring System
L...
2002年8月 电 脑 学 习 第4期
远程监控系统的云台控制及多画面显示
刘金明 陈佩江~ 周洪玉一
摘 要 基于面向对象的编程思想。对有关串口编程和 多画面显示的函数进行了类的封装。提出了串行通信和多画面显示程
序 的一 般方法 。并给 出 了远程 监控 系统的软件实现方痞 。
关键词 远程监控 Visual C++ 面向对象 串行通信 云 台控制 多面面显示
Console Control and Multi-picture Show in Remote M onitoring System
Liu Jinming Chen~ijiang Zhou Hongyu
Abstract
Keyword
Basing on object-oriented program thinking,this 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.
Remote Monitoring Visual C++ Object-oriented Serial Communication Console Controlling Multi-picture Show
远程监控系统中云台和镜头的控制足系统的~个重要
功能,它须借助于串口编程来实现,如何有效地开发串行通
信程序 ,足远程监控系统软件中基础、关键的一个环节。本
文采用面向对象的编程方法 ,利用 Visual C++实现监控系
统的云台控制和多画面显尔功能。
1远程监控系统结构
根据功能_手【I硬件连接方式的不同,远程监控系统可分
为二种类型:总线型,星型, 型扩展型。其中垡型足应用最
多,也是最经济的一种 ,其连接方法如图 1所示。采用星型
的远 监控系统的特点足:
(1)对镜头可进行二可变控制:控制光圈、焦距、镜头
拉伸;
(2)埘 云台可做全方位控制:该系统可以对 云台的上、
下、左、右转动以及配套的云台护罩的丰H应保护设备进行全
方位的控制;
(3)可同时 示多个通道的视频信息;
(4) 数字录像功能 :能根据用户制定的计划智能录
像,也可随时录像,并可对录像文件进行查询和回放;
(5)编码懈 码器具有双向通讯功能:编码器和解码器
具有独 的地址编码,采J{J数字化信号进行寻址 ,它可将丰H
应的反馈信息及报警信息回传到主控系统,并可实现单线
遥控;
(6)编码控制节省控制线:系统各点均采用编码方式
总线控制,各监控 点设备和控制设备只需挂接在总线上即
可,方便灵活。同时编码控制提高了设备控制的可靠性,使
布线、维修较为容易。
本系统中一个编码器最多可接四个云台和摄像头。云
台J{]来控制摄像头的移 和镜头的拉伸、调焦等任务。编码
刘金明 哈尔滨铁路局齐齐哈尔科学技术研究所工程师 (161002)
陈佩江 哈尔滨理丁大学机械动力工程学院 (150080)
· 4 ·
器对应于现实中的站点(如哈尔滨火车站),一个云台对应于
某站点的一个监视点 (如哈尔滨火车站售票人厅)。
r-- h r-- h ~-a星r-- h 云台 白 亡] 苫
声视频采集卡 —
l解码器
l 2M
I编码器 编码器
工
解码器
编码器
工
解码器
}拧计算机
兰竺
网络分摔计算机 网络分控计算
RS232
图 1星型远程监控 系统结构
2远程监控系统的云台控制功能的实现
远程监控系统中控制功能有控制镜头和控制 云台,它
须借助于串行通信来实现。串行通信可以在一定的硬件支
持下主要用软件来实现,更方便也更常,{J的串行通信实现
方法是使用硬件接 口电路,再辅之以必要的软件驱动程序
。 串行端 口的本质功能是作为 CPU和串行设备间的编码转
换器。当数据从 CPU经过串行端 口发送出去时,字节数据
转换为串行的位;在接收数据时,串行的位被转换为字节数
据。
在 Windows环境 卜,串口足系统资源的一部分。麻川程
序要使用串口进行通信,必须在使埘之前向操作系统提
打开串口要求,通信完成后必须关闭串口,释放资源。在实
际编程中,由于采刚的通信方式和流控制不 ,串口设置也
不同,这就涉及到 DCB的仞始化和读弓串口等细节问题,
DCB (Device Control Block) 结构定义了串口通信设备的
控制设置,许多重要设置部是在此结构中完成的 。
串口通信程序的流程如图 2所爪。
在面向对象的编程过程 中,类的实现是核心¨题l4J,存
此可以把与串口操作有关的函数封装为一个类: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; 制云台I,n_走运动
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()
{
nl
— PicView.SetViewMode(4);/臌 置显示方式为四幅显示
f0r(int i_O;i<4;i++)
{
m
_ PicView.ShowMPG(i,i1; ∥显示四幅图像
】
m
_ PicView.SetCurrentView(0);/A~置第 一个画面为当前监视画面.并
可监听第 一个画面所对应的通道的音频信息
】
4结 束 语
基于面向对象的编程思想,针对远程监控系统中的云
台控制和多画面显示,本文提出了串行通信程序设计和多
画面显示的一般方法,提高了程序的可扩展性和稳定性。采
用此方法编写的远程监控系统 投入使用,实地运行结果
表明,系统可实现对云台的上、卜、左、右转动伞方位的控制
和多画面显示功能,特别适用于监控对人体有毒、有害的
作环境,而且真正实现了少人或无人看管,减轻了现场工作
人员负担,降低了工程造价,提高了经济效益。该系统稳定
可靠,具有较强的适应性,经过简单修改后,就可应用于电
力、交通、医疗、银行等领域。
参 考 文 献
1张力,吕振肃,赵庆林.vc++下串行通信的编程方法[J].
成都:计算机应用,1999,(3)
2邹逢兴,史美萍,陈立刚.讨’算机硬件技术及应刚基础
【M】.长沙:国防科技大学 出版社,2001:26—43
3刘树坤,刘金.用 Windows API实现串行通信[J].成都:
计算机应用,2000,20(2):43—44
· 5 ‘
维普资讯 http://www.cqvip.com
本文档为【远程监控系统的云台控制及多画面显示】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。