1、这边文章是关于之前“发送报文”的补充和衍生
canoe-介绍 @002 CANOE 发送CAN/CANFD报文的N种方式_流~的博客-优快云博客
2、CANOE 发送报文就是:
- 基于界面的发送;
- 基于CAPL的发送;
诊断也是这样,基于界面的(界面有相关按钮触发)和基于CAPL的(CAPL有提供的函数)
因为诊断的请求之后的响应可能会有多条响应情况(一条请求多条响应),如果是一发一收那就很好处理收到的单条数据,但实际情况是一发多收就需要判断数据什么时候开始和等待结束。为此CANOE官方给出了一些诊断函数用来处理这类事件,目的就是用来避免一发多收不好处理的情况。一次请求一个对象收集所有接收到的数据。随时取需要的任何字段数据。
3、基于界面的和基于CAPL的初始化可以一致,如下所示
- 3.1-做一个基础注册
- 3.2-基于界面的配置发送诊断信息(演示配置一个 ID 711 服务 1001并且发送出来)
- ******:基于界面的方式只能通过视觉,观察来获取具体某一个字段的数据,CANOE可以对Trace窗口
- 3.3-基于CAPL的收发(演示CAPL脚本发送一个诊断报文,收到后续)
// 法一
diagRequest "DSC::Process" req_10;
diagSetTarget("TBOX"); // 界面注册的名字
diagResize(req_10,2);
DiagSetPrimitiveByte(req_10,0,0x10);
DiagSetPrimitiveByte(req_10,1,0x01);
diagSendRequest(req_11);
testWaitForDiagResponse(req_10,500)
//法二,使用界面的对象 需要使用 .CDD文件 笔者暂且未使用
DiagRequest GW.DSC_1001 req;
diagSendRequest(req);