ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

新功能发布 | TSMaster全新升级!后处理功能如此强大!

新功能发布 | TSMaster全新升级!后处理功能如此强大! 前言我们先回顾一下之前log文件的处理方法相信大家都会注意到离线回放和csv文件的生成这两个动作彼此是相互独立的也就是说离线回放的时候不能运行小程序而小程序离线处理log文件的时候又无法在图形窗口进行绘图。而今天要介绍的就是TSMaster新增的后处理功能。它使得小程序可以在回放的全程实时起作用不但能使用用户自己的逻辑来处理每一帧报文还能够在需要的时候向任意的图形界面绘制曲线。一、增加后处理算法 我们切换到总线回放页面可以看到在文件的列表下方增加了一个回放的后处理函数表在表中点右键选择第一个选项选择后处理函数点击后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再进行二次的处理。二、监控回放信号倘若我们需要对回放过程中的信号进行监控比如说需要在曲线中绘制两个信号的乘积该怎么做呢 首先新建一个系统变量起名为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更多的新功能。
返回列表