[發明專利]報文解析方法、裝置、計算機設備和存儲介質有效
| 申請號: | 201811260221.7 | 申請日: | 2018-10-26 |
| 公開(公告)號: | CN111107042B | 公開(公告)日: | 2021-03-09 |
| 發明(設計)人: | 習成;黃樹程;李璐;冉光偉 | 申請(專利權)人: | 廣州汽車集團股份有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 廣州華進聯合專利商標代理有限公司 44224 | 代理人: | 周清華 |
| 地址: | 510030 廣東省廣州市越*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 報文 解析 方法 裝置 計算機 設備 存儲 介質 | ||
本申請涉及一種報文解析方法、裝置、計算機設備和存儲介質,計算機設備根據當前報文的屬性特征,獲取當前報文的鍵,并根據鍵和當前報文的身份標識的低N位,生成所述當前報文的散列值,然后根據當前報文的散列值查詢散列表,在散列表中獲取當前報文的定義值,最后根據所述當前報文的定義值解析所述當前報文。由于本實施例中的散列值采用的是報文ID的固定位數,例如CAN報文ID的低8位,使得在散列表所占用的內存空間和查表效率之間可以取得一個比較好的平衡,在報文數量比較多的時候,縮短查找的時間,從而以較小的內存開銷獲取較高的查表效率。
技術領域
本申請涉及報文解析技術領域,特別是涉及一種報文解析方法、裝置、計算機設備和存儲介質。
背景技術
控制器局域網絡(Controller Area Network,簡稱CAN)總線以報文為單位進行數據傳送,在CAN總線報文進行分析的時候,通常需要將其數據段解析成信號,然后對信號進行分析。
報文解析一般先根據數據庫文件中每條報文的定義生成用于查找報文定義的表,然后根據報文特性生成用于查表的鍵,再根據鍵查找表中的值,最后根據查到的值對報文進行解析。其中,目前的查找方法是以CAN報文ID作為鍵進行順序查找,每查找一條報文需要查找長度平均為(n+1)/2,其中n為數據庫中有定義的報文條數。
上述的查找方法報文數量比較多的時候,需要查找的時間較長,導致查表效率較低。
發明內容
基于此,有必要針對上述查找方法報文數量比較多的時候,需要查找的時間較長,導致查表效率較低的技術問題,提供報文解析方法、裝置、計算機設備和存儲介質。
第一方面,本發明的實施例提供一種報文解析方法,所述方法包括:
根據當前報文的屬性特征,獲取當前報文的鍵;
根據所述鍵和所述當前報文的身份標識的低N位,生成所述當前報文的散列值;
根據所述當前報文的散列值查詢散列表,獲取所述當前報文的定義值;所述散列表用于表示各報文的散列值與定義值之間的對應關系;
根據所述當前報文的定義值解析所述當前報文。
在其中一個實施例中,所述根據所述當前報文的散列值查詢散列表,獲取所述當前報文的定義值,包括:
根據所述當前報文的散列值查詢散列表,確定所述散列值對應的鍵值數量;
根據所述鍵值數量和預設的第一索引值,確定所述當前報文的定義值。
在其中一個實施例中,所述根據所述鍵值數量和預設的第一索引值,確定所述當前報文的定義值,包括:
若所述第一索引值小于所述鍵值數量,則判斷所述第一索引值對應的鍵與所述當前報文的鍵是否相同,得到判斷結果;
根據所述判斷結果確定所述當前報文的定義值。
在其中一個實施例中,所述根據所述判斷結果確定所述當前報文的定義值,包括:
若所述判斷結果為所述第一索引值對應的鍵與所述當前報文的鍵相同,則確定所述第一索引值對應的鍵指向的值為所述當前報文的定義值;
若所述判斷結果為所述第一索引值對應的鍵與所述當前報文的鍵不相同,則將所述第一索引值加1,得到第二索引值,并根據所述鍵值數量和所述第二索引值,確定所述當前報文的定義值。
在其中一個實施例中,所述方法還包括:
從數據庫文件中獲取所有報文的信息;所述報文的信息包括報文的屬性特征和報文的解析信息;
根據各所述報文的屬性特征生成所述散列表的鍵;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州汽車集團股份有限公司,未經廣州汽車集團股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811260221.7/2.html,轉載請聲明來源鉆瓜專利網。





