我们先回顾一下之前log文件的处理方法,相信大家都会注意到,离线回放和csv文件的生成这两个动作彼此是相互独立的,也就是说离线回放的时候不能运行小程序,而小程序离线处理log文件的时候又无法在图形窗口进行绘图。而今天要介绍的就是TSMaster新增的后处理功能。
它使得小程序可以在回放的全程实时起作用,不但能使用用户自己的逻辑来处理每一帧报文,还能够在需要的时候向任意的图形界面绘制曲线。
增加后处理算法
Add a post-processing algorithm /
> 我们切换到总线回放页面,可以看到在文件的列表下方增加了一个回放的后处理函数表,在表中点右键,选择第一个选项,选择后处理函数,点击后,TSMaster就会在当前的工程自动安装后处理函数的示例程序,并且弹出一个函数选择框。
> 默认有三个函数,针对的都是0x50这个ID,那么第一个是统计帧的总数;第二个是统计帧与帧之间的最大最小间隔;第三个是从大的logo file里面过滤出0x50这个ID的报文,并且将这个报文另存成一份blf文件,从而起到数据筛选的作用。
> 我们将这3个函数逐一添加到我们的后处理列表中,添加后就可以看到列表里面有这3个函数。如果此时开始回放,就意味着每一帧报文都会按顺序触发这3个函数的执行。我们看一下刚才的回放记录,确实里面并没有0x50,而是只有0x64和0xC945,那么这就需要改写一下当前的函数库。将0x50这个ID替换成0x64,可以点中任何一个函数点右键,选择编辑按钮,这样就打开了这个函数的实现。
> 我们找到底下这个函数,一共有三个函数,并且把0x50的地方都用0x64进行替换,修改后直接按ctrl加F9,重新编译一下小程序算法库,那么就相当于算法已经在系统中更新过。接下来我们只要双击这个文件名进行回放,或者点击回放按钮都可以进行回放,那么回放结束之后就可以看到第一个函数统计出了帧的总数为327帧,以及0x64的这个报文。那么第二个函数统计出了0x64这个报文,帧与帧之间的最大和最小的周期。第三个函数是个转存后的blf文件的输出,它仅仅含有0x64这个ID。
> 我们可以打开工程目录,就可以看到这个文件。打开记录文件的转换器,将这个文件拖入之后点击convert进行转换,就得到一个转换后的asc文件。打开之后就可以看到这个文件里面就全是0x64这个ID的报文。说明我们的过滤是生效的。这样就可以把一个很大的log文件进行有效的提取。提取出我们所需要的ID再进行二次的处理。
监控回放信号
Monitoring playback signal /
倘若我们需要对回放过程中的信号进行监控,比如说需要在曲线中绘制两个信号的乘积,该怎么做呢?
> 首先新建一个系统变量,起名为v,类型设成double,然后我们可以打开一个新的图形窗口,拖入我们的这个变量,再拖入刚才trace里面的其他的信号,比如说我们就取gear和engpower这两个信号,那么我们希望图形窗口的这个v信号显示的是gear和engpower的乘积。
> 我们回到离线回放的窗口,将之前的3个函数全部删除,新建一个函数。现在是可以从仿真的c代码编辑器有一个postproc函数,再找回我们刚才的3个函数,点右键新增一个自定义函数,起名为multiply。然后他的参数可以从前面的任何一个函数里面copy,因为只有这样的参数才能够被系统自动识别,被识别成后处理的函数参数。
> 函数体也可以通过其他的函数来复制,比如说我们就选取这个frame_count复制到这里来,然后我们可以进行一般修改,可以看到这个函数有3个状态。分别是回放的起始、回放过程以及回放的终止。
> 我们只需要在回放过程里面对信号进行处理,那么我们操作的报文是这个EngineData,点右键插入到脚本中,然后可以删掉没用的行,保留这个EngineData_1。那么将参数ACANFD复制到这个报文变量中,我们就得到了这个报文,包含信号的报文的内容。
> 然后我们只需要写下一行代码app.set系统变量,变量名称就是我们刚才的新建的变量,那么它的值就是gear和engpower的乘积,也就是这个.gear乘上engpower,这样就写好了我们的后处理程序。
> 然后按ctrl加F9进行编译,最后关闭这个小程序,注意不是删除,关闭就是让他不可见,随后我们回到总线回放的窗口,点击右键,选择我们刚才新加的这个函数multiply,选择之后可以看到后处理函数表就是一个函数。
> 然后我们双击进行回放,回放之后几乎是一瞬间,我们就得到了两个信号的乘积曲线,我们可以通过Y轴的显示模式看的更清晰一点,就是上面这个红色的v信号。它们是由下方的这个绿色的信号以及蓝色的信号的乘积得到的,那么通过这个后处理功能我们就可以实现几乎任何可能的后处理的任务。
以上就是我们本章节为大家演示的TSMaster的回放后处理功能,让我么一起期待TSMaster更多的新功能。(其他关于TSMaster新功能教程视频可以到B站进行观看哦!)
全部0条评论
快来发表一下你的评论吧 !