CANOE学习
第一章 CAPL实现诊断读取DTC
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、CANOE环境搭建
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、程序实现
1. 清除DTC指令$14
SBM是CDD文件的名称,绑定了需要测试的控制器。
DiagSetParameter(DiagRequest obj,char[] parameterName, float numValue): long
该函数表示设置诊断命令的参数,如下代码,表示发送诊断指令: $14 FF FF FF
代码如下(示例):
DiagRequest SBM.FaultMemory_Clear req;
write("Clear fault memory");
DiagSetParameter(req,"GroupOfDtc",0xFFFFFF); // Set the GroupOfDTC, here 0xFFFFFF = all DTCs
DiagSendRequest(req);
2. 通过DTC number读取DTC扩展数据记录指令$19 06 xx xx xx xx
如下代码表示读取DTC 0X000002 的Recorder Number = 2的数据记录,相当于发送诊断指令$19 06 00 00 02 02(recNo)
代码如下(示例):
DiagRequest SBM.FaultMemory_Read_DTC_Extended_data_records_by_DTC_number req;
byte recNo=2;
write(" ");
write("Reading extended data record number 0x%02X for DTC 000002", recNo);
write("------------------------------");
// This one is handled on the raw request level
DiagResize(req, 6);
DiagSetPrimitiveByte(req, 0, 0x19);
DiagSetPrimitiveByte(req, 1, 0x06);
DiagSetPrimitiveByte(req, 2, 0x00);
DiagSetPrimitiveByte(req, 3, 0x00);
DiagSetPrimitiveByte(req, 4, 0x02);
DiagSetPrimitiveByte(req, 5, recNo);
DiagSendRequest(req);
该处使用的url网络请求的数据。
4. 通过DTC number读取DTC扩展快照数据$19 04 xx xx xx xx(recNo)
如下代码实现读取DTC 0x000001,recorder number = 0x01;
DiagRequest SBM.FaultMemory_ReadEnvironmentData req;
dword DTC=0x000001;
byte recNo=1;
write(" ");
write("Reading snapshot record 0x%02X for DTC %06X", recNo, DTC);
write("--------------------------");
DiagSetParameter(req, "DTC",DTC); // set the DTC
DiagSetParameter(req,"DTCSnapshotRecordNumber_CommonDiagnostics_Data_Object",recNo); // set the snapshot record number
DiagSendRequest(req);
4. 读取所有支持DTC内容$19 0A
DiagRequest SBM.FaultMemory_Read_supported_DTC req;
byte buffer[1]={0x09};
write(" ");
write("Reading all identified DTCs:");
write("-------------------------");
DiagSetParameterRaw(req,"DTCStatusMask", buffer,elcount(buffer)); // set the status mask
DiagSendRequest(req);
5. 处理ECU响应码
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。