《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應用 > 一種基于PDF動態(tài)標注的遠程維修指導系統(tǒng)
一種基于PDF動態(tài)標注的遠程維修指導系統(tǒng)
2015年微型機與應用第11期
婁景藝,屈曉旭
(海軍工程大學 電子工程學院,湖北 武漢 430033)
摘要: 針對短波低速通信條件下船舶遠程維修指導效率低下的問題,提出了一種新的基于PDF動態(tài)標注技術(shù)的遠程維修指導信息交互手段。基于Acrobat SDK實現(xiàn)了PDF文檔所見即所得方式的動態(tài)標注,其中重點解決了PDF文檔動態(tài)加載、基于Windows鉤子技術(shù)的PDF文檔鼠標響應處理、PDF標注動態(tài)添加中的坐標空間變換以及PDF標注文本的動態(tài)修改等問題。實際應用表明,通過應用PDF動態(tài)標注技術(shù),實現(xiàn)了窄帶低速通信條件下的所見即所得的維修信息描述,為無視頻通信輔助條件下的高效遠程維修指導提供了一種可行手段。
Abstract:
Key words :

婁景藝,屈曉旭

(海軍工程大學 電子工程學院,湖北 武漢 430033)

  摘  要: 針對短波低速通信條件下船舶遠程維修指導效率低下的問題,提出了一種新的基于PDF動態(tài)標注技術(shù)的遠程維修指導信息交互手段。基于Acrobat SDK實現(xiàn)了PDF文檔所見即所得方式的動態(tài)標注,其中重點解決了PDF文檔動態(tài)加載、基于Windows鉤子技術(shù)的PDF文檔鼠標響應處理、PDF標注動態(tài)添加中的坐標空間變換以及PDF標注文本的動態(tài)修改等問題。實際應用表明,通過應用PDF動態(tài)標注技術(shù),實現(xiàn)了窄帶低速通信條件下的所見即所得的維修信息描述,為無視頻通信輔助條件下的高效遠程維修指導提供了一種可行手段。

  關(guān)鍵詞便攜式文檔;動態(tài)標注;遠程維修;短波通信;所見即所得

0 引言

  目前,短波通信因其應用范圍廣、抗毀性強、通信距離遠(可全球通信)、運行成本低等特點,仍是船舶遠洋航行中不可或缺的通信手段[1]。依托短波通信系統(tǒng)構(gòu)建基于計算機輔助協(xié)同工作(Computer Supported Cooperative Work,CSCW)[2-3]技術(shù)的遠程維修指導平臺,對于保持和提高船舶的持續(xù)運行能力具有顯著意義。但是,由于短波信道環(huán)境惡劣,短波通信帶寬一般較窄,在美國國防部最新提出的MIL-STD-188-141C短波組網(wǎng)協(xié)議中,最大信道帶寬也只有24 kHz[4],通常僅能支持話音和低速數(shù)據(jù)業(yè)務(wù)。現(xiàn)有基于語音的遠程維修指導方式主要存在以下兩方面問題:一是維修指導雙方難以快速準確地描述指示燈和故障模塊的位置、具體檢修的方法和位置、顯示的具體情況等輔助信息;二是通常短波語音通信可懂度低,維修指導過程開展困難。相比話音通信,短波低速數(shù)據(jù)通信的實時性稍差,但可靠性高。本文利用短波低速數(shù)據(jù)通信設(shè)備,基于PDF動態(tài)標注技術(shù)實現(xiàn)了一種窄帶通信條件下的所見即所得(What You See Is What You Get,WYSIWYG)的高效維修信息描述和傳遞手段。

