高山
"摘要:文章介紹了建設(shè)發(fā)射機(jī)房運(yùn)行監(jiān)控系統(tǒng)的關(guān)鍵技術(shù)難題,及其解決思路和方法。解決了發(fā)射臺(tái)機(jī)房運(yùn)行監(jiān)控系統(tǒng)在和其他系統(tǒng)交換數(shù)據(jù)過(guò)程中,因使用不同的編程語(yǔ)言,而產(chǎn)生不同的漢字編碼帶來(lái)的相互轉(zhuǎn)換難題;并實(shí)現(xiàn)了系統(tǒng)接收數(shù)據(jù)包以后,把字符串按需求拆分還原出相應(yīng)的數(shù)據(jù);還攻克了因網(wǎng)絡(luò)中斷、或者服務(wù)器關(guān)閉等原因,而產(chǎn)生的Socket連接超時(shí)難題。
關(guān)鍵詞:系統(tǒng)開(kāi)發(fā);編碼轉(zhuǎn)換;字符拆分;連接超時(shí)
中圖分類(lèi)號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)21-0204-03
無(wú)線電臺(tái)管理局近年在大力推進(jìn)信息化建設(shè),整合現(xiàn)有的發(fā)射機(jī)單機(jī)自動(dòng)化系統(tǒng)、天線自動(dòng)交換系統(tǒng)、以及機(jī)房輔助系統(tǒng),優(yōu)化發(fā)射臺(tái)安全播出設(shè)備的自動(dòng)化系統(tǒng),提高安全播出效果。機(jī)房運(yùn)行監(jiān)控系統(tǒng)結(jié)構(gòu)如圖1所示:
機(jī)房運(yùn)行監(jiān)控系統(tǒng)的作用就是統(tǒng)一調(diào)度管理全機(jī)房的播出任務(wù),接收、解析由上一級(jí)平臺(tái)下發(fā)的調(diào)度令,調(diào)整運(yùn)行圖,協(xié)調(diào)發(fā)射和天線自動(dòng)化系統(tǒng)進(jìn)行播出;集中管理全機(jī)房設(shè)備,統(tǒng)一監(jiān)控,根據(jù)發(fā)射機(jī)房設(shè)備的運(yùn)行狀態(tài)和運(yùn)行信息,進(jìn)行代播申請(qǐng)和系統(tǒng)運(yùn)行方式設(shè)置,并將運(yùn)行狀態(tài)信息和故障信息,進(jìn)行記錄、匯總和管理 。下面就開(kāi)發(fā)過(guò)程中遇到的關(guān)鍵技術(shù)難題,做一個(gè)初步探討和解析。
1 編碼轉(zhuǎn)換
機(jī)房運(yùn)行監(jiān)控系統(tǒng)和發(fā)射機(jī)單機(jī)自動(dòng)化系統(tǒng)、天線交換系統(tǒng)、機(jī)房輔助系統(tǒng)、上一級(jí)臺(tái)平臺(tái)進(jìn)行數(shù)據(jù)交換,如果是不同編程語(yǔ)言開(kāi)發(fā)的系統(tǒng),就存在一個(gè)漢字編碼轉(zhuǎn)換問(wèn)題。例如微軟的C++默認(rèn)的漢字編碼方式是GB2312,而Sun公司的Java默認(rèn)的漢字編碼方式是UTF-8,在進(jìn)行通信時(shí)如果數(shù)據(jù)包里包含漢字,而沒(méi)有進(jìn)行編碼轉(zhuǎn)換,對(duì)方接收到的數(shù)據(jù)就變成不可知的亂碼,不能正確解析。如何在GB2312與UTF-8之間相互轉(zhuǎn)換?很多資料上講解的編碼轉(zhuǎn)換通常是用字符串的轉(zhuǎn)換,來(lái)進(jìn)行2進(jìn)制的運(yùn)算,這就涉及大量的I/O操作,效率比較低,使用起來(lái)也很不方便。發(fā)射機(jī)自動(dòng)化系統(tǒng)發(fā)送的數(shù)據(jù)包實(shí)時(shí)性要求很高,且編碼轉(zhuǎn)換的工作量往往非常大,因此不得不考慮效率的問(wèn)題。在GB2312和UTF-8互換的時(shí)候,首先需要先轉(zhuǎn)換成UNICOD,然后再轉(zhuǎn)換成GB2312或UTF-8。根據(jù)UTF-8一個(gè)漢字要用3個(gè)字節(jié),而UNICODE只用2個(gè)字節(jié);找出對(duì)應(yīng)關(guān)系,進(jìn)行位操作,即可達(dá)到目的。實(shí)現(xiàn)UTF-8和UNICODE之間的轉(zhuǎn)換,就可用二進(jìn)制運(yùn)算,代替字符串的轉(zhuǎn)換,從而使問(wèn)題簡(jiǎn)單化。經(jīng)過(guò)查找大量相關(guān)資料,反復(fù)測(cè)試,筆者用VC++編寫(xiě)了一個(gè)GB2312和UTF-8相互轉(zhuǎn)換函數(shù)。下面是UTF-8到GB2312具體的實(shí)現(xiàn)代碼,反過(guò)來(lái)也可以實(shí)現(xiàn)GB2312到UTF-8的轉(zhuǎn)換。
void CChineseCodeLib::UTF_8ToUnicode(WCHAR*pOut,char *pText) // UTF-8轉(zhuǎn)換成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 轉(zhuǎn)換成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 轉(zhuǎn)換成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; }
在和不同系統(tǒng)交換數(shù)據(jù)的過(guò)程中,涉及漢字編碼轉(zhuǎn)換的地方,直接調(diào)用上面的函數(shù),即可輕松實(shí)現(xiàn)不同編碼方式的轉(zhuǎn)換。
2 字符串的自由拆分
根據(jù)無(wú)線局制定的《無(wú)線電臺(tái)管理局信息化建設(shè)規(guī)范》,機(jī)房運(yùn)行監(jiān)控系統(tǒng)在和上一級(jí)臺(tái)平臺(tái)、發(fā)射機(jī)單機(jī)自動(dòng)化系統(tǒng)、天線交換系統(tǒng)、機(jī)房輔助設(shè)備交換數(shù)據(jù)時(shí),用Socket進(jìn)行通信,傳送的數(shù)據(jù)包中不同的數(shù)據(jù)量之間用“|”分隔,那么在接收端解包的時(shí)候也是用“|”,判斷還原各個(gè)數(shù)據(jù)量。為了方便在程序中重復(fù)調(diào)用,將數(shù)據(jù)幀拆分代碼封裝成一個(gè)類(lèi),以下為具體實(shí)現(xiàn)方式。
數(shù)據(jù)拆分封裝類(lèi)Header Files代碼:
3.2 在線醫(yī)學(xué)期刊雜志
許多的醫(yī)學(xué)期刊雜志都有電子版供醫(yī)學(xué)專(zhuān)業(yè)人士使用。如創(chuàng)新醫(yī)學(xué)網(wǎng),網(wǎng)址http://www.yixue360.com,能提供《中國(guó)社區(qū)醫(yī)師》、《醫(yī)學(xué)信息》、《吉林醫(yī)學(xué)》等雜志的論文閱讀。還有一些常見(jiàn)醫(yī)學(xué)英文期刊雜志網(wǎng)址,如期刊名稱(chēng)Nature Medicine,網(wǎng)絡(luò)版地址:http://www.nature.com/nm/journal/v14/n5/index.html#af;期刊名稱(chēng):NEJM,網(wǎng)絡(luò)版地址:http://content.nejm.org/ 。還有MD Anderson網(wǎng)站,網(wǎng)址http://www.mdanderson.org,匯集了海量的生物學(xué)、醫(yī)學(xué)類(lèi)期刊供用戶查閱使用。
3.3 專(zhuān)業(yè)醫(yī)學(xué)圖庫(kù)
Internet網(wǎng)為醫(yī)學(xué)信息用戶提供種類(lèi)豐富,逼真實(shí)用的醫(yī)學(xué)專(zhuān)業(yè)圖片,有實(shí)體圖、模型圖、解剖圖、多譜分類(lèi)圖、光學(xué)顯微鏡圖等,它們對(duì)醫(yī)學(xué)教育和醫(yī)療診斷起著舉足輕重的作用。如可在Internet網(wǎng)上搜索血液學(xué)圖譜、解剖學(xué)圖譜等。
3.4 在線醫(yī)學(xué)字典
Internet 上有多種醫(yī)學(xué)字典,如:英漢醫(yī)學(xué)詞典,網(wǎng)址http://www.esaurus.org/,它收錄了數(shù)以萬(wàn)計(jì)的醫(yī)學(xué)術(shù)語(yǔ)英語(yǔ)單詞、詞組,并有準(zhǔn)確、規(guī)范的中文解釋?zhuān)?是醫(yī)學(xué)從業(yè)人員必備的專(zhuān)業(yè)工具書(shū)。還有medical dictionary online,網(wǎng)址http://www.online-medical-dictionary.org/,它是涵蓋醫(yī)學(xué)術(shù)語(yǔ)及縮略語(yǔ)、藥學(xué)、護(hù)理、醫(yī)療設(shè)備、健康狀況等的在線醫(yī)學(xué)辭典。
3.5 醫(yī)學(xué)學(xué)術(shù)交流活動(dòng)
醫(yī)藥衛(wèi)生學(xué)科是新知識(shí)、新技術(shù)頻出的領(lǐng)域,通過(guò)交流溝通信息,能夠了解醫(yī)學(xué)領(lǐng)域的最新研究動(dòng)態(tài),加快知識(shí)更新和學(xué)術(shù)創(chuàng)新。為了適應(yīng)當(dāng)前醫(yī)學(xué)科學(xué)發(fā)展的需要,促進(jìn)醫(yī)師隊(duì)伍職業(yè)素養(yǎng)和醫(yī)術(shù)水平的提高,加速推動(dòng)醫(yī)院的學(xué)科建設(shè)和發(fā)展,需要建立和完善醫(yī)技人員學(xué)術(shù)交流及外派進(jìn)修制度。通過(guò)學(xué)術(shù)交流能更好的結(jié)合本職工作來(lái)學(xué)習(xí)新知識(shí)和新技術(shù),提高自主創(chuàng)新能力,建設(shè)高素質(zhì)創(chuàng)新型的醫(yī)學(xué)專(zhuān)業(yè)技術(shù)人才隊(duì)伍。醫(yī)務(wù)從業(yè)人員在TechExpo網(wǎng)站上可查找有關(guān)醫(yī)學(xué)專(zhuān)業(yè)技術(shù)會(huì)議的安排來(lái)選擇參會(huì),網(wǎng)址URL: http://www.techexpo.com。
3.6 國(guó)內(nèi)外常用的醫(yī)學(xué)檢索數(shù)據(jù)庫(kù)
1)中國(guó)生物醫(yī)學(xué)文獻(xiàn)數(shù)據(jù)庫(kù)(CBM):網(wǎng)址http://www.sinomed.ac.cn/,2004年起可以通過(guò)網(wǎng)絡(luò)檢索所需文獻(xiàn)。
2)國(guó)家科技圖書(shū)文獻(xiàn)中心(NSTL):網(wǎng)址http://www.nstl.gov.cn/,它收藏了涵蓋理工農(nóng)醫(yī)4個(gè)領(lǐng)域的科技文獻(xiàn)信息,提供中外文期刊、學(xué)位論文、標(biāo)準(zhǔn)等各類(lèi)文獻(xiàn)的免費(fèi)檢索和網(wǎng)上全文傳送服務(wù),學(xué)科覆蓋面廣,數(shù)據(jù)量大,可供檢索的二次文獻(xiàn)數(shù)據(jù)量已近5000萬(wàn)條,是目前我國(guó)最大的科技文獻(xiàn)資源共建共享服務(wù)體系。
3)萬(wàn)方醫(yī)學(xué)網(wǎng):萬(wàn)方醫(yī)學(xué)網(wǎng)是萬(wàn)方數(shù)據(jù)股份有限公司聯(lián)合國(guó)內(nèi)醫(yī)學(xué)權(quán)威機(jī)構(gòu)、醫(yī)學(xué)期刊編輯部、權(quán)威醫(yī)學(xué)專(zhuān)家推出的,面向廣大醫(yī)院、醫(yī)學(xué)院校、科研機(jī)構(gòu)及醫(yī)療衛(wèi)生從業(yè)人員的醫(yī)學(xué)信息整合服務(wù)、醫(yī)學(xué)知識(shí)鏈接全開(kāi)放平臺(tái)。為用戶提供期刊雜志、學(xué)位論文、會(huì)議論文、科技成果等信息檢索功能,并提供在線支持服務(wù)。中文網(wǎng)址:http:// www.wanfangdata.com.cn;英文網(wǎng)址:http:// www.wanfangdata.com ,可通過(guò)因特網(wǎng)訪問(wèn)或通過(guò)大學(xué)圖書(shū)館鏡像站點(diǎn)登錄。
4)同方中國(guó)學(xué)位、會(huì)議、期刊全文數(shù)據(jù)庫(kù)(CNKI):網(wǎng)址http://www.cnki.net,是目前世界上最大的連續(xù)動(dòng)態(tài)更新的中國(guó)期刊全文數(shù)據(jù)庫(kù)。
5)重慶維普數(shù)據(jù)庫(kù):網(wǎng)址:http://www.cqvip.com。 它是維普資訊公司推出的一個(gè)功能強(qiáng)大的中文科技期刊檢索系統(tǒng)。
6)Ovid 數(shù)據(jù)庫(kù):網(wǎng)址:http://ovidsp.ovid.com。Ovid 數(shù)據(jù)庫(kù)是世界上最大的生物醫(yī)學(xué)文獻(xiàn)數(shù)據(jù)庫(kù)。
7)Medline與PubMedline:網(wǎng)址http://www.ncbi.nlm.nih.gov/pubmed Medline,是國(guó)際權(quán)威的生物醫(yī)學(xué)文獻(xiàn)書(shū)目型數(shù)據(jù)庫(kù)。
8)Biomed Central(BMC):網(wǎng)址 http://www.highwire.org,提供網(wǎng)上即時(shí)免費(fèi)查閱經(jīng)過(guò)同行評(píng)議的生物醫(yī)學(xué)研究資料。
3.7醫(yī)學(xué)軟件APP
隨著移動(dòng)智能終端的廣泛應(yīng)用,移動(dòng)終端應(yīng)用APP作為新的開(kāi)拓渠道,正逐漸嶄露頭角。APP是針對(duì)手機(jī)這種移動(dòng)連接到互聯(lián)網(wǎng)的業(yè)務(wù)或者無(wú)線網(wǎng)卡業(yè)務(wù)而開(kāi)發(fā)的應(yīng)用程序服務(wù),將APP運(yùn)用于移動(dòng)教學(xué)已成為趨勢(shì)。如“醫(yī)學(xué)移動(dòng)課堂APP”是由醫(yī)學(xué)教育網(wǎng)研發(fā)的一款移動(dòng)學(xué)習(xí)手機(jī)應(yīng)用軟件,覆蓋醫(yī)學(xué)領(lǐng)域的全部課程,包括醫(yī)師資格、執(zhí)業(yè)/助理醫(yī)師、執(zhí)業(yè)藥師、護(hù)士資格、檢驗(yàn)師等課程。我們可以利用醫(yī)學(xué)軟件APP隨時(shí)隨地檢索學(xué)習(xí)感興趣的醫(yī)學(xué)知識(shí)。
參考文獻(xiàn):
[1] 張卡琳. 醫(yī)學(xué)期刊編輯文獻(xiàn)檢索基本技能的培養(yǎng)[J].現(xiàn)代醫(yī)藥衛(wèi)生2010(26).
[2]王升東. 醫(yī)學(xué)信息資源利用中在的問(wèn)題及對(duì)策[J]. 醫(yī)學(xué)情報(bào)工作,2011.
[3] http://bbs.iiyi.com/thread-1303696-1.html.