CAPL函数DiagSetParameterRaw和DiagSetPrimitiveByte的运用于对比
目录
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)!