【CAPL实战】LIN帧干扰的脚本实现

文章目录

  • 1、帧头干扰响应linDisturbRespWithHeader
    • 1.1 函数功能
    • 1.2 参数说明
    • 1.3 代码实例
    • 1.4 执行结果
  • 2、帧头干扰帧头linDisturbHeaderWithHeader
    • 2.1 函数功能
    • 2.2 参数说明
    • 2.3 代码实例


1、帧头干扰响应linDisturbRespWithHeader

1.1 函数功能

使用一个新的header帧头来干扰指定的response响应。

1.2 参数说明

linDisturbRespWithHeader(long disturbedFrameId, dword byteIndex, dword bitIndex, long disturbingFrameId);
// disturbedFrameId:需要干扰的ID,范围0~63
// byteIndex:需要干扰的字节索引(第一个字节为0);如果索引等于帧长度,将会干扰校验和字节;大于帧长度的索引,干扰无效。范围0~N,N帧长度。
// bitIndex:响应中断开始的bit位,索引0-7表示数据位,索引8代表停止位。较大的索引值指定索引数据字节后的字节空间,这时需要确保字节空间足够大。
// disturbingFrameId:仿真用于中断指定字节的帧头标识符

返回值:如果执行成功,返回不等于0;否则为0。

1.3 代码实例

使用ID=2的帧头来干扰报文ID=2数据段的byte3的bit2位,干扰方法如下:

int result;
on key "a"
{result = linDisturbRespWithHeader(2, 3, 2, 2);if(result != 0){TestStepPass("PASS","干扰成功");}else{TestStepFail("FAIL","干扰失败");	}
}

1.4 执行结果

在这里插入图片描述

  • 从上面的实例我们可以看到,函数触发后只会干扰1次
  • 对于第4个参数disturbingFrameId:仿真用于中断指定字节的帧头标识符,仿真的ID可以与被干扰的ID一致;当然也可以仿真0~63的任意ID
  • 脚本开发上要注意对于返回值的判断,来知道脚本中的函数是否触发成功。

2、帧头干扰帧头linDisturbHeaderWithHeader

2.1 函数功能

使用一个新的header帧头来干扰下一个的header帧头。

2.2 参数说明

linDisturbHeaderWithHeader(dword byteIndex, dword bitIndex, long disturbingFrameId);
// byteIndex:需要干扰的字节索引,0:同步段,1:受保护ID段。
// bitIndex:帧头中断开始的bit位,索引0-7表示数据位,索引8代表停止位。较大的索引值指定索引数据字节后的字节空间,这时需要确保字节空间足够大。取值范围:0~255。
// disturbingFrameId:仿真用于干扰帧头的帧头标识符ID

返回值:如果执行成功,返回不等于0;否则为0。

2.3 代码实例

使用ID=2的帧头来干扰报文ID=2帧头的同步段的bit4位,干扰方法如下:

