CANoe_UDS-boorloader 自动化测试系列(四)基本功能:CAPL实现#10服务会话控制

目录

一、前言

二、服务介绍

1.请求和响应

2.常用子功能

3.肯定响应

4.否定响应

三、CAPL实现思路

#0x10服务

四、总结


CANoe_UDS-booroader 自动化测试系列(一)创建一个CANoe测试工程(测试节点的选选择)
CANoe_UDS-booroader 自动化测试系列(二)基本刷写流程
CANoe_UDS-booroader 自动化测试系列(三)基本功能:CAPL实现UDS协议下的CAN报文接收#解析#发送
CANoe_UDS-booroader 自动化测试系列(四)基本功能:CAPL实现#10服务会话控制
CANoe_UDS-booroader 自动化测试系列(五)基本功能:CAPL实现#27服务安全解锁
CANoe_UDS-booroader 自动化测试系列(六)基本功能:CAPL实现bin文件数据解析
CANoe_UDS-booroader 自动化测试系列(七)基本功能:CAPL实现#34#36#37服务#数据下载
CANoe_UDS-booroader 自动化测试系列(八)基本功能:CAPL实现#31服务#例程控制
CANoe_UDS-booroader 自动化测试系列(九)基本功能:CAPL实现#22#2E服务#DID读写
CANoe_UDS-booroader 自动化测试系列(十)基本功能:CAPL实现#28#85服务#预编程操作
CANoe_UDS-booroader 自动化测试系列(十一)基本功能:CAPL实现CRC数据校验
CANoe_UDS-booroader 自动化测试系列(十二)基本功能:CAPL实现pane面板制作
CANoe_UDS-booroader 自动化测试系列(十三)CAPL框架下的全流程测试

一、前言

hello,大家好,我是小鸟鹏。

上篇文章介绍了两个基本的函数接口,一个是WaitServerResponse(byte responsecode,dword id ,byte service),另一个是:DiagnosticServiceSend(byte responsecode ,dword id ,dword dlc ,byte data[]),这两个函数分别用来接收并解析UDS帧报文以及发送UDS帧报文,不清楚的请移步看一下上一篇文章。

这一章我将基于以上两个函数实现一个基本功能,# 0x10服务的诊断和应用。分享源码和思路

二、服务介绍

1.请求和响应

服务请求的基本格式:

<SID> + <Sub-function> + <Parameter>

<SID> + <Parameter>

2.常用子功能

3.肯定响应

服务肯定响应的基本格式:

<SID + 0x40> + <Sub-function> + <Parameter>

<SID + 0x40> + <Parameter>

4.否定响应

服务否定响应的基本格式:

<0x7F> + <SID> + <NRC>

三、CAPL实现思路

我们通过上面的知识点就可以总结抽象出代码的实现思路,上面介绍了服务请求的报文格式、肯定响应以及否定响应的参数。总的来讲我们只需要根据文档的介绍,组装一条服务请求报文发送出去,然后在指定的超时时间内等待响应,最后判断响应是否满足期待的值即可。

话不多说直接上代码:

#0x10服务

void SID10_SessionControl(byte responsecode,long id ,byte subfunction,byte data)
{
    dword TempLen;
    byte TempData[256];
    TempLen = 0;
    TempData[TempLen++]= 0x10;
    TempData[TempLen++]= subfunction;
    if(0 != data)
    {
      TempData[TempLen++]= data;
    }
    DiagnosticServiceSend(responsecode,id,TempLen,TempData);//发送函数
}
void MainTest()
{
    Debug_Log("======================================");
    Debug_Log("========0x10==诊断会话切换测试========");
    Debug_Log("======================================");
  
    SID10_SessionControl(0x50,0x7DF,0x01,0x00);
  
    SID10_SessionControl(0x50,0x7DF,0x02,0x00);
  
    SID10_SessionControl(0x50,0x7DF,0x03,0x00);
}

四、总结

这篇文章简单介绍了#0x10服务的知识,以及重要的是怎么通过CAPL实现#0x10服务。经过这几篇文章的介绍,相信大家搭建一个基本的UDS测试框架做一些基本的测试是完全没问题的了。下一篇我打算介绍CAPL如何一键通过#0x27安全访问,希望我更新的朋友可以留个评论,码字不易,求个三连。

下一篇:

CANoe_UDS-boorloader 自动测试系列(五)基本功能:CAPL实现#27服务安全解锁

如果这篇博客对你有帮助请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力

作者:小鸟鹏

联系方式:

邮箱:502756962@qq.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值