專利名稱::基于模擬端口的通信方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信領(lǐng)域,尤其涉及一種基于模擬端口的通信方法。
背景技術(shù):
:通常,在網(wǎng)管A開發(fā)測試過程中,需要使用大量網(wǎng)元B與網(wǎng)管系統(tǒng)進行聯(lián)調(diào)和測試。然而,網(wǎng)管與網(wǎng)元的開發(fā)往往同時開始進行,由于開發(fā)進度的不一致,會造成沒有網(wǎng)元進行聯(lián)調(diào)測試,或者網(wǎng)元不夠用,這時網(wǎng)管A需要做一個簡易的系統(tǒng)BSimulator(即模擬端口),代替真實網(wǎng)元B進行通信。下面舉例說明什么為模擬端口,如圖1所示,設(shè)備A通過接口C與設(shè)備B進行TCP通信。假如設(shè)備BSimulator與設(shè)備B有著同樣的接口C,BSimulator在C接口上模擬B的動作,對于設(shè)備A來說,BSimulator和B本身沒有區(qū)別。那么設(shè)備BSimulator稱為設(shè)備B的模擬端口?,F(xiàn)有技術(shù)中利用模擬端口進行通信的方法為針對每個具體接口編寫大量與命令有關(guān)的相應(yīng)代碼,以定義其響應(yīng)消息。如switch(命令碼關(guān)鍵字){case命令1響應(yīng)內(nèi)容1;case命令2響應(yīng)內(nèi)容2;case命令3響應(yīng)內(nèi)容3;……}從上述可以看出,現(xiàn)有技術(shù)中要實現(xiàn)模擬端口對所有命令的支持,需要通過對每個具體端口編寫與命令有關(guān)的對應(yīng)代碼,以定義其響應(yīng)消息,如果該接口沒有編寫對應(yīng)的代碼,則該接口無法正確模擬;而且如果新增端口,就必須修改所述源代碼,因此模擬端口的可擴展性差,而且模擬端口的維護也比較困難。
發(fā)明內(nèi)容本發(fā)明的目的是提供一種基于模擬端口的通信方法,該方法在實現(xiàn)模擬端口對所有命令的支持的前提下,在新增端口時,用戶不需修改所述與具體命令有關(guān)的源代碼,具有良好的擴展性。本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的本發(fā)明提供的一種基于模擬端口的通信方法,包括A、根據(jù)端口的操作類型確定實施模擬端口操作的命令規(guī)則;B、根據(jù)所述命令規(guī)則向模擬端口實施相應(yīng)的命令操作;C、模擬端口根據(jù)相應(yīng)的命令操作模擬通信端口進行通信。其中,所述命令規(guī)則包括設(shè)置類命令規(guī)則、添加類命令規(guī)則、刪除類命令規(guī)則和/或查詢類命令規(guī)則。其中,所述步驟B進一步包括根據(jù)設(shè)置類命令規(guī)則向模擬端口實施設(shè)置數(shù)據(jù)命令操作;和/或根據(jù)添加類命令規(guī)則向模擬端口實施添加數(shù)據(jù)命令操作;和/或根據(jù)刪除類命令規(guī)則向模擬端口實施刪除數(shù)據(jù)命令操作;和/或根據(jù)查詢類命令規(guī)則向模擬端口實施查詢數(shù)據(jù)命令操作。其中,所述步驟C進一步包括模擬端口根據(jù)設(shè)置類命令操作模擬通信端口設(shè)置數(shù)據(jù);和/或模擬端口根據(jù)添加類命令操作模擬通信端口添加數(shù)據(jù);和/或模擬端口根據(jù)刪除類命令操作模擬通信端口刪除數(shù)據(jù);和/或模擬端口根據(jù)查詢類命令操作模擬通信端口查詢數(shù)據(jù)。其中,所述模擬端口根據(jù)設(shè)置類命令規(guī)則模擬通信端口設(shè)置數(shù)據(jù)的過程進一步包括獲取對應(yīng)的設(shè)置類命令規(guī)則;根據(jù)設(shè)置類命令規(guī)則拆分接收到數(shù)據(jù)的二進制流;刪除數(shù)據(jù)庫中的原始記錄;將拆分出的數(shù)據(jù)保存到數(shù)據(jù)庫中。其中,所述模擬端口根據(jù)添加類命令規(guī)則模擬通信端口添加數(shù)據(jù)的過程進一步包括獲取對應(yīng)的添加類命令規(guī)則;根據(jù)添加類命令規(guī)則拆分接收到數(shù)據(jù)的二進制流;將拆分出的數(shù)據(jù)添加到數(shù)據(jù)庫中。其中,所述模擬端口根據(jù)刪除類命令規(guī)則模擬通信端口刪除數(shù)據(jù)的過程進一步包括獲取對應(yīng)的刪除類命令規(guī)則;根據(jù)刪除類命令規(guī)則拆分接收到數(shù)據(jù)的二進制流;根據(jù)刪除類命令規(guī)則及拆分出的數(shù)據(jù)查找對應(yīng)的數(shù)據(jù)記錄;刪除對應(yīng)的數(shù)據(jù)記錄。其中,所述模擬端口根據(jù)查詢類命令操作模擬通信端口查詢數(shù)據(jù)的過程進一步包括獲取對應(yīng)的查詢類命令規(guī)則;根據(jù)查詢類命令規(guī)則拆分接收到數(shù)據(jù)的二進制流;根據(jù)查詢類命令規(guī)則及拆分出的數(shù)據(jù)查找對應(yīng)的記錄數(shù)據(jù);根據(jù)查詢類命令規(guī)則將查找到的記錄數(shù)據(jù)構(gòu)成響應(yīng)消息進行響應(yīng)。其中,所述根據(jù)查詢類命令規(guī)則及拆分出的數(shù)據(jù)查找對應(yīng)的記錄數(shù)據(jù)的過程進一步包括根據(jù)查詢類命令規(guī)則及拆分的數(shù)據(jù)查找對應(yīng)的設(shè)置類命令;根據(jù)對應(yīng)的設(shè)置類命令及拆分的數(shù)據(jù)查找對應(yīng)的記錄數(shù)據(jù)。其中,所述端口的操作類型包括向端口設(shè)置數(shù)據(jù)的設(shè)置類操作類型、向端口添加數(shù)據(jù)的添加類操作類型、向端口刪除數(shù)據(jù)的刪除類操作類型和向端口查詢數(shù)據(jù)的查詢類操作類型。由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明所述的方法具有如下優(yōu)點由于采用根據(jù)命令規(guī)則向模擬端口實施相應(yīng)的命令操作以及模擬端口根據(jù)相應(yīng)的命令操作模擬通信端口進行通信,所以能夠在完成模擬端口對所有命令的支持的前提下,避免編寫大量與具體命令有關(guān)的源代碼,從而實現(xiàn)代碼與具體命令無關(guān);用戶可以通過命令操作修改模擬端口的配置信息,實現(xiàn)對新增接口的支持,而無需修改所述源代碼。圖1為現(xiàn)有技術(shù)中模擬端口的示意圖;圖2為本發(fā)明的流程圖;圖3為本發(fā)明中設(shè)置數(shù)據(jù)時的處理過程;圖4為本發(fā)明中添加數(shù)據(jù)時的處理過程;圖5為本發(fā)明中查詢數(shù)據(jù)時的處理過程;圖6為本發(fā)明中刪除數(shù)據(jù)時的處理過程。具體實施例方式本發(fā)明的具體實施方式參考圖2,其包括,首先執(zhí)行步驟S210,根據(jù)端口的操作類型確定實施模擬端口操作的命令規(guī)則。一個端口上的操作,都可以簡單地分成四大類,即設(shè)置類、查詢類、刪除類和添加類。通常不管端口是什么樣一個接口,也不管該接口上定義了多少操作(命令字),接口上的操作都可以歸屬到這四類操作中。通常來說,這四種操作的基本過程包括設(shè)備A向設(shè)備B設(shè)置數(shù)據(jù),設(shè)備B響應(yīng)成功與否;設(shè)備A向設(shè)備B添加數(shù)據(jù),設(shè)備B響應(yīng)成功與否;設(shè)備A向設(shè)備B刪除數(shù)據(jù),設(shè)備B響應(yīng)成功與否;以及設(shè)備A向設(shè)備B查詢數(shù)據(jù),設(shè)備B響應(yīng)數(shù)據(jù)。對應(yīng)端口的四種操作類型,命令規(guī)則也分成四種設(shè)置類命令規(guī)則、添加類命令規(guī)則、刪除類命令規(guī)則、查詢類命令規(guī)格。所述設(shè)置類命令規(guī)則用于定義實施設(shè)置操作的命令接口如何進行保存數(shù)據(jù);所述添加類命令規(guī)則用于定義實施添加操作的命令接口如何進行保存數(shù)據(jù);所述刪除類命令規(guī)則用于定義實施刪除操作的命令接口如何進行刪除數(shù)據(jù);所述查詢類命令規(guī)則用于定義實施查詢操作的命令接口如何進行查詢數(shù)據(jù),并依據(jù)查詢到的數(shù)據(jù)構(gòu)造響應(yīng)消息。接著執(zhí)行步驟S220,根據(jù)所述命令規(guī)則向模擬端口實施相應(yīng)的命令操作。對應(yīng)于命令規(guī)則的四種類型,步驟S220相應(yīng)的包括根據(jù)設(shè)置類命令規(guī)則向模擬端口實施設(shè)置數(shù)據(jù)命令操作;根據(jù)添加類命令規(guī)則向模擬端口實施添加數(shù)據(jù)命令操作;根據(jù)刪除類命令規(guī)則向模擬端口實施刪除數(shù)據(jù)命令操作;以及根據(jù)查詢類命令規(guī)則向模擬端口實施查詢數(shù)據(jù)命令操作。接著執(zhí)行步驟S230,模擬端口根據(jù)相應(yīng)的命令操作模擬通信端口進行通信。當(dāng)模擬端口接收到設(shè)置類命令操作時,其根據(jù)設(shè)置類命令操作模擬通信端口設(shè)置數(shù)據(jù)。設(shè)置類命令規(guī)則指出了命令的參數(shù)格式,模擬端口(BSimulator)利用這些信息實現(xiàn)對數(shù)據(jù)的拆分和保存。該步驟具體操作如圖3所示首先執(zhí)行步驟S231,模擬端口獲取對應(yīng)的設(shè)置類命令規(guī)則;接著執(zhí)行步驟S232,模擬端口根據(jù)設(shè)置類命令規(guī)則拆分接收到數(shù)據(jù)的二進制流;然后執(zhí)行步驟S233,刪除數(shù)據(jù)庫中的原始記錄;最后執(zhí)行步驟S234,將拆分出的數(shù)據(jù)保存到數(shù)據(jù)庫中。以“設(shè)置應(yīng)發(fā)J0字節(jié)”命令為例,當(dāng)模擬端口(BSimulator)接收到如表1所述的約21字節(jié)的二進制流時,模擬端口(BSimulator)根據(jù)該命令的設(shè)置類命令規(guī)則,得知各字節(jié)的含義,如表2所示,即版位號para;光口號para[1];字節(jié)模式para[2];應(yīng)發(fā)J0值para[3-18]。表1表2模擬端口(BSimulator)把各字節(jié)拆分歸類成有實際含義的參數(shù)值,如表3所示表3模擬端口(BSimulator)再把這些參數(shù)值保存到NSCMD_CFG_SET_STJ0表中,如表4所示表4當(dāng)模擬端口接收到添加類命令操作時,其根據(jù)添加類命令操作模擬通信端口添加數(shù)據(jù);具體操作如圖4所示首先執(zhí)行步驟S241,模擬端口獲取對應(yīng)的添加類命令規(guī)則;隨后執(zhí)行步驟S242,根據(jù)添加類命令規(guī)則拆分接收到數(shù)據(jù)的二進制流;最后執(zhí)行步驟S243,將拆分出的數(shù)據(jù)添加到數(shù)據(jù)庫中。由上述步驟可以看出,模擬端口根據(jù)添加類命令操作模擬通信端口添加數(shù)據(jù)的過程與根據(jù)設(shè)置類命令操作模擬通信端口設(shè)置數(shù)據(jù)的過程相似。不同的是,添加數(shù)據(jù)時,不刪除原先的數(shù)據(jù),而設(shè)置數(shù)據(jù)時先刪除原先的數(shù)據(jù),再把新數(shù)據(jù)添加進去。當(dāng)模擬端口接收到查詢類命令操作時,模擬端口根據(jù)查詢類命令操作模擬通信端口查詢數(shù)據(jù)。具體操作如圖5所示首先執(zhí)行步驟S261,獲取對應(yīng)的查詢類命令規(guī)則;接著執(zhí)行步驟S262,根據(jù)查詢類命令規(guī)則拆分接收到數(shù)據(jù)的二進制流;隨后執(zhí)行步驟S263,根據(jù)查詢類命令規(guī)則及拆分出的數(shù)據(jù)查找對應(yīng)的記錄數(shù)據(jù);即首先根據(jù)查詢類命令規(guī)則及拆分的數(shù)據(jù)查找對應(yīng)的設(shè)置類命令,然后,根據(jù)對應(yīng)的設(shè)置類命令及拆分的數(shù)據(jù)查找對應(yīng)的記錄數(shù)據(jù);最后執(zhí)行步驟S266,根據(jù)查詢類命令規(guī)則將查找到的記錄數(shù)據(jù)進行響應(yīng)。同樣以“查詢應(yīng)發(fā)J0字節(jié)”命令為例,查詢類命令規(guī)則指出每個字節(jié)代表的含義,如表5所示表5查詢類命令規(guī)則除了指出每個字節(jié)的含義,還指出與設(shè)置類命令規(guī)則的對應(yīng)關(guān)系,如表6所示,包括查詢命令與設(shè)置命令的對應(yīng)關(guān)系和查詢命令各參數(shù)與設(shè)置命令各參數(shù)的對應(yīng)的關(guān)系。根據(jù)所述對應(yīng)關(guān)系調(diào)用所述設(shè)置命令為NSCMD_CFG_SET_STJ0時對應(yīng)的數(shù)據(jù)參數(shù),即可查詢得到相應(yīng)的數(shù)據(jù)參數(shù),然后根據(jù)查詢道德數(shù)據(jù)構(gòu)造響應(yīng)消息。表6根據(jù)查詢類命令規(guī)則,模擬端口(BSimulator)收到“查詢應(yīng)發(fā)J0字節(jié)”約4字節(jié)的二進制流時,進行的處理過程如下首先,將查詢應(yīng)發(fā)J0字節(jié)的二進制流拆分成有意義的參數(shù),如表7所示<tablesid="table5"num="005"><tablewidth="139">1211命令碼板位號光口號</table></tables>表7其次,根據(jù)查詢類命令規(guī)則,到對應(yīng)設(shè)置命令NSCMD_CFG_SET_STJ0表中所示,查找所述“板位號”、“光口號”為1的記錄,如表8中紅線所圈的數(shù)據(jù)。表8然后將查詢到的數(shù)據(jù),按照查詢類命令規(guī)則的響應(yīng)部分,構(gòu)造成響應(yīng)消息,如表9所示,進行響應(yīng)。<tablesid="table6"num="006"><tablewidth="712">12011120333233340000000000命令碼失敗標(biāo)識板位號光口號模式應(yīng)發(fā)J0值</table></tables>表9由上述可以看出,模擬端口根據(jù)查詢類命令操作模擬通信端口查詢數(shù)據(jù)的過程與根據(jù)設(shè)置類命令操作模擬通信端口設(shè)置數(shù)據(jù)的過程的不同之處在于本過程的查詢類命令規(guī)則除了要向設(shè)置類命令規(guī)則一樣指出每個字節(jié)的含義外,還要指出這些數(shù)據(jù)的來源。由于本發(fā)明實施設(shè)置操作時保存數(shù)據(jù)解決數(shù)據(jù)的來源問題,因此,模擬端口根據(jù)查詢類命令操作模擬通信端口查詢數(shù)據(jù)的過程要指出數(shù)據(jù)對應(yīng)的設(shè)置命令,以及各參數(shù)的對應(yīng)關(guān)系。當(dāng)模擬端口接收到刪除類命令操作時,其根據(jù)刪除類命令操作模擬通信端口刪除數(shù)據(jù);具體操作如圖6所示首先執(zhí)行步驟S251,模擬端口獲取對應(yīng)的刪除類命令規(guī)則;其次執(zhí)行步驟S252,根據(jù)刪除類命令規(guī)則拆分接收到數(shù)據(jù)的二進制流;接著執(zhí)行步驟S253,根據(jù)刪除類命令規(guī)則及拆分出的數(shù)據(jù)查找對應(yīng)的數(shù)據(jù)記錄;最后執(zhí)行步驟S254,刪除對應(yīng)的數(shù)據(jù)記錄。由上述操作過程可以看出,所述刪除類命令規(guī)則與查詢類命令規(guī)則相似。不同的是,當(dāng)向模擬端口實施刪除命令時,模擬端口查詢到對應(yīng)的記錄后直接刪除該記錄即可,而當(dāng)向模擬端口實施查詢命令時,模擬端口查詢到相應(yīng)的記錄后,還要把記錄中的數(shù)據(jù)構(gòu)造成響應(yīng)消息。由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明所述的方法具有如下優(yōu)點由于采用根據(jù)命令規(guī)則向模擬端口實施相應(yīng)的命令操作以及模擬端口根據(jù)相應(yīng)的命令操作模擬通信端口進行通信,所以能夠在完成模擬端口對所有命令的支持的前提下,避免編寫大量與具體命令有關(guān)的源代碼,從而實現(xiàn)代碼與具體命令無關(guān);用戶可以通過命令操作修改模擬端口的配置信息,實現(xiàn)對新增接口的支持,而無需修改所述源代碼。以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準(zhǔn)。權(quán)利要求1.一種基于模擬端口的通信方法,其特征在于,包括如下步驟A、根據(jù)端口的操作類型確定實施模擬端口操作的命令規(guī)則;B、根據(jù)所述命令規(guī)則向模擬端口實施相應(yīng)的命令操作;C、模擬端口根據(jù)相應(yīng)的命令操作模擬通信端口進行通信。2.按照權(quán)利要求1所述的方法,其特征在于,所述命令規(guī)則包括設(shè)置類命令規(guī)則、添加類命令規(guī)則、刪除類命令規(guī)則和/或查詢類命令規(guī)則。3.按照權(quán)利要求2所述的方法,其特征在于,所述步驟B進一步包括根據(jù)設(shè)置類命令規(guī)則向模擬端口實施設(shè)置數(shù)據(jù)命令操作;和/或根據(jù)添加類命令規(guī)則向模擬端口實施添加數(shù)據(jù)命令操作;和/或根據(jù)刪除類命令規(guī)則向模擬端口實施刪除數(shù)據(jù)命令操作;和/或根據(jù)查詢類命令規(guī)則向模擬端口實施查詢數(shù)據(jù)命令操作。4.按照權(quán)利要求3所述的方法,其特征在于,所述步驟C進一步包括模擬端口根據(jù)設(shè)置類命令操作模擬通信端口設(shè)置數(shù)據(jù);和/或模擬端口根據(jù)添加類命令操作模擬通信端口添加數(shù)據(jù);和/或模擬端口根據(jù)刪除類命令操作模擬通信端口刪除數(shù)據(jù);和/或模擬端口根據(jù)查詢類命令操作模擬通信端口查詢數(shù)據(jù)。5.按照權(quán)利要求4所述的方法,其特征在于,所述模擬端口根據(jù)設(shè)置類命令規(guī)則模擬通信端口設(shè)置數(shù)據(jù)的過程進一步包括獲取對應(yīng)的設(shè)置類命令規(guī)則;根據(jù)設(shè)置類命令規(guī)則拆分接收到數(shù)據(jù)的二進制流;刪除數(shù)據(jù)庫中的原始記錄;將拆分出的數(shù)據(jù)保存到數(shù)據(jù)庫中。6.按照權(quán)利要求4所述的方法,其特征在于,所述模擬端口根據(jù)添加類命令規(guī)則模擬通信端口添加數(shù)據(jù)的過程進一步包括獲取對應(yīng)的添加類命令規(guī)則;根據(jù)添加類命令規(guī)則拆分接收到數(shù)據(jù)的二進制流;將拆分出的數(shù)據(jù)添加到數(shù)據(jù)庫中。7.按照權(quán)利要求4所述的方法,其特征在于,所述模擬端口根據(jù)刪除類命令規(guī)則模擬通信端口刪除數(shù)據(jù)的過程進一步包括獲取對應(yīng)的刪除類命令規(guī)則;根據(jù)刪除類命令規(guī)則拆分接收到數(shù)據(jù)的二進制流;根據(jù)刪除類命令規(guī)則及拆分出的數(shù)據(jù)查找對應(yīng)的數(shù)據(jù)記錄;刪除對應(yīng)的數(shù)據(jù)記錄。8.按照權(quán)利要求4所述的方法,其特征在于,所述模擬端口根據(jù)查詢類命令操作模擬通信端口查詢數(shù)據(jù)的過程進一步包括獲取對應(yīng)的查詢類命令規(guī)則;根據(jù)查詢類命令規(guī)則拆分接收到數(shù)據(jù)的二進制流;根據(jù)查詢類命令規(guī)則及拆分出的數(shù)據(jù)查找對應(yīng)的記錄數(shù)據(jù);根據(jù)查詢類命令規(guī)則將查找到的記錄數(shù)據(jù)構(gòu)成響應(yīng)消息進行響應(yīng)。9.按照權(quán)利要求8所述的方法,其特征在于,所述根據(jù)查詢類命令規(guī)則及拆分出的數(shù)據(jù)查找對應(yīng)的記錄數(shù)據(jù)的過程進一步包括根據(jù)查詢類命令規(guī)則及拆分的數(shù)據(jù)查找對應(yīng)的設(shè)置類命令;根據(jù)對應(yīng)的設(shè)置類命令及拆分的數(shù)據(jù)查找對應(yīng)的記錄數(shù)據(jù)。10.按照權(quán)利要求1、5、6、7、9任意一項所述的方法,其特征在于,所述端口的操作類型包括向端口設(shè)置數(shù)據(jù)的設(shè)置類操作類型、向端口添加數(shù)據(jù)的添加類操作類型、向端口刪除數(shù)據(jù)的刪除類操作類型和向端口查詢數(shù)據(jù)的查詢類操作類型。全文摘要本發(fā)明涉及一種基于模擬端口的通信方法,本方法的核心是采用根據(jù)端口的操作類型確定實施模擬端口操作的命令規(guī)則,然后根據(jù)所述命令規(guī)則向模擬端口實施相應(yīng)的命令操作,以及模擬端口根據(jù)相應(yīng)的命令操作模擬通信端口進行通信;所以能夠在完成模擬端口對所有命令的支持的前提下,避免編寫大量與具體命令有關(guān)的源代碼,從而實現(xiàn)代碼與具體命令無關(guān);而且用戶可以通過命令操作修改模擬端口的配置信息,實現(xiàn)對新增接口的支持,而無需修改所述源代碼。文檔編號H04L12/26GK1812351SQ20051000491公開日2006年8月2日申請日期2005年1月28日優(yōu)先權(quán)日2005年1月28日發(fā)明者盧華兵申請人:華為技術(shù)有限公司