1 平臺總體設(shè)計

  維修指導過程中常見的信息包括故障位置、故障狀態(tài)、自檢結(jié)果、檢修位置等,在低通信帶寬條件下,將維修信息進行合理編碼能夠有效壓縮數(shù)據(jù)流量,提高遠程維修指導效率。維修信息編碼過程本質(zhì)上是一種信源編碼過程,平臺針對維修交互信息的特點,利用模型基壓縮編碼理論對維修交互信息進行高碼率壓縮,有效降低了信息碼率。模型基信源編碼的基本思想是在收發(fā)信者之間共享信源模型,將信源產(chǎn)生的原始消息建模為某種激勵信號作用于信源模型,并在通信時僅傳輸此激勵信號。理論研究表明,如果信源模型構(gòu)建合理,所提取的激勵信號碼率將遠低于原始消息碼率。

  本系統(tǒng)中將維修現(xiàn)場的裝備相關(guān)信息(包括裝備內(nèi)外部結(jié)構(gòu)、組成、連接關(guān)系、工作狀態(tài)、維修手冊、電路圖冊等)建模為信源模型,并從收發(fā)雙方圍繞裝備展開的故障描述和維修指導信息中提取激勵信號。具體設(shè)計中采用PDF文檔承載信源模型,收發(fā)雙方保存相同PDF文檔庫,利用PDF標注技術(shù)描述激勵信號,使維修指導雙方可以高效準確地描述各類維修信息,保證了低信道帶寬條件下的維修信息交互效率。

001.jpg

  遠程維修指導平臺依托普遍安裝的陸地和船舶通信設(shè)施實現(xiàn),由陸地部分和海上部分兩部分組成,如圖1所示。陸地部分和海上部分內(nèi)部都使用以太網(wǎng)作為網(wǎng)絡(luò)載體,二者之間經(jīng)短波無線網(wǎng)關(guān)控制器利用短波數(shù)字通信設(shè)備互連互通。

  廠家客戶端和船舶客戶端采用一致的架構(gòu)設(shè)計。維修專家可利用PDF動態(tài)標注技術(shù)、實時VoIP語音和文本聊天等形式展開遠程維修指導。基于以太網(wǎng)絡(luò)的實時VoIP語音通信和文本聊天技術(shù)已很成熟,本文不再贅述。本文重點分析客戶端中PDF動態(tài)標注技術(shù)的實現(xiàn),這也是平臺設(shè)計中的重點。

2 PDF動態(tài)標注技術(shù)的實現(xiàn)原理

  便攜式文檔格式(PDF)是由Adobe公司于1993年開發(fā)出的一種文件格式,能容納電子表單、網(wǎng)頁、視頻、音頻、3D虛擬現(xiàn)實等豐富內(nèi)容,便于集成各種媒體格式的維修資料。根據(jù)PDF文檔規(guī)范,一個PDF文檔(document)是由若干對象(object)組成的,這些對象共同組成了文檔的頁面(pages)。PDF標注(annotation,也稱附注)是一類特殊的PDF對象。要對PDF標注進行動態(tài)控制,需要對PDF文檔的結(jié)構(gòu)進行解析。目前,PDF文檔的解析工具有多種,主流的解析工具包括Apache公司推出的開源工具PDFBox[5]、著名開源站點Sourceforge的iTEXT[6]以及Adobe公司提供的Acrobat SDK[7]。前兩者是開源項目,但功能有限,系統(tǒng)設(shè)計中選用Adobe SDK開發(fā)。

  Acrobat SDK采用OLE對象(SDK中稱作IAC對象)實現(xiàn)Windows平臺下的PDF文檔顯控[8]。IAC對象分兩個層次,一是Application View(AV)層,使用該層控制PDF文檔的顯示,該層中包括AVDoc、AVPageView、AVMenu等對象,顯示的文檔形式與Acrobat reader顯示非常相似,用戶界面友好;二是Portable Document(PD)層,使用該層提供的對象可操作PDF文檔中的內(nèi)容,例如增減頁面、操作PDF文檔中的標注等。

  需要指出的是,Acrobat SDK中PDF文檔在客戶程序中的顯示是以COM接口形式實現(xiàn)的,該接口提供了PDF文檔操作需要的基本功能,但是未提供鼠標響應事件。

  實現(xiàn)PDF標注動態(tài)控制的過程須解決以下四個問題:(1)PDF文檔在用戶程序中的動態(tài)加載;(2)為顯示的PDF文檔增加鼠標響應等用戶交互能力;(3)以所見即所得的方式添加PDF標注;(4)實現(xiàn)PDF標注文本的動態(tài)修改功能。

