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