int result;
on key "b"
{result = linDisturbHeaderWithHeader(0, 4, 2);if(result !=0){TestStepPass("PASS","干扰成功");}else{TestStepFail("FAIL","干扰失败");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/58069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为HarmonyOS打造开放、合规的广告生态 - 激励广告

场景介绍 激励广告是一种全屏幕的视频广告,用户可以选择点击观看,以换取相应奖励。 接口说明 接口名 描述 loadAd(adParam: AdRequestParams, adOptions: AdOptions, listener: AdLoadListener): void 请求单广告位广告,通过AdRequestPar…

自由学习记录(18)

动画事件的碰撞器触发 Physics 类的常用方法 RaycastHit hit; if (Physics.Raycast(origin, direction, out hit, maxDistance)) {Debug.Log("Hit: " hit.collider.name); } Physics.Raycast:从指定点向某个方向发射射线,检测是否与碰撞体…

【elkb】创建用户和角色

在使用中我们不能把超管的用户信息给到所有者,我们需要为不用的使用场景创建不同的用户。 登录管理员用户 打开管理页面 创建角色 点击角色,创建角色 填写角色信息 设置Kibana 权限 最后点击创建角色 创建用户 点击用户--->创建用户 填写信息 登录…

【论文复现】语言模型中的多模态链式推理

📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐、摄影的一位博主。 📗本文收录于论文复现系列,大家有兴趣的可以看一看 📘相关专栏C语言初阶、C…

Mysql常用语法一篇文章速成

文章目录 前言前置环境数据库的增删改查查询数据查询所有条件查询多条件查询模糊查询分页查询排序查询分组查询⭐️⭐️关联查询关联分页查询 添加数据insert插入多条记录不指定列名(适用于所有列都有值的情况) 更新数据更新多条记录更新多个列更新不满足条件的记录 删除统计数…

【每日C/C++问题】

一、 结构体和联合体有什么区别?能否在声明过程当中缺省名字?(需要写清楚使用方法) 结构体的各个成员占用不同的内存空间,总大小是所有成员大小之和(结构体字节对齐): typedef str…

Docker小记

Docker就是将程序和环境一同打包成一个独立的容器,容器和容器之间独立,可以理解为一个app,一个手机就是一个pod,一个pod上可以运行多个容器,容器之间共享磁盘和网络,每个容器仍然运行在自己的进程空间中,有…

Spring Boot代理问题

在 Spring Boot 2.x 中,AOP(面向切面编程)默认使用 CGLIB(Code Generation Library)来实现类的代理。CGLIB 代理是通过在运行时生成目标类的子类来增强目标类的方法。这种方式允许对没有实现接口的类进行代理。以下是一…

“不可原谅的漏洞”论文导读

文章《Unforgivable Vulnerabilities》由Steve Christey 2007年撰写,主要探讨了在软件安全领域中那些本可以避免的漏洞,即“不可原谅的漏洞”。这些漏洞通常由于开发者忽视了基本的安全开发实践而存在,且容易被发现和利用。文章提出了建立一套…

正则表达式(Regular Expressions)

正则表达式(Regular Expressions, 简称 Regex)是一种用于字符串匹配和处理的强大工具,通过特定的模式(Pattern)描述字符串。它在验证、替换、分割、提取等操作中非常有效。以下是一些基本概念和常见使用场景&#xff1…

文件夹无法访问?全面解析与高效恢复策略

一、文件夹无法访问的困境 在日常的计算机使用中,我们时常会遇到文件夹无法访问的尴尬情况。这种故障表现为双击文件夹时,系统毫无反应,或者弹出“无法访问,拒绝访问”的错误提示。更令人头疼的是,有时文件夹内的文件…

设计模式 策略模式 场景Vue (技术提升)

策略模式 (建议复制编辑器查看更佳) 在给定的 Vue.js 组件代码中,根据optionKey的不同值,展示了不同的表单内容并定义了不同的表单验证规则。在这里,optionMap对象内部定义了不同的策略(addAccount、editAccount、editPassword&am…

万字长文详解Hive聚合函数 grouping sets、cube、rollup原理、语法、案例和优化

目录 原理与语法 使用场景 多维度报表生成 复杂的数据分析 实际案例 原理与语法 与GROUPINGSETS的区别 实际案例 原理与语法 与CUBE的对比 实际案例 执行效率比较 优化建议 Hive提供了三个强大的高级聚合函数: GROUPING SETS 、 CUBE 和 ROLLUP ,用于处理复杂的…

长短期记忆网络(LSTM)如何在连续的时间步骤中处理信息

长短期记忆网络(LSTM)如何在连续的时间步骤中处理信息 长短期记忆网络(LSTM)是一种高级的循环神经网络(RNN),设计用来解决传统RNN在处理长时间序列数据时遇到的梯度消失或爆炸问题。LSTM通过其…

Spring @RequestMapping 注解

文章目录 Spring RequestMapping 注解一、引言二、RequestMapping注解基础1、基本用法2、处理多个URI 三、高级用法1、处理HTTP方法2、参数和消息头处理 四、总结 Spring RequestMapping 注解 一、引言 在Spring框架中,RequestMapping 注解是构建Web应用程序时不可…

飞牛OS在Docker中安装ODOO ERP系统

从后台的Docker镜像库安装一直报错误,无法安装成功,使用以下命令进入OS系统,以下是执行脚本: Start a PostgreSQL server $ docker run -d -e POSTGRES_USERodoo -e POSTGRES_PASSWORDodoo -e POSTGRES_DBpostgres --name db postgres:15 S…

cookie、session、http简单理解

Cookie:以key-value键值对的形式存储一些文本信息数据 并将数据保存在客户端(浏览器) sessionid(身份) 数据库中有一个seesion表,存放着所有的Session数据, 而sessionid就对应数据库数据这个id,服务器找到对应id的Ses…

VLAN间通信以及ospf配置

目录 1.基础知识介绍 1.1 什么是VLAN? 1.2 VLAN有什么用? 1.3 不同VLAN如何实现通信? 1.4 什么是路由汇总? 1.4.1 路由汇总的好处: 2. 实验 2.1 网络拓扑设计 2.2 实验配置要求 2.2.1 三层交换配置&#xff…

Redis的数据结构

一、Redis概述 Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。与MySQL数据库不同的是&a…

十四届蓝桥杯STEMA考试Python真题试卷第二套第一题

来源:十四届蓝桥杯STEMA考试Python真题试卷第二套编程第一题 题目描述: 给定一个字符串,输出字符串中最后一个字符。 输入描述: 输入一个字符串 输出描述: 输出字符串中最后一个字符 样例输入: hgf 样…