发射机房运行监控系统关键技术的解决方案

2016-10-18 23:15高山
电脑知识与技术 2016年21期
关键词:系统开发

高山

"

摘要:文章介绍了建设发射机房运行监控系统的关键技术难题,及其解决思路和方法。解决了发射台机房运行监控系统在和其他系统交换数据过程中,因使用不同的编程语言,而产生不同的汉字编码带来的相互转换难题;并实现了系统接收数据包以后,把字符串按需求拆分还原出相应的数据;还攻克了因网络中断、或者服务器关闭等原因,而产生的Socket连接超时难题。

关键词:系统开发;编码转换;字符拆分;连接超时

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)21-0204-03

无线电台管理局近年在大力推进信息化建设,整合现有的发射机单机自动化系统、天线自动交换系统、以及机房辅助系统,优化发射台安全播出设备的自动化系统,提高安全播出效果。机房运行监控系统结构如图1所示:

机房运行监控系统的作用就是统一调度管理全机房的播出任务,接收、解析由上一级平台下发的调度令,调整运行图,协调发射和天线自动化系统进行播出;集中管理全机房设备,统一监控,根据发射机房设备的运行状态和运行信息,进行代播申请和系统运行方式设置,并将运行状态信息和故障信息,进行记录、汇总和管理 。下面就开发过程中遇到的关键技术难题,做一个初步探讨和解析。

1 编码转换

机房运行监控系统和发射机单机自动化系统、天线交换系统、机房辅助系统、上一级台平台进行数据交换,如果是不同编程语言开发的系统,就存在一个汉字编码转换问题。例如微软的C++默认的汉字编码方式是GB2312,而Sun公司的Java默认的汉字编码方式是UTF-8,在进行通信时如果数据包里包含汉字,而没有进行编码转换,对方接收到的数据就变成不可知的乱码,不能正确解析。如何在GB2312与UTF-8之间相互转换?很多资料上讲解的编码转换通常是用字符串的转换,来进行2进制的运算,这就涉及大量的I/O操作,效率比较低,使用起来也很不方便。发射机自动化系统发送的数据包实时性要求很高,且编码转换的工作量往往非常大,因此不得不考虑效率的问题。在GB2312和UTF-8互换的时候,首先需要先转换成UNICOD,然后再转换成GB2312或UTF-8。根据UTF-8一个汉字要用3个字节,而UNICODE只用2个字节;找出对应关系,进行位操作,即可达到目的。实现UTF-8和UNICODE之间的转换,就可用二进制运算,代替字符串的转换,从而使问题简单化。经过查找大量相关资料,反复测试,笔者用VC++编写了一个GB2312和UTF-8相互转换函数。下面是UTF-8到GB2312具体的实现代码,反过来也可以实现GB2312到UTF-8的转换。

void CChineseCodeLib::UTF_8ToUnicode(WCHAR*pOut,char *pText) // UTF-8转换成Unicode

{ char* uchar = (char *)pOut;

uchar[1] = ((pText[0] & 0x0F) << 4) + ((pText[1] >> 2) & 0x0F);

uchar[0] = ((pText[1] & 0x03) << 6) + (pText[2] & 0x3F);

return; }

void CChineseCodeLib::UnicodeToGB2312(char* pOut,unsigned short uData) // Unicode 转换成GB2312

{WideCharToMultiByte(CP_ACP,NULL,&uData,1,pOut,sizeof(WCHAR),NULL,NULL);

return;}

void CChineseCodeLib::UTF_8ToGB2312(string &pOut, char *pText, int pLen) // UTF-8 转换成GB2312

{ char * newBuf = new char[pLen];

char Ctemp[4];

memset(Ctemp,0,4);

int i =0; int j = 0;

while(i < pLen)

{ if(pText[i] > 0)

{newBuf[j++] = pText[i++]; }

else

{ WCHAR Wtemp;

UTF_8ToUnicode(&Wtemp,pText + i);

UnicodeToGB2312(Ctemp,Wtemp);

newBuf[j] = Ctemp[0];

newBuf[j + 1] = Ctemp[1];

i += 3; j += 2; }}

newBuf[j] = \0;

pOut = newBuf;

delete []newBuf;

return; }

在和不同系统交换数据的过程中,涉及汉字编码转换的地方,直接调用上面的函数,即可轻松实现不同编码方式的转换。

2 字符串的自由拆分

根据无线局制定的《无线电台管理局信息化建设规范》,机房运行监控系统在和上一级台平台、发射机单机自动化系统、天线交换系统、机房辅助设备交换数据时,用Socket进行通信,传送的数据包中不同的数据量之间用“|”分隔,那么在接收端解包的时候也是用“|”,判断还原各个数据量。为了方便在程序中重复调用,将数据帧拆分代码封装成一个类,以下为具体实现方式。

数据拆分封装类Header Files代码:

