報文解析方法和裝置的制造方法
【技術領域】
[0001]本發明涉及移動終端制造技術領域,尤其涉及一種報文解析方法和裝置。
【背景技術】
[0002]如圖1所示,在接收到一個報文數據之后,通常會先判斷報文數據的當前ID是什么,然后根據當前ID去查找當前ID對應的解析方法,通過該解析方法計算出當前ID對應的協議所包含的參數和解析結果。
[0003]然而,發明人在實現本發明的過程中發現,由于產品在研發過程中,經常會增加、修改或者刪除報文,會造成協議的版本不同。因此,現有的解析方法存在以下不足:
[0004]1、現有的解析方法是根據報文ID來解析的,只能解析出固定個數的參數;
[0005]2、當對協議進行修改的時,尤其是對報文數據的解析方法進行修改時,需要重新編寫報文ID所對應的方法;
[0006]3、當協議中的報文ID不夠用時,增加新的報文ID時需要對該報文ID編寫新的解析方法。
【發明內容】
[0007]本發明旨在至少在一定程度上解決相關技術中的技術問題之一。
[0008]為此,本發明的第一個目的在于提出一種報文解析方法,該方法具有以下有益效果:1、讓報文數據域的解析變得可配置,可以只計算協議中數據域的某幾個值,而不需要計算該報文數據中沒有用到的數據;2、采用通用的解析數據方法以及報文數據的解析參數列表,避免了協議的版本不統一的問題;3、報文數據的解析參數列表中的信息可以表示出數據域的所有情況,包括加減乘除等操作;4、當對報文數據進行增加、修改、刪除時,只需要修改解析參數列表中的信息即可。
[0009]本發明的第二個目的在于提出一種報文解析裝置。
[0010]為達上述目的,本發明第一方面實施例提出了一種報文解析方法,包括:獲取報文數據和報文ID,并獲取所述報文ID中待解析的Key列表;讀取所述報文ID的解析配置信息,并根據所述待解析的Key列表獲所述待解析的Key列表對應的解析參數。
[0011]本發明實施例的報文解析方法,通過報文ID和待解析的Key列表查找對應的解析配置信息,并從解析配置信息中獲取對應的解析參數,使用該解析參數對報文數據進行解析,具有以下有益效果:1、讓報文數據域的解析變得可配置,可以只計算協議中數據域的某幾個值,而不需要計算該報文數據中沒有用到的數據;2、采用通用的解析數據方法以及報文數據的解析參數列表,避免了協議的版本不統一的問題;3、報文數據的解析參數列表中的信息可以表示出數據域的所有情況,包括加減乘除等操作;4、當對報文數據進行增加、修改、刪除時,只需要修改解析參數列表中的信息即可。
[0012]為達上述目的,本發明第二方面實施例提出了一種報文解析裝置,包括:第一獲取模塊,用于獲取報文數據和報文ID,并獲取所述報文ID中待解析的Key列表;第二獲取模塊,用于讀取所述報文ID的解析配置信息;第三獲取模塊,用于根據所述待解析的Key列表獲所述待解析的Key列表對應的解析參數;以及解析模塊,用于根據所述解析參數對所述報文數據進行解析。
[0013]本發明實施例的報文解析裝置,通過報文ID和待解析的Key列表查找對應的解析配置信息,并從解析配置信息中獲取對應的解析參數,使用該解析參數對報文數據進行解析,具有以下有益效果:1、讓報文數據域的解析變得可配置,可以只計算協議中數據域的某幾個值,而不需要計算該報文數據中沒有用到的數據;2、采用通用的解析數據方法以及報文數據的解析參數列表,避免了協議的版本不統一的問題;3、報文數據的解析參數列表中的信息可以表示出數據域的所有情況,包括加減乘除等操作;4、當對報文數據進行增加、修改、刪除時,只需要修改解析參數列表中的信息即可。
[0014]本發明附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
【附圖說明】
[0015]本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
[0016]圖1是本發明一個實施例的報文解析方法的流程圖;
[0017]圖2是本發明一個報文ID的配置文件的示意圖;
[0018]圖3是本發明一個具體實施例的報文解析方法的流程圖;以及
[0019]圖4是本發明一個實施例的報文解析裝置的結構示意圖。
【具體實施方式】
[0020]下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發明,而不能理解為對本發明的限制。
[0021]此外,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特征的數量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括一個或者更多個該特征。在本發明的描述中,“多個”的含義是兩個或兩個以上,除非另有明確具體的限定。
[0022]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現特定邏輯功能或過程的步驟的可執行指令的代碼的模塊、片段或部分,并且本發明的優選實施方式的范圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本發明的實施例所屬技術領域的技術人員所理解。
[0023]圖1是本發明一個實施例的報文解析方法的流程圖。
[0024]如圖1所示,報文解析方法包括:
[0025]SlOl,獲取報文數據和報文ID,并獲取報文ID中待解析的Key列表。
[0026]具體地,在利用藍牙、CAN(Controller Area Network,控制器局域網絡)等通信方式獲取到一個報文數據時,會將報文數據解析成具體的數據,將解析后得到的具體數據用來顯示,或者使用該具體數據對設備進行控制。其中,報文ID是報文數據的標識,用于標識報文數據的唯一性,報文ID可以是系統中默認的,也可以是用戶自己定義的。在接收到一個報文數據之后,可獲取該報文數據中存儲的對應的報文ID。
[0027]具體而言,在需要某個報文ID所對應的某些或者全部參數信息時,可以傳入原始的報文,獲取原始的報文中的報文數據并獲取報文數據中包含的報文ID,并且在傳入原始的報文的同時傳入待解析的Key列表。
[0028]應當理解的是,接收到的需要從報文數據中解析的參數列表不僅可以使用Key的形式,還可以使用其他任何形式實現,只要根據報文ID可以查找到唯一與之對應的解析參數即可。例如,可以用數組的順序來替代待解析的Key列表,同樣可以實現該效果。
[0029]S102,讀取報文ID的解析配置信息,并根據待解析的Key列表獲待解析的Key列表對應的解析參數。
[0030]具體地,可預先編寫多個報文ID,將其存儲在配置文件中。也就是說,可定義一種報文ID的結構,使其使用于報文ID對應數據域的解析。例如,如圖2所示,可用報文ID作為標識,對該報文數據的數據域進行定義,定義出該報文的數據域中包含了多少個具體的數據,并定義出每個數據對應的Key,以及定義出每個Key的值解析時所需要的解析參數。其中,解析參數包括解析的起始位置、解析的結束位置、解析的類型、偏移量、乘數、返回值類型以及解析結果。解析的起始位置還包括從第幾個數據開始解