《基于设备服务器的电视发射机远程监控系统》由会员分享,可在线阅读,更多相关《基于设备服务器的电视发射机远程监控系统(11页珍藏版)》请在金锄头文库上搜索。
1、基于设备服务器的电视发射机远程监控系统苏振涛,罗钧旻,白小军(西安工业大学 计算机科学与工程学院,陕西西安710032)摘 要:(目的)本文给出了一种基于设备服务器的电视发射机远程监控系统的体系结构;讨论了CGI开 发技术并开发了电视发射机远程监控系统的CGI及通信组件;(方法)(结果)提出并实现了利用CGI和 XML技术实现远程监控计算机与嵌入式Web服务器进行动态交互的具体方法,(结论)解决了本系统中设 备服务器资源受限问题。关键词:设备服务器;电视发射机;体系结构;CGI; XML(研究的里要意义)目前,多数广播和电视发射传输总台是人工现场监控发射机操作的全天候值班 方式,不仅耗费人力物
2、力,而旦给维护工作带来了许多不便。要对发射机进行远程监控,可以利用现有 的Internet,因为大多数企事业单位都已经与Internet互连。Internet的应用范围越来越广,其中以万维 网(WWW : World Wide Web)因其界血的友好性和易用性使得其应用无处不在,轻轻一点浏览器,就可 以得到各种图文并茂和动静结合的多媒体信息。(研究的切入点)而新兴的嵌入式设备服务器解决了申行 设备的网络化控制问题,使得利用广泛分布的Internet建设基于Web技术的远程监控系统成为一利可能。 (研究拟解决的关键问题)为了利用现成的Internet和Web技术,我们引入了嵌入式设备服务器,利用
3、嵌 入式设备服务器设计了电视发射机的远程监控系统,实现了发射机“无人值班,有人留守”的工作方式。1系统的体系结构系统采用B/S模式,即在远程监控计算机上通过浏览器软件访问嵌入式设备服务器,嵌入式设备服 务器与数字电视发射机进行通信,把发射机的当前运行状态数据传送到远程控制终端,并可一以在控制终收稿日期:2009-02-16作者简介:苏振涛(I983-),男,西安工业大学,硕士研究生,主要从事智能控制与软件工程方面的研究。Email: suzhencdu 手机:13629297848;*通讯作者:苏振涛,suzhenedu 端上完成对发射机的技术指标监测和行为控制。通过对系统进行具体分析和研究,
4、设计出的系统体系结 构如图1所示。图1系统体系结构Fig. 1 Architecture of the system本系统主要山发射机、发射机控制器、嵌入式设备服务器、本地局域网、互联网(Internet)和控 制终端构成。嵌入式设备服务器是远程监控系统的核心部件,本系统采用美国Lantronix公司生产的UDSI100,它 提供了简单、快速、低成本的联网方式,用它可以方便地通过Internet对设备进行远程监测和控制管理。 它所支持的协议包括:ARP,UDP,TCP, ICMP, Telnet, TFTP, AutoIP, DHCP, HTTP和SNMP。UDS1100上有 48bit的全球
5、唯-硬件地址,把UDS1100接入Internet时必须得给它分配一个网络IP地址。在本系统中 UDS1100的主要作用是作为一个嵌入式Web服务眠和一个申口数据转换设备,把从发射机传送过来的申 口数据封装成在Internet上传输的TCP/IP包,或者把从网络上发送过来的TCP/IP包拆解成申口数据供发 射机控制嚣识别。一般情况下,由于发射台内网(Intranet)多采用以太局域网,所以每个嵌入式设备服务器可以直接 连入内网,并被分配惟一的IP地址。本地监控终端可以通过内网访问每个嵌入式设备服务器;远程监控 终端可以根据嵌入式设备服务器的IP地址实现访问,采用这种方式,系统管理员可以在任何地
6、方对系统 进行维护,甚至可以通过手机上网进行监控。2软件设计 2.1软件体系结构本系统软件采用基于组件的设计思想,本系统的软件体系结构如图2所示。嵌入式设备上的软件系统图2软件体系结构Fig.2 Software architecture2.2 Http ServerHttp Server是基于HTTP协议的一种Web Server。在服务器上,运行着一个守护进程对端口进行监 听,等待来自客户端的HTTP请求,当一个请求到来时,将创建一个子进程为用户的连接服务。HTTP 协议是建立在传输控制协议TCP的有连接的、可靠的服务之上,但HTTP是“无状态”的协议,每次连 接只处理一个请求。2.3 C
7、GI组件CGI (Common Gateway Interface,公共网关接口)心”,是Web服务器与外部扩展应用程序交互的 种标准接口,是一种简单高效的Web请求处理方式,支持ShelL脚本、Perl、C等多种开发语言。本系 统中所使用的嵌入式设备服务器只提供了CGI编程接口,并且提供了一套C语言函数库,所以本系统采 用C语言编写CGI程序。2.3.1 CGI的工作原理CGI的工作流程是:当客户端的用户向Web服务器发出HTTP清求时,Web服务器根据接收到的数据, 设置环境变量并启动CGI程序,将用户数据传递给CGI程序,山CGI程序把客户的请求从环境变量和标 准输入Stdin中取出,并
8、进行相应的加工处理,等待处理结束后,山CGI程序通过标准输出决定如何对客 户的请求做出应答,将处理结果以HTML格式送到客户端浏览器叫。其中FORM是目前WWW中最强 大的输入工具,也是CGI中最常使用的输入界面,使用FORM向CGI接口提交数据有两种模式“GET” 和“POST”,选择哪一种模式取决于FORM中的属性“METHOD”字段的设置。2.3.2 UDS1100 上的 CGI 开发UDS1100上的CGI组件是基于Lantronix公司所配套的CPK (CoBox Programmers Kit) API开发的。CPK中包含有Lantronix编写开发的一套工具软件集,一套函数库,一
9、组(16个)demo程序,以及一组 文档。CPK用于CobOS操作系统下的应用开发,编写的程序只能使用CPK上C语言函数。CGI组件以C 函数的形式实现,基本原型为:int functionname ( WCT *w, char char*hdr);其中w为Web通信结构体,包含了本次连接的Socket句柄、输入缓冲区和输出缓冲X指针等信息, 用于控制请求数据接收和响应数据发送;亦为请求的CGI名称;hdr为请求头,可以从中获取数据包长 度和Cookie等信息。开发完成CGI组件后,要在Web服务器中对其进行注册,将该函数与某个CGI名称关联起来,其组 件注册的格式为:WebMethRegi
10、ster( MPOST, functionname post, functionname.cgiu);其含义是当用户以POST方式请求functionname.cgi时,请求会调用名称为function name post的函数 (CGI组件)处理它。2.3.3电视发射机监控系统的CGI实现本系统中开发的CGI组件总共有10个,其形式如下:loginpost(WCT *w, char *file, char *hdr);用户登录CGIzjkget (WCT *w, char *file, char *hdr);主监控CGIzjkpost (WCT *w, char char *hdr);/ 主
11、监控CGIfsjget (WCT *w, char *file, char *hdr);发射机数据CGIgfget (WCT *w, char *file, char *hdr);功放数据CGIsaveget (WCT *w, char char *hdr);/ 发射机数据保存CGIxtglget(WCT *w, char *file, char *hdr);系统管理CGIenipost (WCT *w, charchar *hdr);电邮管理CGIwhpost (WCT *w, char *file, char *hdr);名称维护CGIpwdpost (WCT *w, char *file
12、, char *hdr);密码管理CGIuserpost (WCT *w, char char *hdr);用户管理CGI其中,主监控CGI实现方式有两种,一种是以GET方式请求时的实现方式,另一种是以POST方式 请求时的实现方式。在Web服务器中对CGI进行注册,其形式为:WebMethRegister(HPOST, loginpost, login.cgi);WebMethRegister(MGETM, zjkget, “zjk.cgi”);以GET方式请求zjk.cgi时,请求调用名称为zjkget的函数处理它WebMethRegister(”POST”,zjkpost, zjk.cg
13、i);以POST方式请求zjk.cgi时,请求调用名称为zjkpost的函数处理它WebMethRegister(nGETM, fsjget, nfsj.cgiH);WebMethRegister(nGETM, gfget, “gf.cgi”);WebMethRegister(,GETM, saveget, save.cgi);WebMethRegisterCGET, xtglget, xtgl.cgiM);WebMethRegister(POSTn, empost, mngem.cgi);WebMethRegister(,POST, whpost, whmc.cgi);WebMethRegi
14、ster(POST*, pwdpost, pwd.cgi);WebMethRegister(MPOST, userpost, nuser.cgi);以GET方式提交时是将表单中的数据按照variable=value的形式添加到action所指向的URL后面,它 是不安全的,因为在传输过程,数据被放在请求的URL中,有-些隐私信息能被第三方看到;GET方式 用在提交小量数据时。以POST方式提交时是将表单中的数据放在FORM的数据体中,按照变景和值相 对应的方式传递到action所指向URL;所有操作对用户来说都是不可见的;可传输的数据量比较大,用 在提交大量数据时,例如文本、图像等。2.4串行
15、通信组件开发CGI只能提供给用户动态的网页交互信息,但是这些信息信息于电视发射机设备的实时状态,这些 实时状态是通过申口发送过来的,需要和串口通信,提取设备状态或控制设备动作,需要开发一些出口 通信组件。针对串口消息中指定的各条控制命令,分别设计相应的函数,实现命令的发送和返回数据的 接收,并定义相应的结构体保存接收到的数据。系统中主要的通信组件其实现函数为:int serialSendRcv(int chan, BYTE *buf, BYTE len, BYTE *rbuf, BYTE rlen);/*通过串口发送数据并接收响应。chan:串口通道号buf:发送缓冲区,存放欲发送给控制嘴的控制命 令len:发送的消息长度rbuf:接收缓冲区的首地址Hen:接收缓冲区的宽度,接收的响应不超过该长度 */char getcfginfo(TXCFG * r);/获取发射机的配置信息,TXCFG发射机配置结构体char gettxinfo(TXCUR * r);获取发射机的当前信息,TXCUR发射机当前状态结构体char getfpaintb(FPA *r, char n);获取功放的当前信息,FPA为存放功放设备实时状态的结构体,n为功放号char getmplog(LOGMP *r, unsigned char n);获