自学内容网 自学内容网

CAPL函数DiagSetParameterRaw和DiagSetPrimitiveByte的运用于对比

目录

0 引言

1 函数差异及运用


0 引言

        使用场景:在CAPL通过CDD调用诊断服务时,有一些服务的参数需要我们自行设置,比如 31 01 01是开始流程,31 01 02是关闭流程,如何自行填充第三个字节的内容就需要用到这两个函数。又比如说在27服务中,计算完密钥后,将密钥填充到2702中去发送给ECU

1 函数差异及运用

long diagSetPrimitiveByte( diagResponse response, DWORD bytePos, DWORD newValue);  

long diagSetPrimitiveByte( diagRequest request, DWORD bytePos, DWORD newValue); 

描述:通过未编码的数据字节直接设置或指定(复杂)参数的值。常在27服务中使用。

long diagSetParameterRaw (diagResponse obj, char parameter[], byte* buffer, DWORD buffersize);// form 1

long diagSetParameterRaw (diagRequest obj, char parameterName[], byte* buffer, DWORD buffersize); // form 2

 描述:写入诊断对象的一个字节。

两个函数的区别通过下面这个例子介绍:

诊断服务的填充有以下两种形式:

使用Diagsetparameterraw()无法填充1类型的诊断服务

使用diagsetprimitiveByte()可以填充这种诊断服务:

其中DWORD bytePos是从0开始算的。

最后需要加自动化测试群的大佬们可以私信我或评论留言,欢迎大家一起交流。


原文地址:https://blog.csdn.net/weixin_47469084/article/details/136712399

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!