3 PDF文檔動態(tài)加載的實現(xiàn)

  PDF文檔的加載流程如下:

  //創(chuàng)建AVDoc對象,用于控制PDF文檔的顯示

  AVDoc=new AcroAVDocClass();

  //打開PDF文檔,并將其關(guān)聯(lián)至tabPage

  AVDoc.OpenInWindowEx(fileFullName,tp1.Handle.ToInt32(),..);

  //創(chuàng)建PDDoc對象,用于解析和控制PDF文檔的內(nèi)容

  PDDoc=(AcroPDDoc)AVDoc.GetPDDoc();

  //獲取當前文檔的AVPageView對象

  AVPageView=(AcroAVPageView)AVDoc.GetAVPageView();

  //導航至首頁

  AVPageView.GoTo(0);

  本設(shè)計中采用多標簽頁形式顯示不同PDF文檔,即每個TabPage上顯示一個PDF文件。PDF文檔顯示到客戶端TabPage上后,在TabPage的大小發(fā)生變化時,其上顯示的PDF文檔不會自動同步變化,需要程序自行控制。控制方法是在TabPage所在的TabControl的Resize事件中重設(shè)PDF視窗大小和位置,具體方法是首先使用系統(tǒng)API函數(shù)GetWindow獲取PDF顯示視窗句柄,然后利用系統(tǒng)API函數(shù)SetWindowPos將該窗體調(diào)整至合適位置。

4 基于Windows鉤子技術(shù)的PDF文檔鼠標響應處理

  在PDF標注編輯過程中,采用鼠標指定標注所在位置的所見即所得的方法是最高效的方法,但Acrobat SDK未提供鼠標響應機制。為此,本系統(tǒng)設(shè)計中利用Windows的全局鼠標鉤子機制為PDF文檔視窗加入了鼠標事件。

  鉤子(Hook)是一種Windows消息處理機制,用戶程序可在鉤子上掛載自定義函數(shù)監(jiān)視指定窗口的某種消息,被監(jiān)視的窗口可以是其他線程創(chuàng)建的[9]。當指定消息發(fā)出時,在沒有到達目的窗口前,鉤子程序可以先捕獲該消息。圖2為鼠標鉤子的實現(xiàn)流程圖。

002.jpg

  設(shè)計MouseHook類掛載和卸載鼠標鉤子,捕獲Windows標準鼠標事件及觸發(fā)自定義的.Net事件OnMouseActivity。PDF顯示窗口類訂閱.Net事件響應鼠標事件。在鉤子回調(diào)函數(shù)中,若滿足以下條件,則觸發(fā)鼠標事件MouseHookProc:(1)顯示PDF的窗體可見且處于最上層;(2)鼠標位置在PDF窗體區(qū)域范圍內(nèi)。

  鉤子的掛載和卸載采用Windows API函數(shù)SetWindowsHookEx和UnhookWindowsHookEx實現(xiàn)。

  5 PDF標注動態(tài)操作中不同坐標系間映射的實現(xiàn)

  在對PDF標注進行添加、選中、修改過程中,需要解決屏幕坐標系、用戶坐標系及設(shè)備坐標系間的相互映射問題。

005.jpg

  在Windows操作系統(tǒng)中,屏幕坐標系以屏幕左上角為原點,向右、向下分別為橫縱兩個坐標軸的正方向。鼠標鉤子返回的鼠標位置就是相對于此坐標系的。而用戶坐標系(User Space)和設(shè)備坐標系(Device Space)是PDF文檔操作中兩個重要概念。用戶坐標系如圖3所示,缺省的用戶坐標系為每次頁面剛剛加載時的坐標系。該坐標系的原點位于該頁媒體框(Media Box)的左下角。圖中的Crop Box為PDF文件顯示的區(qū)域,而Media Box則包含了PDF文件四周的灰色邊框。缺省的用戶坐標系的單位為1/72英寸。在Acrobat SDK中,PD層的各種對象均使用該坐標系,這是因為該坐標系與實現(xiàn)無關(guān)。

  設(shè)備坐標系是PDF文件顯示于屏幕上時使用的坐標系,其單位為像素,坐標軸取向與屏幕坐標軸取向相同,如圖4所示。與用戶坐標系不同,該坐標系用于PDF文件的顯示。設(shè)備坐標系的原點位于Crop Box的左上角。眾所周知,隨著PDF文檔的縮放,該區(qū)域的位置在屏幕上是變化的。

