System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及dbc差異檢測,尤其涉及一種dbc文件的差異比較方法、裝置、電子設備及存儲介質。
技術介紹
1、在現代汽車電子系統中,車輛控制單元之間的通信通常采用控制器局域網(controller?area?network,can)總線協議。控制器局域網數據庫(data?base?can,dbc)文件是描述can總線通信協議的文件,定義了信號、消息及其相關的屬性參數。隨著軟件版本的更新會產生不同版本的dbc文件。這些dbc文件之間的差異是生成集成的軟件模型接口的關鍵信息。因此,快速而準確地生成dbc文件的差異摘要對于軟件模型接口、軟件集成至關重要,也為集成自動化提供關鍵依據。但一般需要借助外部的比較工具來處理dbc文件的差異。
2、目前,常用文件比較工具、差異比較工具和手動檢查確定dbc文件的差異。其中,文件比較工具包括beyond?compare,支持文本文件的逐行比較,能夠高亮顯示不同之處,可以對比包括dbc文件在內的各種文件格式;但由于dbc文件的復雜性和特定結構,beyondcompare只能進行表面的文本比較,無法深入理解dbc文件的語義層次,無法有效識別和處理信號級別和/或消息級別的變化,更沒辦法生成差異摘要,并且beyond?compare是收費軟件。差異比較工具包括diff工具,可以對比文本文件的差異,以命令行或圖形界面形式提供,能夠快速識別兩個文本文件中的不同之處;但與beyond?compare類似,差異比較工具只能進行字面上的文本比較,無法解析dbc文件的結構和語義,容易漏掉潛在的重要變化,或者提供
技術實現思路
1、本申請提供一種dbc文件的差異比較方法、裝置、電子設備及存儲介質,以解決上述無法基于待比較dbc文件的語義快速進行差異比較的技術問題。
2、于本申請一實施例中,本申請提供一種dbc文件的差異比較方法,包括獲取不同版本的待比較dbc文件;根據所述待比較dbc文件的多個關鍵字進行分塊讀取數據,得到各自的待比較對象;創建所述待比較對象的消息索引和信號索引;基于預設差異類型、各所述消息索引和各所述信號索引分類比較所述待比較對象的差異,得到版本差異信息,所述預設差異類型用于表征所述待比較dbc文件中消息層級和信號層級對應的差異。
3、于本申請一實施例中,所述待比較對象包括所述消息標識、所述消息對象、所述信號名稱和所述信號對象,創建所述待比較對象的消息索引和信號索引,包括:將所述消息標識作為消息索引的索引標識,并將所述消息對象作為消息索引的索引值,所述消息對象用于表征消息屬性值,所述消息標識用于對消息進行唯一身份標識;將所述消息標識作為信號索引的索引標識,并將二級索引作為信號索引的索引值,所述二級索引的索引標識為所述信號名稱,所述二級索引的索引值為所述信號對象,所述信號對象用于表征信號屬性值。
4、于本申請一實施例中,根據所述待比較dbc文件的多個關鍵字進行分塊讀取數據,得到待比較對象,包括:根據多個關鍵字按塊分割所述待比較dbc文件,并存入至緩存區;基于所述關鍵字的數量創建多個轉換協程和多個通道;通過每一轉換協程將所述緩存區中對應關鍵字后的屬性值數據進行結構化轉換和合法性校驗,并將通過合法性校驗的結構化數據發送至對應的通道或基于未通過合法性校驗的結構化數據生成錯誤提示信息,所述結構化數據用于表征結構化轉換后的屬性值數據,所述屬性值數據用于表征消息和信號對應的屬性值;若未生成錯誤提示信息,則依次匯總各所述通道接收到的結構化數據,得到待比較對象。
5、于本申請一實施例中,基于預設差異類型、各所述消息索引和各所述信號索引分類比較所述待比較對象的差異,得到版本差異信息,包括:創建共享數據結構;基于預設差異類型創建多個比較協程;通過每一比較協程基于各所述消息索引、各所述信號索引比較所述待比較對象對應預設差異類型的差異,得到版本差異信息,并存入所述共享數據結構;其中,所述共享數據結構用于各所述比較協程同時存儲對應預設差異類型比較出的差異數據。
6、于本申請一實施例中,基于各所述消息索引、各所述信號索引比較所述待比較對象對應預設差異類型的差異,得到版本差異信息,包括:若所述預設差異類型為新增差異或刪除差異,則計算不同版本的待比較數據集合對應預設差異類型的差集,得到新增信息或刪除信息;若所述預設差異類型為信號的修改,則根據不同版本的信號組合標識集合比較信號的關鍵屬性,得到信號修改信息;其中,所述待比較數據集合包括消息標識集合或信號組合標識集合,所述消息標識集合基于所述消息索引得到,所述信號組合標識集合基于所述信號索引對消息標識和信號名稱進行組合得到,所述版本差異信息包括所述新增信息、所述刪除信息和所述信號修改信息。
7、于本申請一實施例中,若所述預設差異類型為新增差異或刪除差異,則計算不同版本的待比較數據集合對應預設差異類型的差集,得到新增信息或刪除信息,包括:若所述新增差異為消息的新增,則計算當前消息標識集合和歷史消息標識集合的差集,得到新增消息標識;若所述刪除差異為消息的刪除,則計算歷史消息標識集合和當前消息標識集合的差集,得到刪除消息標識;若所述新增差異為信號的新增,則計算當前信號組合標識集合和歷史信號組合標識集合的差集,得到新增信號組合標識;若所述新增差異為信號的刪除,則計算歷史信號組合標識集合和當前信號組合標識集合的差集,得到刪除信號組合標識;其中,所述新增信息包括所述新增消息標識和所述新增信號組合標識,所述刪除信息包括所述刪除消息標識和所述刪除信號組合標識,所述不同版本的待比較數據集合包括所述當前消息標識集合、所述歷史消息標識集合、所述當前信號組合標識集合和所述歷史信號組合標識集合。
8、于本申請一實施例中,根據不同版本的信號組合標識集合比較信號的關鍵屬性,得到信號修改信息,包括:若一當前信號組合標識和一歷史信號組合標識相同,則比較當前關鍵屬性和歷史關鍵屬性,得到所述當前信號組合標識的信號修改信息;其中,所述當前關鍵屬性基于所述當前信號組合標識對應的信號索引得到,所述歷史關鍵屬性基于所述歷史信號組合標識對應的信號索引得到。
9、于本申請一實施例中,本申請提供一種dbc文件的差異比較裝置,包括:文件獲取模塊,用于獲取不同版本的待比較dbc文件;數據讀取模塊,用于根據所述待比較dbc文件的多個關鍵字進行分塊讀取數據,得到各自的待比較對象;數據分類模塊,用于創建所述待比較對象的消息索引和信號索引;差異比較模塊,用于基于預設差異類型、各所述消息索引和各所述信號索引分類比較所述待比較對象的差異,得到版本差異信息,所述預設差異類型用于表征所述待比較dbc文件中消息層級和信號層級對應的差異。
10、于本申請一實施例中,本申請提供一種本文檔來自技高網...
【技術保護點】
1.一種DBC文件的差異比較方法,其特征在于,所述方法包括:
2.根據權利要求1所述的DBC文件的差異比較方法,其特征在于,所述待比較對象包括所述消息標識、所述消息對象、所述信號名稱和所述信號對象,創建所述待比較對象的消息索引和信號索引,包括:
3.根據權利要求1所述的DBC文件的差異比較方法,其特征在于,根據所述待比較DBC文件的多個關鍵字進行分塊讀取數據,得到待比較對象,包括:
4.根據權利要求1-3任一項所述的DBC文件的差異比較方法,其特征在于,基于預設差異類型、各所述消息索引和各所述信號索引分類比較所述待比較對象的差異,得到版本差異信息,包括:
5.根據權利要求4所述的DBC文件的差異比較方法,其特征在于,基于各所述消息索引、各所述信號索引比較所述待比較對象對應預設差異類型的差異,得到版本差異信息,包括:
6.根據權利要求5所述的DBC文件的差異比較方法,其特征在于,若所述預設差異類型為新增差異或刪除差異,則計算不同版本的待比較數據集合對應預設差異類型的差集,得到新增信息或刪除信息,包括:
7.根據
8.一種DBC文件的差異比較裝置,其特征在于,所述裝置包括:
9.一種電子設備,其特征在于,所述電子設備包括:
10.一種計算機可讀存儲介質,其特征在于,其上存儲有計算機程序,當所述計算機程序被計算機的處理器執行時,使計算機執行權利要求1至7中任一項所述的DBC文件的差異比較方法。
...【技術特征摘要】
1.一種dbc文件的差異比較方法,其特征在于,所述方法包括:
2.根據權利要求1所述的dbc文件的差異比較方法,其特征在于,所述待比較對象包括所述消息標識、所述消息對象、所述信號名稱和所述信號對象,創建所述待比較對象的消息索引和信號索引,包括:
3.根據權利要求1所述的dbc文件的差異比較方法,其特征在于,根據所述待比較dbc文件的多個關鍵字進行分塊讀取數據,得到待比較對象,包括:
4.根據權利要求1-3任一項所述的dbc文件的差異比較方法,其特征在于,基于預設差異類型、各所述消息索引和各所述信號索引分類比較所述待比較對象的差異,得到版本差異信息,包括:
5.根據權利要求4所述的dbc文件的差異比較方法,其特征在于,基于各所述消息索引、各所述信號索引比較所述待比較對...
【專利技術屬性】
技術研發人員:張強,李鋼,王富民,牛賢蒙,韓益江,
申請(專利權)人:重慶賽力斯鳳凰智創科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。