3.2 在线医学期刊杂志

许多的医学期刊杂志都有电子版供医学专业人士使用。如创新医学网,网址http://www.yixue360.com,能提供《中国社区医师》、《医学信息》、《吉林医学》等杂志的论文阅读。还有一些常见医学英文期刊杂志网址,如期刊名称Nature Medicine,网络版地址:http://www.nature.com/nm/journal/v14/n5/index.html#af;期刊名称:NEJM,网络版地址:http://content.nejm.org/ 。还有MD Anderson网站,网址http://www.mdanderson.org,汇集了海量的生物学、医学类期刊供用户查阅使用。

3.3 专业医学图库

Internet网为医学信息用户提供种类丰富,逼真实用的医学专业图片,有实体图、模型图、解剖图、多谱分类图、光学显微镜图等,它们对医学教育和医疗诊断起着举足轻重的作用。如可在Internet网上搜索血液学图谱、解剖学图谱等。

3.4 在线医学字典

Internet 上有多种医学字典,如:英汉医学词典,网址http://www.esaurus.org/,它收录了数以万计的医学术语英语单词、词组,并有准确、规范的中文解释, 是医学从业人员必备的专业工具书。还有medical dictionary online,网址http://www.online-medical-dictionary.org/,它是涵盖医学术语及缩略语、药学、护理、医疗设备、健康状况等的在线医学辞典。

3.5 医学学术交流活动

医药卫生学科是新知识、新技术频出的领域,通过交流沟通信息,能够了解医学领域的最新研究动态,加快知识更新和学术创新。为了适应当前医学科学发展的需要,促进医师队伍职业素养和医术水平的提高,加速推动医院的学科建设和发展,需要建立和完善医技人员学术交流及外派进修制度。通过学术交流能更好的结合本职工作来学习新知识和新技术,提高自主创新能力,建设高素质创新型的医学专业技术人才队伍。医务从业人员在TechExpo网站上可查找有关医学专业技术会议的安排来选择参会,网址URL: http://www.techexpo.com。

3.6 国内外常用的医学检索数据库

1)中国生物医学文献数据库(CBM):网址http://www.sinomed.ac.cn/,2004年起可以通过网络检索所需文献。

2)国家科技图书文献中心(NSTL):网址http://www.nstl.gov.cn/,它收藏了涵盖理工农医4个领域的科技文献信息,提供中外文期刊、学位论文、标准等各类文献的免费检索和网上全文传送服务,学科覆盖面广,数据量大,可供检索的二次文献数据量已近5000万条,是目前我国最大的科技文献资源共建共享服务体系。

3)万方医学网:万方医学网是万方数据股份有限公司联合国内医学权威机构、医学期刊编辑部、权威医学专家推出的,面向广大医院、医学院校、科研机构及医疗卫生从业人员的医学信息整合服务、医学知识链接全开放平台。为用户提供期刊杂志、学位论文、会议论文、科技成果等信息检索功能,并提供在线支持服务。中文网址:http:// www.wanfangdata.com.cn;英文网址:http:// www.wanfangdata.com ,可通过因特网访问或通过大学图书馆镜像站点登录。

4)同方中国学位、会议、期刊全文数据库(CNKI):网址http://www.cnki.net,是目前世界上最大的连续动态更新的中国期刊全文数据库。

5)重庆维普数据库:网址:http://www.cqvip.com。 它是维普资讯公司推出的一个功能强大的中文科技期刊检索系统。

6)Ovid 数据库:网址:http://ovidsp.ovid.com。Ovid 数据库是世界上最大的生物医学文献数据库。

7)Medline与PubMedline:网址http://www.ncbi.nlm.nih.gov/pubmed Medline,是国际权威的生物医学文献书目型数据库。

8)Biomed Central(BMC):网址 http://www.highwire.org,提供网上即时免费查阅经过同行评议的生物医学研究资料。

3.7医学软件APP

随着移动智能终端的广泛应用,移动终端应用APP作为新的开拓渠道,正逐渐崭露头角。APP是针对手机这种移动连接到互联网的业务或者无线网卡业务而开发的应用程序服务,将APP运用于移动教学已成为趋势。如“医学移动课堂APP”是由医学教育网研发的一款移动学习手机应用软件,覆盖医学领域的全部课程,包括医师资格、执业/助理医师、执业药师、护士资格、检验师等课程。我们可以利用医学软件APP随时随地检索学习感兴趣的医学知识。

参考文献:

[1] 张卡琳. 医学期刊编辑文献检索基本技能的培养[J].现代医药卫生2010(26).

[2]王升东. 医学信息资源利用中在的问题及对策[J]. 医学情报工作,2011.

[3] http://bbs.iiyi.com/thread-1303696-1.html.

猜你喜欢
系统开发
信息管理与信息系统专业系统开发开放实验室设计
基于开源系统的综合业务数据采集系统的开发研究