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

        ?

        發(fā)電車監(jiān)測(cè)系統(tǒng)中windows?。茫牛危牛耘cSQL?。樱澹颍觯澹颉。茫宓难芯考皯?yīng)用

        2009-03-30 04:52:54江浩晨
        新媒體研究 2009年3期
        關(guān)鍵詞:線程串口嵌入式

        江浩晨

        [摘要]發(fā)電車是空調(diào)旅客列車的能源中樞。介紹發(fā)電車監(jiān)測(cè)系統(tǒng)的功能和主機(jī)結(jié)構(gòu)及要求,接著對(duì)Windows cE.NetT~I]SQL Server CE做簡(jiǎn)單介紹,然后討論說(shuō)明其在系統(tǒng)中的應(yīng)用方法,同時(shí)以Visual Studio.NET編程環(huán)境下的c#語(yǔ)言為例,介紹基于該應(yīng)用環(huán)境的設(shè)計(jì)和編程方法,最后通過(guò)應(yīng)用測(cè)試結(jié)果,表明該系統(tǒng)達(dá)到預(yù)期的設(shè)計(jì)目標(biāo)。

        [關(guān)鍵詞]發(fā)電車嵌入式系統(tǒng)監(jiān)測(cè)系統(tǒng)

        中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671—7597(2009)0210036-02

        一、引言

        發(fā)電車是空調(diào)旅客列車的能源中樞。發(fā)電車監(jiān)測(cè)系統(tǒng)由于要安裝在運(yùn)行著的發(fā)電車上,因此對(duì)系統(tǒng)的軟件硬件都需要符合車載系統(tǒng)的特殊要求。由于主機(jī)硬件運(yùn)行在存在較大震動(dòng)的惡劣環(huán)境下,要求硬件不能有風(fēng)扇和旋轉(zhuǎn)式的硬盤(pán)這些基本要求,因此硬件性能不可能很高,而主機(jī)對(duì)通訊、數(shù)據(jù)存儲(chǔ)、顯示又有很高的穩(wěn)定性與實(shí)時(shí)性要求,因此需要一種實(shí)時(shí)、高效的嵌入式平臺(tái)支持。本文先介紹發(fā)電車系統(tǒng)的應(yīng)用軟件平臺(tái)需求,然后討論Windows CE.NET嵌入式系統(tǒng)在本系統(tǒng)中應(yīng)用的可行性與應(yīng)用編程方法,接著對(duì)SQL Server CE在本系統(tǒng)中的可行性和編程方法進(jìn)行了探討研究。

        二、發(fā)電車監(jiān)控系統(tǒng)的應(yīng)用軟件需求

        (一)系統(tǒng)功能

        監(jiān)測(cè)系統(tǒng)實(shí)時(shí)監(jiān)測(cè)與發(fā)電機(jī)組運(yùn)行相關(guān)的參數(shù),按秒記錄入數(shù)據(jù)緩存,自動(dòng)計(jì)算累計(jì)開(kāi)機(jī)時(shí)間和累計(jì)電能,按設(shè)定時(shí)間間隔(默認(rèn)15分鐘)記錄到數(shù)據(jù)庫(kù)。對(duì)所有監(jiān)測(cè)的參數(shù)均可設(shè)置上下限,參數(shù)超過(guò)規(guī)定標(biāo)準(zhǔn)值時(shí)立即報(bào)警,并將事件點(diǎn)前后各20秒的數(shù)據(jù)存儲(chǔ)到日志文件和數(shù)據(jù)庫(kù)中。

        系統(tǒng)使用LCD彩屏顯示,圖形化展示各項(xiàng)參數(shù)和開(kāi)關(guān)量狀態(tài),報(bào)警時(shí)以醒目方式顯示報(bào)警參數(shù)狀態(tài)。系統(tǒng)在GPRS網(wǎng)絡(luò)允許的情況下,隨時(shí)向地面系統(tǒng)發(fā)送完整實(shí)時(shí)數(shù)據(jù)。

        要求保存近1年內(nèi)的所有數(shù)據(jù),隨時(shí)可以通過(guò)u盤(pán)導(dǎo)出指定數(shù)據(jù)。在需要時(shí)可以與地面服務(wù)器進(jìn)行數(shù)據(jù)庫(kù)同步操作,以便做進(jìn)一步的分析挖掘。[1]

        (二)主機(jī)結(jié)構(gòu)及運(yùn)行環(huán)境

        發(fā)電車監(jiān)控系統(tǒng)通過(guò)485總線,與各遠(yuǎn)程監(jiān)測(cè)模塊通信,獲取實(shí)時(shí)數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)、分析、報(bào)警和顯示等操作。其主機(jī)功能結(jié)構(gòu)如圖1所示:

        該主機(jī)為系統(tǒng)的核心,負(fù)責(zé)數(shù)據(jù)的采集、存儲(chǔ)與顯示等操作。主機(jī)安裝在運(yùn)行中的發(fā)電車中,由于工況的需求,主機(jī)密封無(wú)風(fēng)扇,存儲(chǔ)使用工業(yè)級(jí)cF卡。其中單板機(jī)與GPS模塊及GPRS模塊的通訊都是通過(guò)獨(dú)立的Rs一232接口。

        (三)軟件系統(tǒng)平臺(tái)要求

        因以上需求,要求系統(tǒng)為嵌入式系統(tǒng),較小的系統(tǒng)核心,較快的啟動(dòng)和運(yùn)行速度,需要有友好的人機(jī)交互界面,且要求可以進(jìn)行多線程多端口的串口通信(本系統(tǒng)使用4個(gè)串口)。

        另外要求編程和維護(hù)盡可能方便。

        (四)數(shù)據(jù)存儲(chǔ)要求

        系統(tǒng)的數(shù)據(jù)存儲(chǔ)分為日志文件存儲(chǔ)和數(shù)據(jù)庫(kù)存儲(chǔ)。其中,數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)主要用于簡(jiǎn)單快速的檢索。數(shù)據(jù)庫(kù)存儲(chǔ)的數(shù)據(jù)量根據(jù)設(shè)計(jì),每年150M左右,循環(huán)清除。界面操作中包括查詢?cè)趦?nèi)的各項(xiàng)數(shù)據(jù)庫(kù)操作不能有明顯延遲。

        三、Windows CE.NET的在系統(tǒng)中的應(yīng)用研究

        (一)Windows CE.NET系統(tǒng)介紹與討論

        Windows CE.Net是Windows CE 3.0的后續(xù)產(chǎn)品,它是一個(gè)功能強(qiáng)大的實(shí)時(shí)嵌入式操作系統(tǒng),由于有眾多強(qiáng)大工具支持,用戶利用它可以快速開(kāi)發(fā)出下一代的智能化小體積連接設(shè)備。借助于完善的操作系統(tǒng)功能和開(kāi)發(fā)工具,Windows CE.Net提供了構(gòu)建、調(diào)試和部署基于Windows CE.Net的定制設(shè)備所需的一切特性。Windows CE.Net的最大好處是具有可定制性。當(dāng)它自帶的驅(qū)動(dòng)程序不能滿足用戶的要求時(shí),需要用戶自己編寫(xiě)相應(yīng)的驅(qū)動(dòng)程序。Windows CE.Net的開(kāi)發(fā)工具Platform Builder就可以完成系統(tǒng)的定制和相應(yīng)的驅(qū)動(dòng)程序開(kāi)發(fā)。[2]根據(jù)Windows CE.Net的特性,其嵌入式系統(tǒng)的各種特性非常適合發(fā)電車監(jiān)測(cè)系統(tǒng)。

        (二)編程方式

        本系統(tǒng)使用Windows CE.NET 4.2,操作系統(tǒng)支持Microsoft.NETCompact Framework,系統(tǒng)編程軟件使用微軟的VisuaStudio.Net 2003(也可使用更高版本,如2005版,但聯(lián)機(jī)方式會(huì)有所不同),編程使用c#語(yǔ)言。

        安裝Windows cE.NET Utilities v1.1 for Visual Studio.NET20031具包后,可通過(guò)以太網(wǎng)方式,將編程開(kāi)發(fā)的Pc機(jī)與運(yùn)行WindowscE.NET 4.2的主機(jī)設(shè)備進(jìn)行連接,直接進(jìn)行聯(lián)機(jī)編程和調(diào)試。由于有.NETFramework的支持,使得用嵌入式環(huán)境下的c#編程方法和桌面機(jī)程序基本一致,作為嵌入式應(yīng)用,其支持的Microsoft.NET Compact Framework是精簡(jiǎn)版的,支持的組件比標(biāo)準(zhǔn)版少一些。

        在系統(tǒng)軟硬件定制時(shí),設(shè)計(jì)有4個(gè)串口,1個(gè)用于與GPS設(shè)備通訊(Rs一232),1個(gè)與GPRS設(shè)備通訊(RS-232),另兩個(gè)與485總線上的設(shè)備通訊。每個(gè)串口設(shè)備都在不同線程中獨(dú)立打開(kāi)和通訊,串口調(diào)用API接口函數(shù)CreateFile打開(kāi),同樣調(diào)用API函數(shù)ReadFile和WriteFile來(lái)對(duì)串口進(jìn)行數(shù)據(jù)讀取和寫(xiě)入。

        主機(jī)系統(tǒng)軟件結(jié)構(gòu)如圖2所示。

        軟件用面向?qū)ο蠓椒?,封裝各個(gè)功能模塊,并在不同線程中同步運(yùn)行[3]。其中主要分兩個(gè)采集數(shù)據(jù)的通信模塊,和4個(gè)讀取數(shù)據(jù)的后期數(shù)據(jù)處理模塊。

        其中,實(shí)時(shí)數(shù)據(jù)實(shí)例為一個(gè)數(shù)據(jù)緩存類的實(shí)例,為程序的數(shù)據(jù)核心[4]。在對(duì)其讀取和寫(xiě)入過(guò)程中會(huì)發(fā)生各個(gè)線程間的并發(fā)沖突問(wèn)題。因此在可能并發(fā)出現(xiàn)的程序代碼段使用以下代碼控制:

        System.Threading.Monitor.Enter(對(duì)象1)://防止沖突加鎖

        try

        {

        //需要防止并發(fā)沖突的代碼段

        ………………

        )

        finally

        {

        System.Threading.Monitor.Exit(對(duì)象1)://防止沖突解鎖

        )

        在需要防止并發(fā)沖突的代碼開(kāi)始的地方使用System.Threading.Monitor.Enter方法在指定對(duì)象上加排他鎖,完成后再System.Threading.Monitor.Exit方法解鎖,以防止此并發(fā)問(wèn)題的出現(xiàn)[5][6]。

        四、SQLCE在系統(tǒng)中的應(yīng)用研究

        (一)SOLCE介紹與應(yīng)用討論

        SOL Server cE是用作快速開(kāi)發(fā)的關(guān)系型精簡(jiǎn)數(shù)據(jù)庫(kù),它將企業(yè)級(jí)數(shù)據(jù)管理能力擴(kuò)展到了基于Windows cE操作系統(tǒng)的嵌入式移動(dòng)設(shè)備上。本系統(tǒng)使

        用Visual Studio.NET編程,通過(guò).NET Compact Framework支持下的ADO.NET技術(shù)訪問(wèn)操作SOL Server cE 2.0數(shù)據(jù)庫(kù)。

        SOL Server cE提供遠(yuǎn)程數(shù)據(jù)訪問(wèn)和合并復(fù)制功能,在需要的時(shí)候,可以實(shí)現(xiàn)與SQL Server服務(wù)器同步。本系統(tǒng)在正常使用情況下不需要使用這項(xiàng)功能,但這個(gè)功能使得本系統(tǒng)具有良好的擴(kuò)展性。

        (二)SOL Server CE編程方法

        數(shù)據(jù)庫(kù)設(shè)計(jì)好后,在項(xiàng)目中添加對(duì)System.Data.SqlServerCe組件的引用,可以編程實(shí)現(xiàn)對(duì)SQL Server cE的各項(xiàng)操作。以下以c#語(yǔ)言為例實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的連接準(zhǔn)備[7][8]:

        SqlCeConnection DBConnection;

        //數(shù)據(jù)庫(kù)連接

        SqlCeCommand DBComand;

        //命令對(duì)象

        DBConnection=new SqlCeConnection(AConnectStrings)://通過(guò)連接串字符定義連接

        DBCommand=new SqlCeCommand():

        DBComand.Connection=DEConnection;

        由于程序中有多個(gè)線程同時(shí)運(yùn)行(如圖1,至少有3個(gè)主要模塊在獨(dú)自的線程中對(duì)數(shù)據(jù)庫(kù)有讀寫(xiě)操作),而SQL Server CE2.0只支持單進(jìn)程單線程的讀寫(xiě)操作,因此對(duì)數(shù)據(jù)庫(kù)操作同樣需要進(jìn)行防止沖突的代碼保護(hù),以下以c#語(yǔ)言為例,對(duì)數(shù)據(jù)庫(kù)提交一個(gè)SQL命令,做一個(gè)刪除一個(gè)臨時(shí)表的操作:

        System.Threading.Monitor.Enter(this)://防止沖突加鎖

        try

        {

        DBConnection.open();

        DBCommand.CommandText=“drop table tabletemp”:

        int Result=DBComand.ExecuteNonQuery()://通過(guò)Result獲取操作影響到的行數(shù)

        }

        catch(Exception E)

        (

        //此處進(jìn)行錯(cuò)誤處理

        )

        finally

        (

        DBConnection.Close():

        System.Threading~Monitor.Exit(this)://防止沖突加鎖后解鎖

        )

        在實(shí)際運(yùn)行中,因SQL Server CE的單線程訪問(wèn)特性,數(shù)據(jù)庫(kù)操作類被編程封裝,并在系統(tǒng)中僅創(chuàng)建一個(gè)實(shí)例,多個(gè)線程可以并發(fā)調(diào)用。以上代碼在實(shí)踐中證明,在多線程并發(fā)調(diào)用訪問(wèn)時(shí),運(yùn)行穩(wěn)定。

        在停機(jī)維護(hù)時(shí),可能需要與地面服務(wù)器中的SOL Server數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)同步,可以使用RSQL Server cE自帶的emote Data Access(RDA)對(duì)象,它為Windows cE應(yīng)用程序訪問(wèn)遠(yuǎn)程的SQL Server數(shù)據(jù)庫(kù)提供了一種簡(jiǎn)單的訪問(wèn)方式。使用其Push方法,可以將保存在Windows cE.NET上的數(shù)據(jù)直接寫(xiě)人到遠(yuǎn)程的SQI Server數(shù)據(jù)庫(kù)中,使用Pull方法,可以將遠(yuǎn)程的SQL Server數(shù)據(jù)庫(kù)的數(shù)據(jù)下載到Windows cE.NET中的SOL Server cE數(shù)據(jù)庫(kù)中,這樣就可以實(shí)現(xiàn)數(shù)據(jù)的交換和同步。[9]

        (三)SOL Server CE在發(fā)電車監(jiān)測(cè)系統(tǒng)中的應(yīng)用

        本發(fā)電車監(jiān)測(cè)系統(tǒng)通過(guò)串口通信,實(shí)時(shí)獲取各遠(yuǎn)程測(cè)量模塊的測(cè)量數(shù)據(jù),并記錄在一個(gè)緩存實(shí)例中,通過(guò)界面模塊實(shí)時(shí)在屏幕上顯示當(dāng)前各項(xiàng)參數(shù),并通過(guò)人工觸發(fā)方式記錄數(shù)據(jù)到數(shù)據(jù)庫(kù),同時(shí)通過(guò)界面操作,對(duì)系統(tǒng)進(jìn)行設(shè)置以及對(duì)數(shù)據(jù)庫(kù)中歷史數(shù)據(jù)的查詢:通過(guò)數(shù)據(jù)庫(kù)存儲(chǔ)模塊,按設(shè)置定時(shí)記錄實(shí)時(shí)參數(shù)數(shù)據(jù)到數(shù)據(jù)庫(kù);通過(guò)事件報(bào)警分析模塊判斷報(bào)警,并記錄到數(shù)據(jù)庫(kù);通過(guò)GPRS通訊模塊實(shí)現(xiàn)與地面系統(tǒng)的數(shù)據(jù)通訊。

        而SQL Server cE 2.0作為一個(gè)嵌入式數(shù)據(jù)庫(kù),在本系統(tǒng)的應(yīng)用中,不可能記錄海量數(shù)據(jù),并進(jìn)行大數(shù)據(jù)量的檢索查詢或其它操作,否則會(huì)造成系統(tǒng)運(yùn)行效率下降或不穩(wěn)定,因此優(yōu)化數(shù)據(jù)庫(kù)的設(shè)計(jì)和優(yōu)化數(shù)據(jù)量在本系統(tǒng)設(shè)計(jì)中也很重要。

        五、應(yīng)用測(cè)試結(jié)果

        本發(fā)電車監(jiān)測(cè)系統(tǒng),在Windows cE.NET~I]SQL Server cE的平臺(tái)基礎(chǔ)上完成開(kāi)發(fā),并進(jìn)行了實(shí)際的裝車測(cè)試,比較其他同類產(chǎn)品有以下優(yōu)點(diǎn):

        1、系統(tǒng)穩(wěn)定:嵌入式平臺(tái)加上.NET Compact Framework的支持,系統(tǒng)運(yùn)行穩(wěn)定性很高,同時(shí),由于對(duì)多線程操作的保護(hù)較好,使多線程操作更具有高效性和穩(wěn)定性。

        2、運(yùn)行效率高:4個(gè)串口與各模塊設(shè)備通訊,平均單次輪詢時(shí)間為0.5s,低于系統(tǒng)要求的1s的時(shí)間間隔。由于嵌入式系統(tǒng)占資源較小,程序響應(yīng)速度很快。SOL Server CE存儲(chǔ)數(shù)據(jù)效率高,查詢速度也很快,操作中無(wú)明顯延遲現(xiàn)象,數(shù)據(jù)安全性好。

        3、界面友好:Windows cE.NET的圖形界面友好,在此基礎(chǔ)上開(kāi)發(fā)的程序也有同樣的優(yōu)點(diǎn)。

        4、系統(tǒng)擴(kuò)展性強(qiáng):在需要時(shí),可將數(shù)據(jù)通過(guò)SQL Server CE的同步功能,將車載主機(jī)中的數(shù)據(jù)直接同步到地面機(jī)SQL Server數(shù)據(jù)庫(kù),用于進(jìn)行進(jìn)一步的數(shù)據(jù)分析與挖掘。

        六、結(jié)論

        本文研究討論了發(fā)電車監(jiān)測(cè)系統(tǒng)中使用Windows cE.NET和SQL Serverce的可行性以及其使用及編程方法,并用應(yīng)用測(cè)試結(jié)果證明該平臺(tái)下開(kāi)發(fā)的監(jiān)測(cè)系統(tǒng)完全可以達(dá)到預(yù)期的設(shè)計(jì)目標(biāo)。該系統(tǒng)中使用到的軟件技術(shù)都是目前市場(chǎng)上較為成熟的技術(shù),其應(yīng)用領(lǐng)域也在逐漸擴(kuò)大,在鐵路系統(tǒng)的其它信息化建設(shè)中也將發(fā)揮重要作用。

        猜你喜歡
        線程串口嵌入式
        淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
        搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
        淺談linux多線程協(xié)作
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線通信
        Altera加入嵌入式視覺(jué)聯(lián)盟
        基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
        倍福 CX8091嵌入式控制器
        Linux線程實(shí)現(xiàn)技術(shù)研究
        久久久精品视频网站在线观看| 老熟女一区二区免费| 亚洲精品在线观看一区二区| 精品一级一片内射播放| 无码人妻少妇久久中文字幕蜜桃| 99久久久无码国产精品免费砚床| 对白刺激的老熟女露脸| 国产黄片一区二区三区| 强开小婷嫩苞又嫩又紧视频韩国| 真实国产老熟女粗口对白| 亚洲 欧美 激情 小说 另类| av男人天堂网在线观看| 日韩大片高清播放器大全| 中国丰满熟妇av| 亚洲电影久久久久久久9999| 日本办公室三级在线观看 | 18精品久久久无码午夜福利| 妺妺跟我一起洗澡没忍住| 无码国产精品一区二区高潮| 成人片在线看无码不卡| 久久色悠悠综合网亚洲| 国产成人午夜高潮毛片| 在线亚洲人成电影网站色www| 2021精品综合久久久久| 全亚洲最大的私人影剧院在线看| 久久综合九色综合久99| 日韩毛片在线| 精品国产97av一区二区三区| 国产高颜值女主播在线| 亚洲国产美女精品久久久| 窄裙美女教师在线观看视频| sm免费人成虐漫画网站| 国产成人av综合色| 又污又爽又黄的网站| 中文字幕亚洲好看有码| 国产蜜桃传媒在线观看| 亚洲熟女www一区二区三区| 日韩www视频| 午夜在线观看一区二区三区四区| av区无码字幕中文色| 人妻少妇精品视中文字幕国语|