003.jpg

  作為PDF文檔的一種對象,PDF標注的位置和大小采用的坐標系為用戶坐標系。由上可見,為了以一種所見即所得的方式添加標注,即將標注添加到鼠標指示的PDF文檔位置上,必須將鼠標位置坐標(屏幕坐標系)映射到用戶坐標系上,但Acrobat SDK未提供該映射接口,而是提供了設(shè)備坐標系到用戶坐標系的接口。為了實現(xiàn)所見即所得的鼠標操作,需執(zhí)行如下步驟:

  (1)獲取鼠標在屏幕上的位置Pm(屏幕坐標系);

  (2)將Pm映射到設(shè)備坐標系Pd;

  (3)將Pd映射到用戶坐標系Pu。

  Pm到Pd的映射可采用以下公式實現(xiàn):

  Pd.x=Pm.X-PdfWindowRect.Left+PdfWindowDeviceRect.Left

  Pd.y=Pm.Y-PdfWindowRect.Top+PdfWindowDeviceRect.Top

  其中,PdfWindowRect為PDF顯示窗體中Media Box的矩形區(qū)域(采用屏幕坐標系),可直接根據(jù)Tabpage窗體客戶區(qū)矩形獲得;PdfWindowDeviceRect為PDF窗體Crop Box的矩形區(qū)域(采用用戶坐標系),可利用AVPageView.GetAperture()函數(shù)獲得。Pd到Pu的映射可直接調(diào)用AVPageView.DevicePointToPage()函數(shù)實現(xiàn)。

6 PDF標注文本的動態(tài)修改

  PDF標注在添加到PDF頁面上時,可以指定其對應的文本內(nèi)容。但與Acrobat Reader中不同,該內(nèi)容可以閱覽,但不支持現(xiàn)場編輯。雖然如此,Acrobat SDK預留了PDF標注文本的設(shè)置接口,即AcroPDAnnot對象的SetContents和GetContents函數(shù)。系統(tǒng)設(shè)計中,使用此接口解決該問題。用戶在指定文本框中輸入的文本內(nèi)容自動添加到PDF文件上選中的標注上。PDF文檔標注本身并無選中與否的屬性。為此,系統(tǒng)設(shè)計中為文檔標注加入了選中屬性,方法是當鼠標點擊PDF文檔時,自動判定當前位置是否有PDF標注,如果有,則在程序中記錄該標注作為當前選中標注,同時更改該標注的顏色以突出顯示。

7 平臺應用效果及分析

004.jpg

  圖5為應用基于PDF動態(tài)標注技術(shù)的遠程維修指導平臺的用戶界面示例。維修船員首先利用文本聊天和表單對故障進行了描述。陸地工程師根據(jù)故障現(xiàn)象,打開設(shè)備圖冊(一個PDF文件),并在“電源穩(wěn)壓單元內(nèi)部結(jié)構(gòu)圖”頁面的電源輸出連接頭處添加標注(圖中左上方標注),指導船員檢查連接器處是否損壞。船員客戶端會自動同步打開同一PDF文件,并同步添加相同標注。船員檢查后發(fā)現(xiàn)電源板中一個電解電容器損壞,故障排查完成。

  由于在陸/船雙方保存了相同的PDF文件資料庫,上述過程中僅需傳遞PDF文件編號、標注頁碼、標注內(nèi)容等信息,需要交互的信息量大大壓縮,且故障位置、檢修位置、維修手冊翻閱等均以所見即所得的形式實現(xiàn),提高了遠程指導效率。由于PDF文件不僅可以存儲裝備使用說明書、技術(shù)說明書、檢修手冊、實物照片等靜態(tài)信息,還可以存儲視頻、虛擬實境等動態(tài)對象,資源豐富,能夠保證遠程維修指導的順利開展。

  利用該平臺進行維修指導時,陸地和海上部分之間的交互信息中既包含了故障現(xiàn)象,又包含了故障檢測、分析和維修流程,因此可以作為設(shè)備維修案例庫使用,用于類似故障維修的參考或設(shè)備維修教學中的生動素材。

