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

        ?

        LXI網(wǎng)絡(luò)儀器監(jiān)管與測量的設(shè)計(jì)與實(shí)現(xiàn)?

        2020-05-15 05:19:52閆海卿李宥謀李延峰李曉俊
        關(guān)鍵詞:界面數(shù)據(jù)庫

        閆海卿 李宥謀 李延峰 李曉俊

        (西安郵電大學(xué)計(jì)算機(jī)學(xué)院 西安 710100)

        1 引言

        LXI是成熟的以太網(wǎng)技術(shù)在測控自動化領(lǐng)域應(yīng)用的擴(kuò)展,是將成熟的以太網(wǎng)技術(shù)應(yīng)用到自動測控系統(tǒng)中,以替代傳統(tǒng)的測試總線技術(shù),隨著信息技術(shù)的發(fā)展,儀器儀表的測控技術(shù)[2]發(fā)生了翻天覆地的變化,因此,LXI總線應(yīng)運(yùn)而生,LXI測試總線技術(shù)是信息化、網(wǎng)絡(luò)化發(fā)展的必然趨勢,在網(wǎng)絡(luò)化的測控系統(tǒng)中,數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)接脩艚K端,而用戶可以不受時間和空間的限制對系統(tǒng)內(nèi)的測量儀器進(jìn)行遠(yuǎn)程操控、獲取測量信息[3],LXI網(wǎng)絡(luò)儀器是一種以LXI作為儀器內(nèi)部總線的由不同功能的LXI模塊所組成的新型儀器[4],傳統(tǒng)儀器測量技術(shù)存在很多缺陷,容易受到地域或者其他條件的影響,監(jiān)管和測控不方便,并且儀器不能單獨(dú)使用,無法實(shí)時監(jiān)測到數(shù)據(jù),如果儀器設(shè)備發(fā)生故障的時候,無法快速準(zhǔn)確定位故障點(diǎn),還需要人工進(jìn)行排查,并且也無法對之前采集的數(shù)據(jù)進(jìn)行分析與統(tǒng)計(jì)。

        LXI網(wǎng)絡(luò)儀器可以實(shí)現(xiàn)遠(yuǎn)程實(shí)時測控[5]、監(jiān)管與維護(hù),因此設(shè)計(jì)一個用戶感覺良好、功能完善的LXI網(wǎng)絡(luò)儀器系統(tǒng)的測控平臺具有深遠(yuǎn)意義[6],通過該平臺可以將主界面和其他界面相互協(xié)作完成對LXI網(wǎng)絡(luò)儀器的測量、監(jiān)管和維護(hù)。

        2 樹形圖的設(shè)計(jì)與實(shí)現(xiàn)

        該測控平臺在Windows操作系統(tǒng)下完成的,使用C#語言在.NET Framework4.5平臺、Microsoft Vi?sual Studio 2012環(huán)境下開發(fā)的,在測控平臺主界面中,左側(cè)為樹形圖,右側(cè)為拓?fù)鋱D,本文中的樹形結(jié)構(gòu)[7]主要是利用控件TreeView動態(tài)將代理和儀器設(shè)備加載到樹形圖,樹形圖和拓?fù)鋱D都可以直觀地看到代理和儀器設(shè)備的連接情況,但是樹形圖可以直觀地看到父子關(guān)系,和書的目錄相似,功能完善,代理和儀器設(shè)備都可以通過樹形結(jié)構(gòu)進(jìn)行動態(tài)顯示,連接好的遠(yuǎn)端代理和設(shè)備的信息都可以通過測控平臺的后臺模塊傳送到測控界面中的MIB信息管理界面進(jìn)行顯示。

        LXI網(wǎng)絡(luò)儀器樹形圖,在TreeView控件的基礎(chǔ)上進(jìn)行設(shè)計(jì),樹形圖的設(shè)計(jì)分為三層,層次結(jié)構(gòu)明確,如圖1所示,左側(cè)為樹形圖,右側(cè)為拓?fù)鋱D[8],本文重點(diǎn)介紹樹形圖,拓?fù)鋱D只是簡單說明,樹形圖第一級為根節(jié)點(diǎn),無實(shí)際意義,用于連接代理開發(fā)板,第二級是代理開發(fā)版,用于連接儀器、儀表或者傳感器等設(shè)備,第三級就是儀器、儀表或者傳感器等設(shè)備,整個三層結(jié)構(gòu)顯示了網(wǎng)路儀器的拓?fù)鋵哟谓Y(jié)構(gòu)。

        圖1 樹形圖的生成

        2.1 樹形圖相關(guān)操作

        1)當(dāng)點(diǎn)擊樹形圖上的根節(jié)點(diǎn)的時候,會彈出相應(yīng)的菜單欄,包含刪除和添加菜單項(xiàng),根節(jié)點(diǎn)無實(shí)際意義,只起到連接作用,可以在根節(jié)點(diǎn)進(jìn)行添加,將代理節(jié)點(diǎn)添加到根節(jié)點(diǎn)下,代理最多可添加32個,每個代理下最多可添加四個儀器設(shè)備,同時將添加的代理和儀器設(shè)備存入數(shù)據(jù)庫,也可以在根節(jié)點(diǎn)處進(jìn)行刪除操作,刪除根節(jié)點(diǎn)下的所有代理節(jié)點(diǎn),同時,數(shù)據(jù)庫中的信息也進(jìn)行變化,除了根節(jié)點(diǎn)之外,所有數(shù)據(jù)都將刪除,樹形圖和拓?fù)鋱D都動態(tài)變化。

        2)當(dāng)右擊代理節(jié)點(diǎn)的時候,會彈出相應(yīng)的菜單欄,包括查看代理信息、配置代理、MIB信息管理、添加組件和刪除組件,對于添加組件和刪除組件項(xiàng),添加的是代理節(jié)點(diǎn)(代理節(jié)點(diǎn)最多32個),刪除的是選中的該代理以及該代理下所連接的所有儀器設(shè)備,查看代理信息是將數(shù)據(jù)庫[9~11]中已經(jīng)存放好的該代理的詳細(xì)信息進(jìn)行顯示,配置代理是將代理的ID編號和MAC地址進(jìn)行添加,MIB信息管理界面是對MIB節(jié)點(diǎn)進(jìn)行管理,可以獲得代理以及帶代理對應(yīng)的詳細(xì)信息,包括IP地址,可以將儀器設(shè)備端的數(shù)據(jù)通過代理,然后經(jīng)過后臺處理之后在MIB界面進(jìn)行顯示。

        3)當(dāng)右擊設(shè)備節(jié)點(diǎn)的時候,彈出相應(yīng)的菜單項(xiàng),包含設(shè)備屬性、MIB信息管理、設(shè)備配置、刪除節(jié)點(diǎn),因?yàn)樽疃嗳壒?jié)點(diǎn),因此沒有添加選項(xiàng),設(shè)備屬性是將設(shè)備的基本信息顯示出來,設(shè)備配置是將設(shè)備的基本信息進(jìn)行保存和刪除,還包括該設(shè)備的上一級節(jié)點(diǎn)的信息,MIB信息管理可以對儀器設(shè)備節(jié)點(diǎn)進(jìn)行管理并將采集的數(shù)據(jù)通過該節(jié)點(diǎn)進(jìn)行顯示,在TreeView屬性圖上進(jìn)行添加和刪除組件的操作都會影響數(shù)據(jù)庫中的數(shù)據(jù)記錄,操作結(jié)果的相關(guān)信息會在主界面的運(yùn)行窗口進(jìn)行顯示,同時也會影響主界面中的ListView控件中所顯示的信息,與此同時還會影響LXI網(wǎng)絡(luò)儀器拓?fù)鋱D區(qū)域中的拓?fù)鋱D的信息顯示,這幾個部分的信息彼此相關(guān)聯(lián),無論是樹形圖還是拓?fù)鋱D的改變,數(shù)據(jù)庫和ListView控件中的信息都需要立即進(jìn)行更新,從而保持?jǐn)?shù)據(jù)的一致性。

        2.2 樹形圖生成的實(shí)現(xiàn)

        2.2.1 樹形圖的生成

        TreeView樹形圖的生成是監(jiān)管平臺主控界面的核心功能,實(shí)現(xiàn)過程是首先從數(shù)據(jù)庫t_Running?TreeView表中讀取數(shù)據(jù),而該表中的數(shù)據(jù)來自于中間交互處理模塊對代理開發(fā)板的自動發(fā)現(xiàn),然后根據(jù)該表的所有信息以及表中節(jié)點(diǎn)的ID和PID遞歸的調(diào)用自定義的額add_tree()方法,執(zhí)行該方法的過程中,樹形節(jié)點(diǎn)就會逐級的被添加到TreeView控件上,同時也會統(tǒng)計(jì)代理和儀器設(shè)備的數(shù)目。樹形圖的生成過程是首先從數(shù)據(jù)庫中t_RunningTree?View表中讀取數(shù)據(jù)并存入DataTable內(nèi)存數(shù)據(jù)表中,利用DataTable類對象的Select方法,即Da?taRow[]dr=dt.Select(“pid=”+pid),從根節(jié)點(diǎn)開始遞歸,即pid=0的節(jié)點(diǎn)開始遍歷dr,每次遍歷實(shí)例化新的node對象,用于在樹形圖TreeView中添加新節(jié)點(diǎn),即TreeNode node=new TreeNode(),將 dr對象的每行值與node的相關(guān)屬性綁定,再把node節(jié)點(diǎn)通過Add方法添加到TreeView控件上,在此過程中要對本局域網(wǎng)中代理總數(shù)和儀器設(shè)備數(shù)目進(jìn)行統(tǒng)計(jì)。生成樹形圖的關(guān)鍵代碼為

        string ostring=“select*from t_RunningTreeView”;DataSet ds=new DataSet();//實(shí)例化數(shù)據(jù)集

        ds=MyMysqlMeans.getDataSet(ostring,“RunningTree?View”);//調(diào)用自定義的數(shù)據(jù)庫公共類的靜態(tài)數(shù)據(jù)方法,返回DataSet對象

        DataTable dt=ds.Tables[“RunningTreeView”];//創(chuàng)建DataTable對象

        //將t_RunningTreeView表中的代理以及儀器設(shè)備動態(tài)添加到TreeView控件

        add_tree(dt,0,(TreeNode)null,random);//將根節(jié)點(diǎn)添加到樹形圖中

        private void add_tree(DataTable dt,int pid,TreeNode pNode,Random random)

        {//獲取與篩選條件相匹配的所有DataRow對象的數(shù)組

        DataRow[]dr=dt.Select(“pid=”+pid);

        foreach(DataRow row in dr)//遍歷數(shù)組dr

        TreeNode node=new TreeNode();//實(shí)例化一個TreeNode節(jié)點(diǎn)對象

        if(pNode==null)//如果父節(jié)點(diǎn)為空,則為根節(jié)點(diǎn)root

        //設(shè)置樹節(jié)點(diǎn)標(biāo)簽中顯示的文本,即名稱

        node.Text=row[“name”].ToString();

        node.Tag=row[“id”].ToString();//設(shè)置樹節(jié)點(diǎn)的ID編號屬性

        node.ImageIndex=0;

        node.SelectedImageIndex=0;//選定狀態(tài)時的圖像列表索引值

        treeView1.Nodes.Add(node);//將創(chuàng)建的節(jié)點(diǎn)添加到樹節(jié)點(diǎn)集合的末尾

        //調(diào)用自定義的方法將row行表示的節(jié)點(diǎn)項(xiàng)添加到ListView列表控件中

        add_listview(row);

        //再次遞歸調(diào)用自定義的方法,遞歸創(chuàng)建并添加根節(jié)點(diǎn)的子節(jié)點(diǎn)

        add_tree(dt,int.Parse(row[“id”].ToString()),node,ran?dom);

        count_nodes++;//節(jié)點(diǎn)總數(shù)累加

        else{

        //添加當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)

        node.Text=row[“name”].ToString();

        node.Tag=row[“id”].ToString();

        int imageIndex=random.Next(1,33);//隨機(jī)數(shù)

        node.ImageIndex=imageIndex;//

        node.SelectedImageIndex=imageIndex;

        //node.ToolTipText=row[“notes”].ToString();

        pNode.Nodes.Add(node);

        add_listview(row);

        add_tree(dt,int.Parse(row[“id”].ToString()),node,random);

        if(node.Level==1)//一級節(jié)點(diǎn)

        agentNum++;//統(tǒng)計(jì)代理數(shù)目

        else if(node.Level==2)//節(jié)點(diǎn)深度為2,表示代理下面的設(shè)備節(jié)點(diǎn)

        devNum++;//儀器設(shè)備數(shù)目統(tǒng)計(jì)

        count_nodes++;//節(jié)點(diǎn)總數(shù)累加

        2.2.2 樹形圖的動態(tài)刷新生成

        樹形圖的動態(tài)生成實(shí)質(zhì)上是清除已有的樹狀圖和拓?fù)鋱D,再將它們重新生成,是根據(jù)數(shù)據(jù)庫表t_RunningTreeView中的數(shù)據(jù)生成TreeView目錄樹狀圖,再根據(jù)TreeView節(jié)點(diǎn)的數(shù)據(jù)繪制樹狀圖和拓?fù)鋱D,這樣的缺點(diǎn)是無論樹狀圖和拓?fù)鋱D是否發(fā)生變化,都要人工去刷新,消耗體力,程序輪詢控制時,在時間間隔上有局限性,要實(shí)現(xiàn)動態(tài)刷新,更新數(shù)據(jù)庫表t_RunningTreeView,再進(jìn)行程序控制的刷新,在動態(tài)刷新的時候,樹形圖和拓?fù)鋱D自動動態(tài)更新,獲取本局域網(wǎng)中動態(tài)樹形圖的方法有兩種,方法之間相互協(xié)調(diào),共同完成任務(wù),動態(tài)樹形圖如圖2所示,具體工作流程[12~13]如下。

        1)IP地址自動發(fā)現(xiàn):測控平臺加載之后調(diào)用后臺模塊,后臺模塊調(diào)用開源DHCP模塊,為代理開發(fā)板分配動態(tài)分配IP地址,然后后臺將IP地址和MAC地址通過進(jìn)程間通信socket通信推送到測控平臺,測控平臺創(chuàng)建線程[14]去接收,將接收到的消息通過主界面的運(yùn)行欄進(jìn)行顯示,同時將其寫入日志文件,以備后來查看,同時,測控平臺主界面自定義函數(shù)getDHCPInfo()中將接收到的MAC地址在數(shù)據(jù)庫表t_AgentIdMac中進(jìn)行查詢,如果不存在此MAC地址,則說明該代理不存在,則將該代理添加到此表中,然后在表t_RunningTreeView中通過代理名稱來查詢編號ID,如果不存在,則將該代理的名稱、pid、ip和mac地址添加到此表中,點(diǎn)擊刷新,樹形圖和拓?fù)鋱D都發(fā)生改變。

        2)掃描代理:代理通過DHCP模塊為代理進(jìn)行IP地址的分配,在主界面創(chuàng)建一個線程scanAgentIp(),測控平臺每隔一定時間去讀取數(shù)據(jù)庫表t_Run?ningTreeView中所有代理的ID和IP地址,然后通過Ping類和PingReply類與代理的IP地址進(jìn)行Ping操作,即發(fā)送ICMP請求,并獲取ICMP應(yīng)答狀態(tài),如果應(yīng)答狀態(tài)失敗,則表明此代理不存在,則應(yīng)該將該代理從數(shù)據(jù)庫表中刪除,并且將該代理下面的儀器設(shè)備進(jìn)行刪除,如果Ping操作成功,則在數(shù)據(jù)庫中讀取下一條ID和IP地址的記錄,然后進(jìn)行和上面同樣的操作。

        圖2 代理和儀器連接

        3 MIB信息管理界面的設(shè)計(jì)與實(shí)現(xiàn)

        LXI網(wǎng)絡(luò)儀器測控平臺主界面中的樹形圖和拓?fù)鋱D都可以動態(tài)顯示代理以及儀器設(shè)備,也可以實(shí)現(xiàn)動態(tài)添加、刪除、查看對應(yīng)屬性信息,遠(yuǎn)端代理和儀器設(shè)備的信息獲取是使用的 SNMP[15~16]的 Get和Set操作,用戶可以將遠(yuǎn)端數(shù)據(jù)通過MIB界面進(jìn)行正確顯示,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控和數(shù)據(jù)查看。

        1)當(dāng)加載此窗體時,窗體在加載的過程中會對DataGridView控件進(jìn)行自定義設(shè)置,例如在該控件中創(chuàng)建復(fù)選框列,從數(shù)據(jù)庫中加載信息,顯示在該控件的指定位置,并進(jìn)行分頁顯示,在圖3中的MIB表中,可以單擊某行后面的“獲取”或者“設(shè)置”按鈕,從而實(shí)現(xiàn)對選定行中的OID進(jìn)行SNMP的“Get”和“Set”操作,也可以在復(fù)選框中選擇一個起始的OID,單擊“批量獲取”按鈕進(jìn)行連續(xù)四個OID符號表示的信息的獲取,當(dāng)點(diǎn)擊“獲取”時,會彈出一個小窗口,需要填充該OID對應(yīng)的代理的IP地址,可以通過單擊該小窗口上的“自動獲取”按鈕進(jìn)行快速獲取,然后點(diǎn)擊“提交”按鈕之后,通過中間交互處理模塊即后臺處理模塊向代理發(fā)送Get或者Set請求,對于“獲取”、“設(shè)置”和“批量設(shè)置”操作實(shí)現(xiàn)比較復(fù)雜,用到數(shù)據(jù)庫技術(shù)、多線程、內(nèi)存映射文件、socket套接字以及序列化與反序列化操作等,這里不做詳細(xì)說明。

        2)在實(shí)驗(yàn)中用到的有基于Linux操作系統(tǒng)的開發(fā)板、基于μC/OS-II[17]操作系統(tǒng)的開發(fā)板、示波器、信號發(fā)生器和溫度傳感器等設(shè)備,本測試用Linux操作系統(tǒng)的開發(fā)板進(jìn)行測試,5號代理將示波器和傳感器分別接在代理的USB和UART接口上,上圖2中device-5-1和device-5-3分別代表示波器和傳感器分別接入到5號代理的接口1和接口3,選擇OID號為1.3.6.1.4.1.1199.5.1.4.0,表示5號代理第一個接口所連接的設(shè)備的第4個屬性。

        圖3 MIB信息管理界面

        3)在MIB信息表中,選中OID號為1.3.6.1.4.1.1199.5.1.4.0所在的行,點(diǎn)擊“獲取”之后,在圖5所示的窗口點(diǎn)擊自動獲取填充此代理的IP地址,可在MIB信息管理界面看到結(jié)果,結(jié)果如圖4所示。當(dāng)點(diǎn)擊該行的“設(shè)置”(SNMP協(xié)議中的Set),表示對示波器device-5-1的操作,設(shè)置其無效值為“5.1E1”,并在信息顯示窗口查看顯示結(jié)果,然后再對其設(shè)置有效值“5.0E0”,查看設(shè)置結(jié)果,當(dāng)點(diǎn)擊“獲取”的時候,兩次設(shè)置對比圖分別如圖6和圖7所示。

        圖4 “獲取”屬性值

        圖5 “設(shè)置”屬性值

        圖6 第一次設(shè)置結(jié)果

        圖7 第二次設(shè)置結(jié)果

        4 結(jié)語

        本文主要研究的是局域網(wǎng)內(nèi)樹形圖的生成及遠(yuǎn)程管理和測量,屬于LXI網(wǎng)絡(luò)儀器測控與管理的系統(tǒng)監(jiān)管平臺項(xiàng)目的一部分,該項(xiàng)目是陜西省重大科技創(chuàng)新專項(xiàng)資助項(xiàng)目,實(shí)現(xiàn)了儀器設(shè)備的遠(yuǎn)程測量與監(jiān)控,具有創(chuàng)新性和開發(fā)的價值,該項(xiàng)目已經(jīng)成功驗(yàn)收,測控界面直觀、易操作,達(dá)到預(yù)期目標(biāo)。

        猜你喜歡
        界面數(shù)據(jù)庫
        國企黨委前置研究的“四個界面”
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
        數(shù)據(jù)庫
        空間界面
        金秋(2017年4期)2017-06-07 08:22:16
        數(shù)據(jù)庫
        電子顯微打開材料界面世界之門
        人機(jī)交互界面發(fā)展趨勢研究
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        国产熟人av一二三区| 午夜男女靠比视频免费| 亚洲av综合av一区二区三区| 女人高潮被爽到呻吟在线观看| 97无码人妻Va一区二区三区| 国产精品,在线点播影院| 日本一区二区三区不卡在线| 免费人成年激情视频在线观看| 日本老熟欧美老熟妇| 午夜爽毛片| 久久久久亚洲AV无码专区喷| av在线手机中文字幕| 国产黄污网站在线观看| 伊人久久大香线蕉综合网站| 韩日美无码精品无码| 中文字幕高清无码不卡在线| 一区二区视频在线国产| 日本无码欧美一区精品久久| 无限看片在线版免费视频大全| 黄色av三级在线免费观看| 日本国产精品久久一线| 成人欧美一区二区三区| 色综合88| 精品人妻夜夜爽一区二区| 国产精品又湿又黄九九九久久嫩草 | 久久国产自偷自免费一区100| 日本一区二区三区四区在线看| 亚洲精品久久区二区三区蜜桃臀| 久久精品欧美日韩精品| 亚洲一区二区在线| 国产福利小视频91| 最新在线观看免费的a站国产| 亚洲精品色婷婷在线影院| 日日摸夜夜添夜夜添无码免费视频| 人妻少妇无码中文幕久久| 男生自撸视频在线观看| 97精品国产一区二区三区| 久久天天躁狠狠躁夜夜爽| 亚洲av粉色一区二区三区| 变态另类人妖一区二区三区 | 国产精品国产三级国产av品爱|