我們先回顧一下之前l(fā)og文件的處理方法,相信大家都會注意到,離線回放和csv文件的生成這兩個動作彼此是相互獨立的,也就是說離線回放的時候不能運行小程序,而小程序離線處理log文件的時候又無法在圖形窗口進行繪圖。而今天要介紹的就是TSMaster新增的后處理功能。
它使得小程序可以在回放的全程實時起作用,不但能使用用戶自己的邏輯來處理每一幀報文,還能夠在需要的時候向任意的圖形界面繪制曲線。
增加后處理算法
Add a post-processing algorithm /
> 我們切換到總線回放頁面,可以看到在文件的列表下方增加了一個回放的后處理函數(shù)表,在表中點右鍵,選擇第一個選項,選擇后處理函數(shù),點擊后,TSMaster就會在當前的工程自動安裝后處理函數(shù)的示例程序,并且彈出一個函數(shù)選擇框。
> 默認有三個函數(shù),針對的都是0x50這個ID,那么第一個是統(tǒng)計幀的總數(shù);第二個是統(tǒng)計幀與幀之間的最大最小間隔;第三個是從大的logo file里面過濾出0x50這個ID的報文,并且將這個報文另存成一份blf文件,從而起到數(shù)據(jù)篩選的作用。
> 我們將這3個函數(shù)逐一添加到我們的后處理列表中,添加后就可以看到列表里面有這3個函數(shù)。如果此時開始回放,就意味著每一幀報文都會按順序觸發(fā)這3個函數(shù)的執(zhí)行。我們看一下剛才的回放記錄,確實里面并沒有0x50,而是只有0x64和0xC945,那么這就需要改寫一下當前的函數(shù)庫。將0x50這個ID替換成0x64,可以點中任何一個函數(shù)點右鍵,選擇編輯按鈕,這樣就打開了這個函數(shù)的實現(xiàn)。
> 我們找到底下這個函數(shù),一共有三個函數(shù),并且把0x50的地方都用0x64進行替換,修改后直接按ctrl加F9,重新編譯一下小程序算法庫,那么就相當于算法已經(jīng)在系統(tǒng)中更新過。接下來我們只要雙擊這個文件名進行回放,或者點擊回放按鈕都可以進行回放,那么回放結束之后就可以看到第一個函數(shù)統(tǒng)計出了幀的總數(shù)為327幀,以及0x64的這個報文。那么第二個函數(shù)統(tǒng)計出了0x64這個報文,幀與幀之間的最大和最小的周期。第三個函數(shù)是個轉存后的blf文件的輸出,它僅僅含有0x64這個ID。
> 我們可以打開工程目錄,就可以看到這個文件。打開記錄文件的轉換器,將這個文件拖入之后點擊convert進行轉換,就得到一個轉換后的asc文件。打開之后就可以看到這個文件里面就全是0x64這個ID的報文。說明我們的過濾是生效的。這樣就可以把一個很大的log文件進行有效的提取。提取出我們所需要的ID再進行二次的處理。
監(jiān)控回放信號
Monitoring playback signal /
倘若我們需要對回放過程中的信號進行監(jiān)控,比如說需要在曲線中繪制兩個信號的乘積,該怎么做呢?
> 首先新建一個系統(tǒng)變量,起名為v,類型設成double,然后我們可以打開一個新的圖形窗口,拖入我們的這個變量,再拖入剛才trace里面的其他的信號,比如說我們就取gear和engpower這兩個信號,那么我們希望圖形窗口的這個v信號顯示的是gear和engpower的乘積。
> 我們回到離線回放的窗口,將之前的3個函數(shù)全部刪除,新建一個函數(shù)?,F(xiàn)在是可以從仿真的c代碼編輯器有一個postproc函數(shù),再找回我們剛才的3個函數(shù),點右鍵新增一個自定義函數(shù),起名為multiply。然后他的參數(shù)可以從前面的任何一個函數(shù)里面copy,因為只有這樣的參數(shù)才能夠被系統(tǒng)自動識別,被識別成后處理的函數(shù)參數(shù)。
> 函數(shù)體也可以通過其他的函數(shù)來復制,比如說我們就選取這個frame_count復制到這里來,然后我們可以進行一般修改,可以看到這個函數(shù)有3個狀態(tài)。分別是回放的起始、回放過程以及回放的終止。
> 我們只需要在回放過程里面對信號進行處理,那么我們操作的報文是這個EngineData,點右鍵插入到腳本中,然后可以刪掉沒用的行,保留這個EngineData_1。那么將參數(shù)ACANFD復制到這個報文變量中,我們就得到了這個報文,包含信號的報文的內容。
> 然后我們只需要寫下一行代碼app.set系統(tǒng)變量,變量名稱就是我們剛才的新建的變量,那么它的值就是gear和engpower的乘積,也就是這個.gear乘上engpower,這樣就寫好了我們的后處理程序。
> 然后按ctrl加F9進行編譯,最后關閉這個小程序,注意不是刪除,關閉就是讓他不可見,隨后我們回到總線回放的窗口,點擊右鍵,選擇我們剛才新加的這個函數(shù)multiply,選擇之后可以看到后處理函數(shù)表就是一個函數(shù)。
> 然后我們雙擊進行回放,回放之后幾乎是一瞬間,我們就得到了兩個信號的乘積曲線,我們可以通過Y軸的顯示模式看的更清晰一點,就是上面這個紅色的v信號。它們是由下方的這個綠色的信號以及藍色的信號的乘積得到的,那么通過這個后處理功能我們就可以實現(xiàn)幾乎任何可能的后處理的任務。
以上就是我們本章節(jié)為大家演示的TSMaster的回放后處理功能,讓我么一起期待TSMaster更多的新功能。(其他關于TSMaster新功能教程視頻可以到B站進行觀看哦?。?/strong>
-
后處理系統(tǒng)
+關注
關注
0文章
11瀏覽量
2933
發(fā)布評論請先 登錄
相關推薦
評論