亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Web 的貨車檢修工序監(jiān)測(cè)系統(tǒng)的研制

        2012-08-16 08:03:20丁振凡王小明鄧建明邱新亮
        關(guān)鍵詞:手持機(jī)串口消息

        丁振凡,王小明,鄧建明,邱新亮

        (1.華東交通大學(xué),江西南昌330013;2.南昌鐵路局,江西南昌330001)

        隨著Web應(yīng)用的普及,基于Web的監(jiān)控應(yīng)用越來(lái)越廣泛[1-2]。由于工業(yè)數(shù)據(jù)的實(shí)時(shí)變化特點(diǎn),客戶瀏覽器要求能及時(shí)跟蹤顯示數(shù)據(jù)的變化。為了實(shí)現(xiàn)瀏覽器界面中內(nèi)容的動(dòng)態(tài)更新,研究者提出了各種辦法,總體上分為拉方式和推方式兩種,推方式采用Java Applet技術(shù),用Socket通信接收數(shù)據(jù)[3],要求客戶方有一個(gè)消息接收線程等待服務(wù)器將變化數(shù)據(jù)推送過(guò)來(lái)。近年來(lái),出現(xiàn)了富客戶端技術(shù)Flex,可通過(guò)消息服務(wù)技術(shù)實(shí)現(xiàn)實(shí)時(shí)監(jiān)控[4]。拉方式有的采用ActiveX控件實(shí)現(xiàn)數(shù)據(jù)通信和顯示處理[5],近年來(lái)流行用客戶端的AJAX技術(shù)[6-7],利用AJAX結(jié)合VML是實(shí)現(xiàn)Web圖形化監(jiān)控的一種方法[8]。本文采用AJAX實(shí)現(xiàn)Web頁(yè)面對(duì)鐵路貨車的檢修進(jìn)程的實(shí)時(shí)監(jiān)測(cè)。從而可以讓管理員及時(shí)了解各道維護(hù)臺(tái)上的工序進(jìn)展[9],對(duì)工序超時(shí)情況能及時(shí)報(bào)警。監(jiān)測(cè)過(guò)程的數(shù)據(jù)自動(dòng)記錄到數(shù)據(jù)庫(kù)中,可容易進(jìn)行各類統(tǒng)計(jì)分析和產(chǎn)生報(bào)表。

        1 系統(tǒng)功能和基本構(gòu)成

        系統(tǒng)的功能主要在于通過(guò)Web頁(yè)面實(shí)時(shí)監(jiān)測(cè)工地上的各工序進(jìn)展。具體有:

        1)車道各臺(tái)位工作進(jìn)展監(jiān)測(cè):監(jiān)視分布在各車道上的工序工作狀態(tài);

        2)工序完成輛份的數(shù)量及當(dāng)前狀態(tài)監(jiān)測(cè):監(jiān)視各個(gè)工序的當(dāng)前完成維修輛份以及工序的當(dāng)前狀態(tài),用不同圖標(biāo)指示;

        3)超時(shí)報(bào)警消息的查閱:查詢記錄在數(shù)據(jù)庫(kù)中的報(bào)警信息;

        4)所有各個(gè)工序的功效統(tǒng)計(jì)直方圖:以直方圖的形式顯示當(dāng)天各工序的功效;

        5)當(dāng)天已維修車型數(shù)量的統(tǒng)計(jì)直方圖:按車型分類統(tǒng)計(jì)給出已維修數(shù)量的統(tǒng)計(jì)圖;

        6)當(dāng)天各臺(tái)位的維修任務(wù)及限時(shí)設(shè)置:設(shè)置各臺(tái)位要維修的車型及數(shù)量,以及工序完成一個(gè)輛份的超時(shí)時(shí)間限制。

        系統(tǒng)的基本構(gòu)成如圖1所示。通過(guò)Web服務(wù)器串口連接的無(wú)線通信模塊與手持機(jī)進(jìn)行通信,監(jiān)管人員通過(guò)瀏覽器界面對(duì)工地上6個(gè)車道30個(gè)工序的維修人員的工作狀態(tài)進(jìn)行監(jiān)控。

        圖1 系統(tǒng)的基本組成Fig.1 The basic structure of the system

        2 系統(tǒng)設(shè)計(jì)

        系統(tǒng)采用拉方式進(jìn)行工作。首先,Web服務(wù)端與手持機(jī)之間是采用串口通信,服務(wù)器的通信線程通過(guò)發(fā)送輪詢信息給手持機(jī)來(lái)查詢每個(gè)工序的工作進(jìn)展。將所有手持機(jī)用戶的工序當(dāng)前狀態(tài)信息用Current?Status類的靜態(tài)屬性保存,同時(shí)寫入數(shù)據(jù)庫(kù)進(jìn)行登記。其次,客戶瀏覽器與Web服務(wù)器的通信也是采用定時(shí)詢問(wèn)方式,客戶方通過(guò)AJAX定時(shí)發(fā)送XMLhttp訪問(wèn)請(qǐng)求,根據(jù)服務(wù)器返回的JSON消息更新頁(yè)面上的顯示,從而實(shí)現(xiàn)對(duì)遠(yuǎn)端所有手持機(jī)用戶工序狀態(tài)的動(dòng)態(tài)監(jiān)控。

        圖2 系統(tǒng)的軟件模塊結(jié)構(gòu)Fig.2 System software module structure

        以下就Web服務(wù)器器端的主要模塊進(jìn)行簡(jiǎn)要說(shuō)明:

        1)串口通信線程(commService):負(fù)責(zé)與串口的連接和循環(huán)發(fā)送輪詢消息。并將接收的消息送消息緩沖區(qū)。

        2)消息緩沖區(qū)(messageBuffer):實(shí)現(xiàn)消息的封裝及處理。其中包括兩個(gè)重要的方法,getMessage()方法從消息緩沖區(qū)取消息并進(jìn)行處理;setMessage(String mess)方法將消息送消息緩沖區(qū);由于該類的方法是由線程調(diào)用,所以涉及同步處理和對(duì)消息隊(duì)列的加鎖訪問(wèn)控制。往消息緩沖區(qū)寫入消息由串口通信線程在收到一個(gè)完整消息后調(diào)用。

        3)消息分析處理線程(messageMointor):專門接受處理消息隊(duì)列中消息的線程。它將循環(huán)讀取消息緩沖區(qū)的消息。它將調(diào)用messageBuffer類的getMessage()方法對(duì)消息進(jìn)行分析處理,根據(jù)消息內(nèi)容分析更新系統(tǒng)的狀態(tài)和進(jìn)行數(shù)據(jù)庫(kù)登記處理。

        4)系統(tǒng)工作狀態(tài)(CurrentStatus):引入若干Map對(duì)象記錄系統(tǒng)的狀態(tài)信息。系統(tǒng)的工作信息將記錄到數(shù)據(jù)庫(kù)中,同時(shí),為了提高系統(tǒng)的工作效率,通過(guò)CurrentStatus類定義靜態(tài)屬性記錄系統(tǒng)的當(dāng)前工作狀態(tài)信息。例如:

        Map<Integer,Platform> alltw:所有臺(tái)位的工作信息;

        Map<Integer,myPos> allgx:所有工序的工作信息;

        其中,myPos記錄工序的屬性和訪問(wèn)方法,主要屬性有工序編號(hào)、所在臺(tái)位、狀態(tài)信息、完成輛份數(shù)量、開工時(shí)間、單元開工時(shí)間等,Platform記錄臺(tái)位的屬性和訪問(wèn)方法。

        5)MVC控制器(monitorController):實(shí)現(xiàn)要監(jiān)控信息的數(shù)據(jù)提取的處理邏輯,接受客戶瀏覽器的訪問(wèn)請(qǐng)求,用Google的Gson工具將結(jié)果包裝為Json串格式返回給請(qǐng)求者。

        6)數(shù)據(jù)庫(kù)訪問(wèn)處理(repairlog):實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)的記錄處理,以便為數(shù)據(jù)統(tǒng)計(jì)和數(shù)據(jù)查詢服務(wù)。利用Jd?bcTemplate實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問(wèn)處理,利用Spring IOC實(shí)現(xiàn)Bean的數(shù)據(jù)源連接的注入。

        7)任務(wù)定時(shí)(TaskService):借助Spring的基于注解的任務(wù)定時(shí)調(diào)度功能規(guī)劃系統(tǒng)的工作時(shí)間,及時(shí)地完成每天的初始準(zhǔn)備和收尾工作。

        3 關(guān)鍵技術(shù)處理

        3.1 用AJAX間隔訪問(wèn)Web服務(wù)實(shí)現(xiàn)動(dòng)態(tài)監(jiān)測(cè)

        3.1.1 用Spring實(shí)現(xiàn)REST風(fēng)格的Web服務(wù)

        在Web服務(wù)端,用Spring編程實(shí)現(xiàn)REST風(fēng)格的Web服務(wù)。以工序監(jiān)控為例,客戶方發(fā)送訪問(wèn)請(qǐng)求后,Web服務(wù)端將返回各工序進(jìn)展的信息作為響應(yīng)。由于Web服務(wù)與瀏覽器之間不能直接傳遞對(duì)象,必須采用特殊手段進(jìn)行包裝處理。常用包裝形式有XML和Json[10],Json是一種易于被JavaScript解析的對(duì)象消息格式,系統(tǒng)利用Google提供的Gson對(duì)象的toJson方法進(jìn)行轉(zhuǎn)換[11]。以下控制器代碼將存儲(chǔ)所有工序的集合對(duì)象轉(zhuǎn)換為Json字符串。

        myPos為一個(gè)封裝工序當(dāng)前狀態(tài)信息的類,其中含有工序的編號(hào)、開工時(shí)間、當(dāng)前所在臺(tái)位、工程進(jìn)展?fàn)顟B(tài)等信息。通過(guò)CurrentStatus類的靜態(tài)屬性記錄有各工序的狀態(tài)信息。值得注意的是,由于響應(yīng)消息是將字符串返回給客戶方,需設(shè)置http響應(yīng)頭內(nèi)容格式為text/plain。

        3.1.2 瀏覽器頁(yè)面通過(guò)AJAX實(shí)現(xiàn)工序進(jìn)展的動(dòng)態(tài)監(jiān)視

        系統(tǒng)通過(guò)各種顏色的圖片來(lái)表示工序的狀態(tài),對(duì)頁(yè)面上的顯示元素進(jìn)行有序的標(biāo)識(shí),以便程序中能循環(huán)處理。通過(guò)AJAX技術(shù)實(shí)現(xiàn)內(nèi)容顯示的實(shí)時(shí)變化[12]。以下為工序進(jìn)展及狀態(tài)查詢的Javascript腳本函數(shù)代碼,通過(guò)Javascript的setTimeout方法實(shí)現(xiàn)定時(shí)間隔執(zhí)行,讓initProcess方法每隔2秒執(zhí)行1次,從而完成對(duì)服務(wù)器數(shù)據(jù)的輪詢?cè)L問(wèn)。在initProcess方法內(nèi),首先,通過(guò)XMLHttpRequest對(duì)象發(fā)送URL訪問(wèn)請(qǐng)求,通過(guò)XMLHttpRequest對(duì)象的responseText屬性得到服務(wù)端的響應(yīng)消息。然后,調(diào)用JavaScript的eval函數(shù)將服務(wù)器返回的JSON文本轉(zhuǎn)化為對(duì)象形式。最后,根據(jù)對(duì)象數(shù)據(jù)項(xiàng)的值,利用DHTML技術(shù)更改頁(yè)面元素的HT?ML內(nèi)容,從而實(shí)現(xiàn)對(duì)相關(guān)對(duì)象的實(shí)時(shí)監(jiān)測(cè)顯示[12]。

        圖3為系統(tǒng)的工序監(jiān)控界面。每個(gè)工序的當(dāng)前狀態(tài)通過(guò)不同顏色的圖標(biāo)指示。工序完成的檢修數(shù)量通過(guò)數(shù)字顯示。

        圖3 監(jiān)視工序的狀態(tài)及進(jìn)展Fig.3 The process status and progress monitoring

        3.2 利用Spring任務(wù)定時(shí)控制線程的工作

        為了讓系統(tǒng)在非工作時(shí)間處于“休息狀態(tài)”,尤其是通信線程,在休息時(shí)間發(fā)送輪詢信號(hào)是沒(méi)有意義的。有必要對(duì)系統(tǒng)的線程和工作狀態(tài)進(jìn)行特殊處理。Spring的任務(wù)調(diào)度為應(yīng)用系統(tǒng)中特定任務(wù)的執(zhí)行安排提供了有效的支持。Spring的TaskScheduler可通過(guò)@Scheduled注解進(jìn)行定義,其任務(wù)施加執(zhí)行對(duì)象可以是任何一個(gè)方法,給任務(wù)編寫提供了很大方便。注解中通過(guò)cron參數(shù)指定任務(wù)執(zhí)行的時(shí)間點(diǎn)。以下為每天6點(diǎn)啟動(dòng)消息接收線程的實(shí)現(xiàn)代碼:

        值得一提的是,Spring的任務(wù)定時(shí)要用到AOP(面向切面編程)的功能,因此,要在應(yīng)用工程的類路徑中引入aopalliance.jar包。

        3.3 利用移動(dòng)通信技術(shù)實(shí)現(xiàn)手持機(jī)與主機(jī)的通信

        Web服務(wù)器方通過(guò)Java串口編程與手持機(jī)通信。移動(dòng)通信模塊連接在串口上,實(shí)現(xiàn)無(wú)線信號(hào)和串口數(shù)據(jù)的轉(zhuǎn)換,因此,實(shí)際的數(shù)據(jù)通信變成串口通信。在手持機(jī)端用戶界面簡(jiǎn)單,用戶通過(guò)點(diǎn)擊按鈕發(fā)送自己的狀態(tài)進(jìn)展消息,向主機(jī)報(bào)告在哪個(gè)臺(tái)位完成了一份維修任務(wù)。

        3.3.1 主機(jī)與手持機(jī)的消息交換

        主機(jī)采用輪詢機(jī)制詢問(wèn)每個(gè)工序和檢測(cè)道的工作狀態(tài)信息。監(jiān)管人員在完成一道工序后將發(fā)送信號(hào)給主機(jī)。主機(jī)每次在輪詢一個(gè)手持機(jī)時(shí)發(fā)送“ask,手持機(jī)號(hào)”的消息。只有匹配編號(hào)的手持機(jī)才給予應(yīng)答。

        手持機(jī)沒(méi)應(yīng)答,主機(jī)在超時(shí)后,將自動(dòng)詢問(wèn)下一手持機(jī),如此循環(huán)往復(fù)。手持機(jī)發(fā)送信號(hào)反饋工序和車道的工作狀態(tài)。手持機(jī)的應(yīng)答消息中包括:消息識(shí)別碼,工序或車道號(hào),工作進(jìn)程,所在臺(tái)位等。

        通信消息的設(shè)計(jì)與處理是項(xiàng)目較為復(fù)雜部分,在消息接受處理過(guò)程中涉及各類狀態(tài)變量的改變和數(shù)據(jù)記錄登記,如:工序的開工時(shí)間、超時(shí)等信息取決于對(duì)收到消息的分析處理。這里消息分:車道新批開始、工序進(jìn)展消息、工序請(qǐng)求關(guān)機(jī)等。

        3.3.2 服務(wù)器端的Java串行通信編程

        服務(wù)器端的串口通信線程從串口接收數(shù)據(jù),將數(shù)據(jù)放入消息緩存。消息處理線程在緩存中有消息時(shí)將從wait中醒來(lái),然后讀取消息進(jìn)行解析處理。服務(wù)端采用Java Comm工具包實(shí)現(xiàn)對(duì)串口通信的編程處理[13]。Java串口通信的基本過(guò)程是:①裝載驅(qū)動(dòng)程序;②打開串口,進(jìn)行串口的初始化;③通過(guò)串口的輸入輸出流實(shí)現(xiàn)數(shù)據(jù)讀寫訪問(wèn)。串口通信編程處理的難點(diǎn)是保持通信雙方收發(fā)消息的同步,數(shù)據(jù)消息格式的設(shè)計(jì)與多線程規(guī)劃是提高通信處理效率的關(guān)鍵。本系統(tǒng)采用的無(wú)線傳輸,在通信距離遠(yuǎn)時(shí)還需要添加中繼進(jìn)行轉(zhuǎn)發(fā)。

        4 結(jié)束語(yǔ)

        系統(tǒng)通過(guò)手持機(jī)與主機(jī)之間的無(wú)線通信收集工地操作員發(fā)送的工序進(jìn)展信息。利用AJAX技術(shù)實(shí)現(xiàn)與Web服務(wù)器的通信及頁(yè)面內(nèi)容的動(dòng)態(tài)顯示。管理人員可以通過(guò)Web界面對(duì)工地的維修進(jìn)展進(jìn)行實(shí)時(shí)監(jiān)測(cè),對(duì)各道工序的工作狀態(tài)能進(jìn)行記錄、報(bào)警和統(tǒng)計(jì)。該系統(tǒng)的設(shè)計(jì)思路也可用于其他類似的Web遠(yuǎn)程監(jiān)控系統(tǒng)中。

        [1]呂海東,高際邦.基于DWR反向AJAX的Web監(jiān)控系統(tǒng)[J].微型機(jī)與應(yīng)用,2010,29(13):60-62.

        [2]徐永晉,陶萬(wàn)強(qiáng).基于Web的智能居家生活系統(tǒng)監(jiān)控軟件關(guān)鍵技術(shù)及實(shí)現(xiàn)[J].儀表技術(shù),2010(3):11-13.

        [3]范云芝,陳樹平.利用Socket實(shí)現(xiàn)基于Web的遠(yuǎn)程監(jiān)測(cè)系統(tǒng)[J].陜西工學(xué)院學(xué)報(bào),2005,21(1):53-55.

        [4]趙振華,廉東本.基于Flex的WebGIS框架的研究與應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011(11):146-149.

        [5]熊亮,張鍇.一種新型接觸網(wǎng)開關(guān)綜合監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].華東交通大學(xué)學(xué)報(bào),2012,29(4):86-91.

        [6]丁振凡.AJAX技術(shù)在網(wǎng)絡(luò)考試分析中的應(yīng)用[J].華東交通大學(xué)學(xué)報(bào),2007,24(5):74-76.

        [7]張曼琳,顧容,徐夢(mèng).基于Ajax技術(shù)的高校在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)教育信息化,2012(5):44-48.

        [8]丁振凡.利用AJAX結(jié)合VML實(shí)現(xiàn)Web圖形化監(jiān)控[J].電腦編程技巧與維護(hù),2012(12):84-85.

        [9]竇慧東.鐵路貨車輪對(duì)檢修工序控制系統(tǒng)[D].西南交通大學(xué),2005:5-6.

        [10]丁振凡.基于AJAX結(jié)合Spring MVC的信息訪問(wèn)服務(wù)模式研究[J].計(jì)算機(jī)時(shí)代,2012(6):25-29.

        [11]丁振凡.Spring REST風(fēng)格Web服務(wù)的Json消息封裝及解析研究[J].智能計(jì)算機(jī)與應(yīng)用,2012,2(2):9-11.

        [12]丁振凡.Web編程實(shí)踐教程[M].北京:清華大學(xué)出版社,2011.

        [13]丁振凡,王小明,鄧建明,等.基于Java的串口通信應(yīng)用編程[J].微型機(jī)與應(yīng)用,2012,31(13):84-86.

        猜你喜歡
        手持機(jī)串口消息
        淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
        一張圖看5G消息
        基于WIA—PA的無(wú)線手持機(jī)設(shè)計(jì)
        從拿手機(jī) 的姿勢(shì)看你是怎樣的人
        中學(xué)生(2017年7期)2017-04-12 01:38:31
        北斗高精度手持機(jī)在航測(cè)外業(yè)中的應(yīng)用
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線通信
        消息
        消息
        消息
        国产成人精品999在线观看| 日本人妻三级在线观看| 亚洲综合新区一区二区| 91九色熟女潮喷露脸合集| 尤物在线观看一区蜜桃| 日本肥老妇色xxxxx日本老妇| 国产一区二区三区成人av| 一区二区三区在线少妇| 给你免费播放的视频| 韩日午夜在线资源一区二区| 亚洲av无码一区二区三区性色| 国产目拍亚洲精品一区二区| 西西少妇一区二区三区精品| 国产精品高湖呻呤久久av| 老熟妇乱子伦牲交视频 | 白白色福利视频在线观看| 亚洲一区精品在线中文字幕| 乱码1乱码2美美哒| 亚洲av第一页国产精品| 国产情侣一区在线| 中文字幕久区久久中文字幕| 国产精品一区二区三区蜜臀| 国产精品一二三区亚洲| 亚洲日韩成人无码| 欧美粗大猛烈老熟妇| 人妻久久999精品1024| 男女男在线精品免费观看| 国产一区二区黄色网页| 欧美国产综合欧美视频| 国产午夜视频在线观看| 无码啪啪人妻| 国产精品综合女同人妖| 欧美a级在线现免费观看| 成人特黄a级毛片免费视频| 双乳被一左一右吃着动态图| 91福利精品老师国产自产在线| 中文字幕专区一区二区| 偷拍综合在线视频二区| 在线播放免费播放av片| 欧美国产日本精品一区二区三区| 亚洲一区二区三区av色婷婷|