System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及數據通信,特別是涉及一種數據解析方法、裝置、介質及車輛。
技術介紹
1、隨著汽車電子技術的發展,控制器局域網絡(controller?area?network,?can)協議廣泛應用于汽車內的各類控制器之間的數據傳輸。然而,傳統的can協議在數據傳輸速率和數據負載上存在局限性,難以滿足現代汽車電子系統的高效數據傳輸需求。為此,canfd(can?with?flexible?data-rate,可變速率的can)協議應運而生,提供了更高的數據傳輸速率和更大的數據幀大小。
2、然而,在實際應用中,由于canfd協議的數據格式和傳輸機制比傳統can更為復雜,協議數據解析的難度也越來越高。因此,如何高效、準確地對canfd協議數據進行解析,成為了一個亟待解決的問題。
技術實現思路
1、本申請提供一種數據解析方法、裝置、介質及車輛,通過優化數據解析流程,提高數據解析的效率。
2、本申請實施例第一方面提供一種數據解析方法,上述方法包括:
3、針對數據狀態為接收狀態的待解析報文,確定所述待解析報文中時間戳的終止位置;
4、檢測所述待解析報文中是否存在報文名稱,得到第一檢測結果;所述第一檢測結果用于表征所述待解析報文中存在報文名稱,或者所述待解析報文中不存在報文名稱;
5、基于所述時間戳的終止位置、所述數據狀態、所述待解析報文的id和所述第一檢測結果,確定所述待解析報文中的數據長度碼的位置,并讀取所述數據長度碼;
6
7、可選地,基于所述時間戳的終止位置、所述數據狀態、所述待解析報文的id和所述第一檢測結果,確定所述待解析報文中的數據長度碼的位置,包括:
8、在所述第一檢測結果表征所述待解析報文中存在報文名稱的情況下,基于所述時間戳的終止位置、所述待解析報文所屬網絡協議類型的長度、所述數據狀態的長度、所述id的長度、所述報文名稱的長度以及第一固定長度,確定所述數據長度碼的位置;
9、在所述第一檢測結果表征所述待解析報文中不存在報文名稱的情況下,基于所述時間戳的終止位置、所述待解析報文所屬網絡協議類型的長度、所述數據狀態的長度、所述id的長度以及第二固定長度,確定所述數據長度碼的位置。
10、可選地,所述方法還包括:
11、將所述待解析報文中所有的空格替換成目標字符,得到標準報文;
12、在所述標準報文滿足第一預設格式的情況下,確定所述待解析報文的數據狀態為接收狀態;其中,所述第一預設格式包括所述目標字符和表示所述接收狀態的第一標識符。
13、可選地,確定所述待解析報文中時間戳的終止位置,包括:
14、在所述標準報文滿足第二預設格式的情況下,基于所述第二預設格式中的第一個所述目標字符的位置,確定所述待解析報文中時間戳的終止位置;其中,所述第二預設格式包括所述目標字符以及所述時間戳的相鄰標識符。
15、可選地,所述方法還包括:
16、在所述標準報文滿足第三預設格式的情況下,確定所述待解析報文中存在報文名稱,并確定所述報文名稱的長度;其中,所述第三預設格式包括所述目標字符和表示所述報文名稱的第二標識符。
17、可選地,基于所述數據長度碼的位置和所述數據長度碼,讀取所述待解析報文中的目標數據,包括:
18、基于所述數據長度碼,確定所述數據長度碼和所述目標數據之間的間隔長度;
19、基于所述數據長度碼的位置和所述間隔長度,確定所述目標數據的起始位置;
20、基于所述目標數據的起始位置和所述數據長度碼,讀取所述目標數據。
21、可選地,所述方法還包括:
22、將所述目標數據進行格式轉換,得到標準數據;
23、基于所述標準數據和所述目標數據的描述信息,生成所述待解析報文的解析結果;所述描述信息包括所述待解析報文的時間戳、數據狀態、id、報文名稱和數據長度碼中的一種或多種;
24、輸出所述解析結果。
25、基于相同專利技術構思,本申請實施例第二方面提供一種數據解析裝置,上述裝置包括:
26、時間解析模塊,用于針對數據狀態為接收狀態的待解析報文,確定所述待解析報文中時間戳的終止位置;
27、報文名稱解析模塊,用于檢測所述待解析報文中是否存在報文名稱,得到第一檢測結果;所述第一檢測結果用于表征所述待解析報文中存在報文名稱,或者所述待解析報文中不存在報文名稱;
28、數據長度碼解析模塊,用于基于所述時間戳的終止位置、所述數據狀態、所述待解析報文的id和所述第一檢測結果,確定所述待解析報文中的數據長度碼的位置,并讀取所述數據長度碼;
29、目標數據解析模塊,用于基于所述數據長度碼的位置和所述數據長度碼,讀取所述待解析報文中的目標數據。
30、基于相同專利技術構思,本申請實施例第三方面提供一種存儲介質,所述存儲介質內存儲有機器可執行指令,所述機器可執行指令被處理器執行時實現如本申請第一方面提出的數據解析方法。
31、基于相同專利技術構思,本申請實施例第四方面提供一種車輛,包括處理器和存儲器;所述存儲器存儲有能夠被所述處理器執行的機器可執行指令,所述處理器用于執行機器可執行指令,以實現如本申請第一方面提出的數據解析方法。
32、與現有技術相比,本申請包括以下優點:
33、本申請實施例提供的一種數據解析方法,針對數據狀態為接收狀態的待解析報文,確定待解析報文中時間戳的終止位置;檢測待解析報文中是否存在報文名稱,得到第一檢測結果;第一檢測結果用于表征待解析報文中存在報文名稱,或者待解析報文中不存在報文名稱;基于時間戳的終止位置、數據狀態、待解析報文的id和第一檢測結果,確定待解析報文中的數據長度碼的位置,并讀取數據長度碼;基于數據長度碼的位置和數據長度碼,讀取待解析報文中的目標數據。從而,針對數據狀態為接收狀態的待解析報文,通過檢測待解析報文中是否存在報文名稱,適應性地確定數據長度碼的位置,進而準確地讀取到目標數據,避免出現現有技術中通過固定的方式來確定數據長度碼的位置,導致目標數據讀取出錯的問題,以提高數據解析的效率和準確性。
本文檔來自技高網...【技術保護點】
1.一種數據解析方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,基于所述時間戳的終止位置、所述數據狀態、所述待解析報文的ID和所述第一檢測結果,確定所述待解析報文中的數據長度碼的位置,包括:
3.根據權利要求2所述的方法,其特征在于,所述方法還包括:
4.根據權利要求3所述的方法,其特征在于,確定所述待解析報文中時間戳的終止位置,包括:
5.根據權利要求3所述的方法,其特征在于,所述方法還包括:
6.根據權利要求1所述的方法,其特征在于,基于所述數據長度碼的位置和所述數據長度碼,讀取所述待解析報文中的目標數據,包括:
7.根據權利要求1所述的方法,其特征在于,所述方法還包括:
8.一種數據解析裝置,其特征在于,所述裝置包括:
9.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該計算機程序被處理器執行時,實現如權利要求1至7任一項所述的數據解析方法。
10.一種車輛,其特征在于,包括處理器和存儲器;所述存儲器存儲有能夠被所述處理器執行的
...【技術特征摘要】
1.一種數據解析方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,基于所述時間戳的終止位置、所述數據狀態、所述待解析報文的id和所述第一檢測結果,確定所述待解析報文中的數據長度碼的位置,包括:
3.根據權利要求2所述的方法,其特征在于,所述方法還包括:
4.根據權利要求3所述的方法,其特征在于,確定所述待解析報文中時間戳的終止位置,包括:
5.根據權利要求3所述的方法,其特征在于,所述方法還包括:
6.根據權利要求1所述的方法,其特征在于,基于所述數據長度...
【專利技術屬性】
技術研發人員:司遠,
申請(專利權)人:長城汽車股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。