TSMaster快速入门篇(2)-报文回放
支持格式
TSMaster 的数据回放默认支持 blf 格式(未来会增加对其他格式的支持)。如果需要分析其他数据格式的 log 文件,需要通过文件转换器从其他格式转成 blf 格式。
一、离线回放
离线回放也就是通常所说的查看记录报文。离线回放完全模拟接收报文的过程,用户可以到 Trace 窗口中直接查看报文记录。同样的,Trace 窗口的所有属性,比如过滤等都是有效的。
1. 离线回放基本步骤
选择总线回放→选择离线回放→选择回放文件→选择回放的时间范围→点击启动回放
2. 添加回放文件
1)从回放窗口添加
2)直接拖拽添加
在桌面上选择一个 Log 文件,拖拽进入 TSMaster 软件区域,放掉鼠标,TSMaster 即自动回放该报文,同时把该报文添加到报文回放管理窗口中。
3. 选择报文范围
因为 Trace 窗口一个屏幕最多一次呈现 9999 帧报文,因此,在分析记录文件的时候,需要合理选择报文范围。在新的版本中,将在报文回放模块中增加脚本模块,给报文回放分析提供更大的灵活性。
二、在线回放
1. 在线回放配置
在线回放又被通俗的称为“数据回灌总线”,为了给用户提供尽可能大的灵活性,提供了如下的配置界面:
如上配置界面,主要包含如下的配置参数:
1)是否自动启动在线回放
AutoStart:在设备连接之后就自动启动报文的回放。
Do not auto start:在设备连接之后并不立即启动报文回放,而由用户进入回放界面中自己启动。
2)输出次数选择
Output only once:只回放一次即可
Repetitive output mode: 循环回放报文记录
3)输出模式选择
Default:TimeStamp As Log File:基于 Log 文件中的时间戳进行报文回放。
Step: Pause after one message is sent:需要用户点击,一次只发送 Log 文件中的一帧报文。
Animated:Apply delay after one message is sent:不急于 Log 本身的时间戳,而是用户设置一个报文事件间隔,按照这个时间间隔进行报文的回放。如下所示:
就表示报文之间按照 10ms 的时间间隔进行回放。
4)启动时间模式选择
Immediately:Direct send the first message:用户选择回放报文过后,立即就开始回放报文。
As Log File: Send the first message on its timestamp: 根基 Log 文件的时间戳来确定从什么时间开始播放报文。比如如果 Log 文件中第一帧报文的时间戳是 15s,则连接设备过后,等到 15 过后才开始回放报文。
Delayed:send the first message after timeout:用户人为配置一个延迟时间。当连接设备过后,延迟设置的时间间隔后,开始回放报文。如下所示:
就表示用户启动报文播放过后,延迟 100ms 开始实际回放报文。
5)启动/暂停快捷键
让用户设置启动/暂停回放的快捷键,如上所示:用户按下键盘上的 S 键时,启动回放;用户按下键盘的 P 键时,暂停回放。
6)选择回放TX/RX报文
Send Tx messages: 回放中包含方向为发送的报文
Do not send Tx messages: 回访中不包含方向为发送的报文。
7)回放通道选择
为了给用户提供尽可能大灵活性,TSMaster 的回放模块提供了回放通道的映射。主要为了解决以下一些应用场景的问题:
1. 物理通道已经连接好,但是想灵活切换通道,如下图所示:
Log 报文中有通道 1 的数据,也有通道 2 的数据,最好理解的是通道 1 的数据在工具端对应的通道上播放。如果数据通道 2 的需要到 CAN 工具的通道 1 上面播放,数据通道 1需要到 CAN 工具的通道 2 上面播放,则需要用到映射,如下所示:
2. 实际通道数不够:在原始的 Log 报文中用到了 1,2,3,4,5 五个通道,但是目前手上只有 2 个通道,如下所示:
这种情况下,数据通道 3,4,5 的数据就没有通道播放了。如果基于通道映射的方式,用户可以选择数据通道到任意 CAN 工具的通道上播放,如下所示:
通道上述映射,就把数据通道 2,3,4 的数据映射到 CAN 工具的通道 2 上进行播放,把数据通道 1,5 的数据映射到 CAN 工具的通道 1 上进行播放。回放通道映射配置界面如下所示:
Source Channel:Log 文件中的数据通道。
Destination Channel:TSMaster 中 CAN 工具的数据通道。
如上所示的配置就表示:Log 文件中数据通道为 1 和 2 的数据在 CAN 工具的通道 1 中回放;数据通道为 3 的数据在 CAN 工具的通道 2 中回放。
三、应用案例介绍
1. 自动回放屏蔽报文
根据前面的介绍,自动回放报文提供了选择通道,选择回放 RX,TX 等机制。但是用户使用过程中,往往还需要选择性的回放一部分报文,或者选择性的屏蔽部分报文。因为回放报文数量可能会很多,因此,基于 ID 的回放过滤,目前没有做到在线回放模块里面。但是通过 TSMaster 的 C 脚本工具,用户一样可以基于 ID 屏蔽报文的在线回放的功能。
➢ 基本思路:
把需要屏蔽的 ID 的报文发送到虚拟通道上,这样这些报文就不会真实回放到物理通道上。
➢ 操作步骤详解:
1. 在 TSMaster 硬件配置中,增加一路通道,并选择该通道为虚拟通道,如下所示:
2. 新建脚本模块,取名为 OnlineRelayFilter。创建后脚本如下:
3. 新建 CAN 报文 PreTX 事件(该事件在报文发送到总线上之前被调用)。如果要屏蔽 ID = 0x1B00000E 的报文,则创建该报文的 PreTX 事件,如下所示:
4. 选中该事件,修改该报文数据的发送通道为通道编号 2(0,1,2),也就是通道 3
5. 点击运行脚本,如下:
6. 此时再点击在线回放,就可以看到 0x1B00000E 报文被发送到了虚拟通道 3,其他报文发送到物理通道 1 和 2,通过这种方式实现了对在线报文的过滤。依次类推,对需要过滤的报文通过在脚本中添加 Pre_TX 事件就可以达到想要的效果。
四、释疑
1. Blf 文件(文件名带空格)无法加载
当把 blf 加载到 TSMaster 回放(离线/在线)模块中,发生加载错误,系统消息如下所示:
原因:blf 文件名中间不能有空格。如上图所示,修改文件名称为 TSMaster.blf,则加载成功,如下所示:
2. 想按照采集的时间回放报文
如果想按照采集时间戳回放报文,请选择在线回放。离线回放主要用于查看报文,要求就是回放速度越快越好。如果想按照采集的时序回放报文,则直接采用在线回放的方式,具体的设置见在线回放章节。
3. 总线回放按钮为什么是灰色(不使能状态)
在总线连接工作状态,不能进行报文记录的回放。需要点击 Stop 按钮,停止工作状态,BusReplay 才能变成使能状态,允许用户添加回放的报文。
4. 为什么 TSMaster 连接设备后立即往总线发送报文?
TSMaster 提供了在线回放数据的功能,为了支持用户挂上总线就开始回放的需求,在回放设置中添加了一个连接总线过后自动回放的功能,如下图所示:
首先,通过如下步骤进入在线回放配置界面:
配置界面中,选择在启动设备瞬间是否自动启动报文回放,如下所示:
如果选择 do not auto start,则连接设备的时候不会自动播放报文。
5. 回放提示通道错误失败
在线回放中,报文播放了一段时间就提示播放失败,通道错误,错误情况如下所示:
触发原因:通道映射错误。
Log 报文中的数据通道没有正确的映射到 CAN 工具的通道上。比如上面报的错误,Log 文件中使用了数据通道 2,数据通道 2 映射到了 TSMaster 中的 CAN 工具的通道 2,但是实际上 TSMaster 中没有配置 CAN 通道 2,就造成发送失败。具体通道映射,见前序章节:在线回放配置->回放通道选择
解决办法:在进入在线回放配置界面,配置通道映射。如下所示:
如上所示,Desination Channel 中实际上不存在通道 2,因此,把 Source Channel =2 的通道也配置到 Destination Channel = 1 上。再次启动回放,不再出现此错误。
6. 在线回放直接错误帧
如果用户回放的时候,总线直接错误帧。很可能的情况是,在 Log 文件中,不同的数据通道中有同样 ID 的报文,结果播放的时候,这些报文在同一条 CAN 总线上面通过不同的通道播放出来,造成帧 ID 冲突,引起错误帧进而无法正常的回放数据。
7. 在线回放卡死
在线回放如果出现卡死情况,请检查是否使用了虚拟通道。有些电脑平台上虚拟通道支持有些问题,碰到这种情况,用户尽量避免使用虚拟通道。或者插上实物通道进行报文的在线回放。
8. 为什么出现回放数据跟三方工具对不上的情况
情况描述:
通过在线回放数据,监测信号值,发现总线报文上有信号值比如信号 A 值,跟第三方监测工具(如 OE)上解析的 A 值不一致。比如 TSMaster 上 A 值为 0.0,OE 上解析的 A 值为 0.3.
原因分析:
经过分析后,发现回放的 blf 文件中包含来自两个通道的数据(Channel1 和Channel2),两个 Channel 中有同样 ID 的报文(比如都包含信号 A 的报文),而且来自通道 2 中的报文值全部为 0,因此,回放的时候,从通道 2 中解析出来的信号 A 值就全部为0。造成用户错误的把通道 2 中的值跟第三方工具解析出来的值进行比较。
解决办法:
因为通道 2 中的信号值不是有效数据,回放过程中屏蔽掉通道 2 的回放即可。如下所示:
Tips:
用户如果分析数据信号如果发现疑问点,请注意报文的通道,时间戳,这样数据才有可比性。
9. CAN 通道已就绪,软件在线回放失败
情况描述:
载入 blf 文件,报文里面只有通道 1 的报文,但是回放还是失败,错误提示如下:
原因分析:
在线回放是把记录的报文反向回灌回物理总线上。本次案例中 Blf 文件记录的报文是fd 报文,但是硬件是普通 CAN(classic CAN),因此造成在线回放失败。
解决办法:
更换支持 FDCAN 的硬件,如果硬件已经支持,则把该硬件工作模式设置为 FDCAN 模式。然后重新回放即可。
TSMaster快速入门篇(2)-报文回放相关推荐
- Lua快速入门篇(XLua教程)(Yanlz+热更新+xLua+配置+热补丁+第三方库+API+二次开发+常见问题+示例参考)
<Lua热更新> ##<Lua热更新>发布说明: ++++"Lua热更新"开始了,立钻哥哥终于开始此部分的探 ...
- 运动控制器编程_快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一
点击上方"正运动小助手",随时关注新动态! 运动控制器ZHMI组态编程简介一 今天我们来学习一下,运动控制器的ZHMI组态编程简介.本文主要从产品概述.控制器连接触摸屏使用.HM ...
- Java基础-SSM之mybatis快速入门篇
Java基础-SSM之mybatis快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实你可能会问什么是SSM,简单的说就是spring mvc + Spring + m ...
- JSON数据结构(A、快速入门篇)(Yanlz+Data+JsonArray+JsonObject+JsonValue+JsonMapper.ToJson+JsonMapper.ToObject+)
<JSON数据结构> 版本 作者 参与者 完成日期 备注 Data_JSON_V01_1.0 严立钻 2018.08.24 ++++一个好用的JSON在线编辑:http://www.kjs ...
- Git快速入门篇—— Windows版本淘宝镜像快速下载安装详细步骤及简单入门教程(附带图文教程)
Git快速入门篇-- Windows版本淘宝镜像快速下载安装详细步骤及简单入门教程(附带图文教程) 前言:我们平时在整理代码的时候,尤其是与别人一起开发项目的时候,常常涉及到代码的更新,因此代码版本问 ...
- OpenCV快速入门篇(Python实现)
OpenCV快速入门篇(Python实现) 转载自:https://blog.csdn.net/feilong_csdn/article/details/82750029 本系列python版本:py ...
- Lua快速入门篇(基础概述)(Yanlz+toLua+xLua)
<Lua热更新> ##<Lua热更新>发布说明: ++++"Lua热更新"开始了,立钻哥哥终于开始此部分的探索了. ++++作为游戏发布迭代的重要技术:Lu ...
- 【外行也能看懂的RabbitMQ系列(一)】—— RabbitMQ快速入门篇(内含丰富实例)
系列文章目录 准备篇 RabbitMQ安装文档 第一章 RabbitMQ快速入门篇 第二章 RabbitMQ的Web管理界面详解 第三章 RabbitMQ进阶篇之死信队列 第四章 RabbitMQ进阶 ...
- 快速入门 | 篇十三:正运动技术运动控制器ZDevelop 编程软件的使用
之前正运动技术与大家分享了,运动控制器的固件升级.ZBasic程序开发.ZPLC程序开发.与触摸屏通讯和输入/输出IO的应用.运动控制器数据与存储的应用.运动控制器ZCAN.EtherCAT总线的使用 ...
最新文章
- SpringBoot任务调度案例(学习笔记)
- C语言实用算法系列之学生管理系统_对整个结构体操作_冒泡排序
- 为什么不可以使用哈曼顿距离_K-means真的不能使用曼哈顿距离吗?
- Inception-v4,Inception-ResNet论文笔记
- 如何查看hadoop是32位还是64位
- (16)System Verilog禁止类中所有变量随机化
- Python之数据分析(Numpy数据可视化:等高线图、热力图、饼图)
- 关于ipxe启动的几个疑问
- android:AIDL
- C++ - 使用copy函数打印容器(container)元素
- web打印网页指定区域
- 庄子《天下》:道与术,取与予,利与害,方与圆,常与变,生与死
- win10弹出计算机的内存不足,win10提示计算机显卡内存不足情况的解决办法介绍...
- vue+websocket+nodejs实现聊天室 - 消息已读未读
- SVD法坐标系转换原理
- 卿斯汉:畅谈中国在可信计算领域的成绩
- 你心存幻想的样子,真的很傻
- Vue-V-model参数绑定
- 任正非竟然要炸掉华为「研发金字塔」,到底怎么回事?
- sql查询当天交易总额最大的用户信息_京东用户行为数据分析(SQL)
热门文章
- IDEA从零到精通(26)之MybatisX插件的安装与使用
- 使用C语言实现输入字符串逆序输出
- MOS管开关电路设计
- 计算机文化基础(高职高专版 第十一版)第五章答案
- apple_如何找到您的Apple卡号
- xgboost Dmatrix label全为0 解决方法
- user32.dll接口 捕捉windows信息窗口,和关闭信息窗口
- 网络安全进阶篇之流量加密(十三章-3)CS生成ssl证书修改c2 profile 加密流量逃逸检测
- 微软借“云”掀估值高涨浪潮,百度借智能云启动千亿美金估值航母?
- 基于springboot+vue个性化商城商品推荐系统 前后端分离 协同过滤 全套视频教程