新闻中心

EEPW首页 > 设计应用 > 视频会议远端摄像机控制的研究

视频会议远端摄像机控制的研究

作者:时间:2006-05-07来源:网络收藏

摘 要: 分析了视频会议中如何实现对远端摄像机的控制,该项技术在远程教学和实时监控方面起着非常重要的作用。

本文引用地址:http://www.eepw.com.cn/article/245687.htm

关键词: 视频会议 winsocket 规程分析仪

随着我国改革开放的不断深入和经济的迅猛发展,社会上方方面面的会议、会晤、磋商与日骤增,特别是在经济领域,信息、时间、效益等现代化的观念开始深入人心,以及在各行业部门的行政会议增多情况下,作为先进国家的现代化通信手段之一的会议电视业务通信的即时性和便利性等就显示出了突出的优越性。

本软件的编写及调试均基于VCON公司生产的MeetingPoint E25视频会议系统,E25不具有摄像机控制功能,而C150具有摄像机控制功能。也就是说在两个C150之间可直接进行摄像机的相互控制,而利用E25系统控制远端摄像机的转动是不可行的。因此,编写一个在不同系统下兼容的软件是非常有必要的,而且具有实际意义。

1 设计思想

本软件的总体结构采用客户机—服务器模式。具体工作过程如下:通过规程分析仪,我们可测得对摄像机具体的控制信号。首先,客户机发一信号(例如LEFT),通过网络传到服务器,服务器根据不同的信号向COM口写不同的控制信号,相应地与COM口相连的摄像机就会作出各种动作。在编程过程中,首先给出了RS-232C与摄像机接口的连线,然后给出了用规程分析仪测定控制信号的方法,对SONY摄像机的控制信号进行了测定。由于要实现远端摄像机控制,所以信号的传输是建立在网络的基础上。接下来是对网络通信Wondows Csocket的原理介绍,这为后面实现信号的传输打下了基础,也是此软件的关键。

2 控制线的连接及控制信号的测定

2.1 控制线的连接

由于要实现对摄像头的控制,因此需要在主机COM口与摄像头接口之间连一控制线,RS-232C与SONY摄像头对应针的连接如表1所示。

2.2 控制信号的测定

运用规程分析仪可以对各种协议进行分析,我们用规程分析仪测得摄像头转动的各种控制信号。其部分控制信号如下,以十六进制形式给出。

·初始化信号

0x883001FF

0x88010001FF

0x81090447FF

·向右转信号

0x810106010B090103FF

0x810106010B090303FF

视频会议远端摄像机控制的研究 在TCP/IP网间网中,通信的两个进程间相互作用的主要模式是客户/服务器模式,即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。客户/服务器模式的建立基于以下两点:首先,建立网络的起因是网中软硬件资源、运算能力和信息的不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。其次,相互通信的进程之间既不存在着父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为两者的数据提供同步,这就是基于客户/服务器模式的TCP/IP。

不管SOCKET的内部机制如何,它提供给应用程序员的最终界面是一组系统调用:包括创建套接字CONNECT与ACCEPT、监听连结LISTEN,以及用于数据传输的SEND和RECV,还有关闭套接字的CLOSESOCKET等。图2是SOCKET面向连结的基于客户/服务器模式的系统调用时序图。在VC++5.0中提供了两个类以支持用WINSOCK I进行网络编程。类CasynSocket封装了WINSOCK I的函数,其网络功能很强大;Csocket则将网络编程简化为向一个Carchive类中串行化数据。在编程中我们的类是从Csocket类中派生的。

3.2 功能函数介绍

在本软件中,客户机程序和服务器程序均采用Visual C++5.0编写。在MFC类库中有专门负责管理Winsock编程的Csocket类,在Csocket类中,它覆盖了所有的Win32I函数,因此在用Winsock编程时,只需用Csocket声明一个实例,然后即可调用相应函数进行各种操作(Csocket类成员函数见Visual C++ Books on Line。使用Csocket类时,必须同步声明CsocketFile类实例。

在本程序中用到的主要函数介绍如下:

· Csocket::Create

函数原型:BOOL Create(UNITnSocketPort=0,INT nSocketType=SOCK-STREAMLPCTSR lpszSocketADDress=NULL);

功能:在建立一个Socket对象之后,调用Create函数来创建Windows Socket,然后调用Bind函数给Socket赋一特定的地址。

参数:

nSocketPort:Socket选用的端口。

NSocketType:Socket类型(SOCK-STREAM,SOCK-DGRAM)。

lpszSocketAddress:服务器的网络地址。

·CasynSocket::Connect

函数原型:BOOL Connect(LPCTSR IpszHostAddress,UNIT nHostPost)

BOOL Connect(Const SOCKADDR*IpsockAddr,INT nSockAddrLen)

功能:调用Connect函数与服务器建立连接。

参数:

IpszHostAddress:服务器的网络地址。

NHostPost:服务器使用的端口。

IpsockAddr:指向SOCKADDR的地址,包含了被连的Socket的地址。

NSockAddrLen:IpsockAddr包含的地址的长度。

·GetCommState

函数原型:BOOL GetCommState(HANDLE hFile,LPDCB IpDCB)

功能:从指定的通信设备取当前的控制设置。

参数:

hFILE:通信设备的句柄。

LpDCB:DCB结构的指针。

·SetCommState

函数原型:BOOL SetCommState(HANDLE jFile,LPDCB lpDCB)

功能:为指定的通信设备设置控制信息。

参数:同上个函数中参数(jFile.LPDCB)的定义。

·WriteFile

函数原型BOOLWriteFile(HANDLE hFile,Lpvoid lpBuffer,DWORD nNumberofBytes Towrite,LPDWORD LP-NumberofBytes Written,LPOVERSAPPED lpoverlapped)

功能:往串行口写数据,此操作对同步或异步通信都是适用的。

参数:

hFile:串行口句柄,此串行口的句柄用GENERIC-WRITE方式创建。

lpBuffer:指向包含数据缓冲区的指针。

NNumberofBytesTowrite:写向串行口的数据的字节数。

IpNumberofBytesWritten:指向实际写向串行口数据的字节的指针。

Ipoverlapped:指向OVERLAPPED结构的指针。

4 程序流程图

在本软件中共有客户机和服务器两个程序,其流程图分别如图3和图4所示。

5 软件实现的功能

本软件可以实现以下四个方面的功能:

·客户机可以随意控制服务器的摄像机上下左右的转动;

·客户机可以随意控制服务器的摄像机聚焦和拉伸;

·客户机可以与服务器进行交谈,交换意见;

·客户机方和服务器方都可保存对方的留言。

参考文献

1 黄东霖.视听多媒体业务.北京:电子工业出版社,1997

2 Michael J.Young.Mastering Microsoft Visual C ++ 4.北京:电子工业出版社,1997

(收稿日期:1999-07-13)

 

 

 

 

 

 

 



评论


相关推荐

技术专区

关闭