8 結(jié)論

  由于短波裝備在各類軍民用船只上安裝廣泛,且各種維修相關(guān)的紙質(zhì)或電子版資料、照片甚至視頻信息均可方便地集成于PDF文檔中,平臺的文檔資料資源可以得到充分保證,因此平臺的實際應用前景廣闊。該方法亦可推廣應用于帶寬受限的基于衛(wèi)星通信的遠程維修指導平臺,由于需要的通信帶寬窄,成本低,可作為一種低成本的常規(guī)遠程維修指導手段。

  參考文獻

  [1] 羅利春,王越.短波通信100年與通信電子戰(zhàn)的新課題[J].系統(tǒng)工程與電子技術(shù),1998,20(11):42-44.

  [2] 王旭輝,王彤.CSCW技術(shù)在裝備遠程維修支持信息系統(tǒng)中的應用[J].火力與指揮控制,2010,35(1):132-135.

  [3] 劉建輝,張俊利,王爽.基于Agent的遠程協(xié)同故障診斷系統(tǒng)研究[J].計算機測量與控制,2006,14(1):39-42.

  [4] 鄭雅敏.基于非連續(xù)頻譜的短波傳輸技術(shù)研究[D].杭州:浙江大學,2014.

  [5] 王曉娟,譚建龍,劉燕兵,等.基于自動機理論的PDF文本內(nèi)容抽取[J].計算機應用,2012,32(9):2491-2495.

  [6] 王鵬飛,楊和梅,丁俊松.利用Struts+iText在J2EE中實現(xiàn)PDF報表[J].現(xiàn)代電子技術(shù),2006,29(22):46-48.

  [7] 張英杰.快速批處理文件編輯系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:電子科技大學,2012.

  [8] Adobe.Acrobat XI SDK 10.1[EB/OL].[2014-12-01].http://www.adobe.com/devnet/acrobat/sdk/eula.html,2014.

  [9] 郭津之,龍海,黃皓.Windows消息鉤子的攔截和清除[J].計算機工程與設(shè)計,2009,30(18):4201-4206.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品久久久久久久一区探花| 国模套图日韩精品一区二区| 久久久一本精品99久久精品66| 亚洲一区二区动漫| 日韩一级网站| 亚洲美女毛片| 99精品免费| 亚洲狼人精品一区二区三区| 亚洲人成亚洲人成在线观看图片| 久久精品国产精品| 欧美在线免费视频| 久久精品视频播放| 亚洲第一精品在线| 精品1区2区| 国产日本亚洲高清| 久久久久九九九| 亚洲欧美欧美一区二区三区| 久久精品视频在线| 中文一区字幕| 亚洲一区二区在线免费观看视频 | 亚洲一区二区三区免费在线观看| 日韩亚洲在线| 亚洲天堂网在线观看| 亚洲嫩草精品久久| 性欧美8khd高清极品| 久久成人亚洲| 免费观看成人网| 欧美久久久久中文字幕| 欧美午夜电影完整版| 国产精品青草久久久久福利99| 国产欧美日韩在线观看| 国内视频精品| 亚洲精品国产视频| 亚洲视频一起| 久久av资源网| 亚洲理论电影网| 亚洲小说春色综合另类电影| 午夜精品久久久久久久男人的天堂 | 亚洲与欧洲av电影| 久久se精品一区二区| 亚洲精品久久久久久久久久久久久 | 欧美日韩中文字幕精品| 国产精品亚洲产品| 在线高清一区| 一本色道久久综合亚洲91| 亚洲欧美综合网| 亚洲精品在线视频观看| 亚洲专区国产精品| 久久先锋影音av| 欧美日韩一区二区视频在线观看| 国产欧美日韩在线视频| 亚洲激情在线播放| 亚洲一区二区三区三| 亚洲国产精品va| 亚洲女同在线| 欧美不卡在线视频| 国产精品xxxxx| 在线观看福利一区| 一区二区三区视频免费在线观看| 欧美一区二区三区婷婷月色 | 久久婷婷丁香| 欧美私人网站| 在线播放精品| 亚洲欧美日韩一区二区| 日韩一级欧洲| 久久人人97超碰精品888| 欧美日韩国产综合网| 国产亚洲欧美日韩美女| 亚洲日本中文字幕区| 新狼窝色av性久久久久久| 一区二区毛片| 久久综合免费视频影院| 国产精品国色综合久久| 亚洲国产精品久久精品怡红院 | 久久国产精品久久久| 欧美区一区二区三区| 国产一区二区三区在线免费观看| 一本色道综合亚洲| 亚洲黄色成人网| 欧美一区二区在线看| 欧美日韩在线看| 亚洲国产老妈| 亚洲大胆av| 久久狠狠婷婷| 国产精品久久久一区麻豆最新章节| 亚洲动漫精品| 久久精品电影| 欧美一区二区三区啪啪| 欧美色网一区二区| 亚洲精品看片| 亚洲欧洲在线免费| 久久一区亚洲| 国内精品久久久久影院色| 亚洲免费网站| 午夜精品久久久久久| 欧美视频一区二区| 亚洲狼人综合| 亚洲精选国产| 欧美大片在线观看| 影音先锋一区| 亚洲高清不卡在线观看| 久久精品国产亚洲精品| 国产欧美精品在线播放| 亚洲午夜一级| 亚洲欧美日韩在线综合| 欧美性色综合| 夜夜嗨一区二区| 99天天综合性| 欧美日韩高清不卡| 亚洲精品午夜精品| 夜夜嗨av一区二区三区中文字幕| 欧美成人xxx| 亚洲国产精品尤物yw在线观看| 久久精品盗摄| 久久综合中文字幕| 一区二区在线视频观看| 久久精品动漫| 麻豆久久婷婷| 亚洲国产精品久久人人爱蜜臀| 亚洲激情视频网站| 欧美成人性网| 亚洲欧洲日夜超级视频| av成人免费在线观看| 欧美日韩国产三区| 99国产一区| 亚洲欧美综合| 国产色婷婷国产综合在线理论片a| 翔田千里一区二区| 久久久精品2019中文字幕神马| 国产一区二区中文字幕免费看| 欧美一区二区三区日韩| 久久综合激情| 亚洲激情在线激情| 国产精品99久久久久久宅男| 欧美日韩中文字幕精品| 亚洲伊人网站| 久久久噜噜噜久噜久久| 激情综合中文娱乐网| 亚洲欧洲一区二区在线播放| 欧美久久久久久| 在线亚洲精品| 久久国产欧美精品| 激情伊人五月天久久综合| 亚洲人成网站777色婷婷| 欧美日本中文字幕| 亚洲深爱激情| 久久精品国产综合| 在线欧美福利| 一区二区三区四区五区精品视频| 国产精品久久久久久久久婷婷 | 日韩视频免费观看| 欧美午夜大胆人体| 性伦欧美刺激片在线观看| 美女视频黄a大片欧美| 亚洲人成在线免费观看| 亚洲一本视频| 国产在线不卡精品| 亚洲精品日韩精品| 欧美网站大全在线观看| 香蕉乱码成人久久天堂爱免费| 男人的天堂亚洲在线| 一本高清dvd不卡在线观看| 欧美在线在线| 亚洲激情黄色| 香蕉免费一区二区三区在线观看| 国产一区二区三区视频在线观看| 亚洲日本黄色| 国产精品萝li| 亚洲国产你懂的| 国产精品福利影院| 亚洲电影一级黄| 欧美三日本三级少妇三2023| 欧美一区二区三区在线看| 欧美麻豆久久久久久中文| 午夜亚洲福利在线老司机| 欧美激情国产高清| 性久久久久久| 欧美日韩中文字幕在线| 久久精品国产91精品亚洲| 欧美四级电影网站| 亚洲国产一区二区三区青草影视| 欧美视频在线观看免费| 亚洲第一区在线| 国产精品你懂的在线欣赏| 91久久久久久久久| 国产日韩欧美三级| 一区二区三区av| 精品成人一区二区三区| 亚洲欧美制服中文字幕| 亚洲日产国产精品| 久久午夜精品一区二区| 亚洲香蕉视频| 欧美剧在线观看| 亚洲第一在线综合在线| 国产精品夜夜夜| 亚洲视频在线看| 亚洲国产精品一区二区www在线| 久久国内精品自在自线400部| 夜夜嗨av色综合久久久综合网| 美女视频一区免费观看|