Vector - CAPL - CAN消息自动化设置

news2024/11/24 19:38:41

目录

canGetDataLength -- 获取CAN消息有效负载长度

代码示例

canOutputErrorFrame -- 模拟发送错误帧消息

代码示例

isStdId  & isExtId -- 判断报文是标准帧&扩展帧

代码示例

mkExtId -- 将标准帧转换为扩展帧

代码示例

valOfId -- CAN消息的长值标识符

代码示例

canConfigureBusOff -- 总线设置为Busoff

代码示例


canGetDataLength -- 获取CAN消息有效负载长度

功能: 返回 can 消息的有效负载长度。

msg:CAN报文消息,通过变量message变量定义的CAN消息,也可以是this。

返回值:0 - 64(CAN&CANFD的长度范围)

代码示例

on message CAN1.*
{
  int message_len;
  if(this.id == 0x100)
  {
    message_len = canGetDataLength(this);
    write("Message 0x100 length is %d", message_len);
  }
}

canOutputErrorFrame -- 模拟发送错误帧消息

功能:向 CAN 总线发送错误帧;显性位的数量和尾部隐性位的数量作为参数给出。

errorFrame:errorFrame 类型的变量。

dominant:显性位的数量

recessive:隐性位的数量

返回值:

        1:发送成功

        0:发送失败(例如 驱动不支持)

代码示例

errorframe error1;
CAN2.errorFrame error2;
//在 CAN1 上输出具有 12 个显性位的错误帧
canOutputErrorFrame(error1, 12, 0); 
//在 CAN1 上输出具有 12 个显性位的错误帧
canOutputErrorFrame(error2, 6, 0);

isStdId  & isExtId -- 判断报文是标准帧&扩展帧

功能:检查标准帧&扩展帧的参数;检查扩展标识符(29 位)或标准标识符(11 位)的参数。

message:CAN消息类型的变量

id:CAN消息的 ID 部分

返回值:

        1:isStdId 如果是标准帧则返回1;isExtId 如果是扩展帧则返回1

        0:isStdId 如果不是标准帧则返回0;isExtId 如果不是扩展帧则返回1

代码示例

if(isExtId(this))
    write("extended identifier");
else
    write("standard identifier");
//代码等同于
if(isStdId(m100.id))
    write("standard identifier");
else
    write("extended identifier");

mkExtId -- 将标准帧转换为扩展帧

功能:将标准帧报文ID修改为扩展帧报文

id:CAN消息的 ID 部分

返回值:扩展标识符

代码示例

msg.id = mkExtId(this.id);
//msg.id变为扩展帧报文

valOfId -- CAN消息的长值标识符

功能:返回与其类型无关的消息标识符的值,作为长值的标识符

message:CAN消息类型的变量

id:CAN消息的 ID 部分

返回值:作为长值的标识符。

代码示例

on message *
{
    long x;
    x = valOfId(this);
    write("Received Identifier: %d",x);
    output(this);
}

canConfigureBusOff -- 总线设置为Busoff

功能:将总线状态设置为 BussOff,使用消息的定义 ID 将总线状态设置为 BusOff。

注意:此功能至少需要 Vector 驱动程序 9.6 和支持 ISO CAN FD 的网络接口。

Channel:CAN 通道。

canId:用于将总线状态设置为 BusOff 的消息 ID。

flags:

        0 : 关闭干扰
        1 : 打开干扰

返回值:

        1:已成功打开定义 ID 的干扰。

        0:无法打开定义 ID 的干扰。

代码示例

variables
{
  message 0x1 msg; // define CAN message
}

on key '1'
{
  // 启用干扰
  canConfigureBusOff(msg.msgChannel, msg.Id, 1); 
}
on key '2'
{
  output(msg);
}
on key '3'
{
  //关闭干扰
  canConfigureBusOff(msg.msgChannel, msg.Id, 0); 
}
on key 'r'
{
  resetCanEx(1);
}

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

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

相关文章

基于SpringBoot的原创歌曲平台的设计与实现

背景 原创歌曲分享平台,为了随时随地查看原创歌曲分享信息提供了便捷的方法,更重要的是大大的简化了管理员管理原创歌曲分享信息的方式方法,更提供了其他想要了解原创歌曲分享信息及运作情况以及挑选方便快捷的可靠渠道。相比于传统原创歌曲…

六级备考33天|CET-SET6|六级口语|备考手册|考试样题|热门话题

目录 样题 1 The benefits of college athletics 2 The adverse impact of cheating on examinations 3 My view on working part-time during ones college years 4 Should students take part in extracurricular activities 5 If you choose overseas studies 6 The…

基于stm32物联网开发板(3)--SYN6288语音模块

基于stm32物联网开发板(3)–SYN6288语音模块 1.SYN6288语音模块展示示例 SYN6288语音模块 2.概述 SYN6288-A语音合成模块是一款性价比更高,效果更自然的一款中高端语音合技术 。 SYN6288-A通过异步串口接收待合成的文本,实现文本到声音(TTS&…

SPL即将取代SQL?

先来看看两者的定义。 SQL:结构化查询语言。 SPL:结构化数据计算语言。 既然是比较文章,那必然是要突出一方的优势。 以下是SQL的痛点以及SPL的优点: 1.SQL缺乏离散性,集合化不彻底;SPL离散与集合充分结…

如何删除 Docker 镜像、容器和卷?

Docker 是一款常用的容器化平台,通过 Docker 可以将应用程序打包成一个独立的容器,方便地在不同的环境中运行。随着 Docker 的广泛使用,删除 Docker 镜像、容器和卷的操作也变得非常重要。在本文中,我们将介绍如何删除 Docker 镜像…

Python消费Kafka与优化

一.背景与问题 之前使用kafka-python库进行消费数据处理业务逻辑,但是没有深入里面的一些细节,导致会遇到一些坑。正常普通我们常见的一个消费者代码:(假设topic的分区数是20个) from kafka import KafkaConsumerbootstrap_servers [localhost:9092] g…

vim命令大全,非常详细,强烈建议收藏!

Vim是一款常用的文本编辑器,具有强大的功能和高度的可定制性。在本文中,我们将详细介绍Vim的常用命令,并提供相关的示例。如果您是初学者或已经熟练使用Vim,这篇文章都能为您提供帮助。 基本命令 以下是一些基本的Vim命令&#x…

一文足矣:Unity行为树

目录 前言 unity行为树简介 一个简单的敌人AI 正文 个人对行为树的理解 有限状态机与行为树 基本框架 BTNode DataBase 行为树入口 行为树的事件GraphEvent 发送事件 监听事件 脚本发送事件 行为树的管理&操作 一、操作单颗树 二、管理所有树 自定义Task任务 …

python字符串的三种定义方式

之前我们讲过 一些字符串的定义 但当时是说 被双引号包裹的就是字符串 其实并不是特别严谨 这个叫双引号的定义方式 也没错 也只有字符串会被双引号包裹 但还有其他的定义方式 这里 还是先说答案 三种定义方式分别是 单引号定义 双引号定义 三引号定义 参考代码如下 #单引定义…

《点云处理算法》——GROR配准

GROR配准方法(实时性挺好) 一、 效果展示二、VS运行2.1 github源码下载2.2 编译运行 三、后续集成 一、 效果展示 二、VS运行 最近和小伙伴交流,他发现一个好用的配准方法,放在这里实现一下 2.1 github源码下载 gror 2.2 编译…

hexo,typecho,wordpress,hugo的官网下载及介绍

Typecho Typecho是一个轻量级的PHP博客系统,它的优点在于易于安装、使用和管理。Typecho使用MySQL数据库来存储文章和评论,同时支持主题和插件的自定义。Typecho适用于个人博客、技术博客等,因为它的易用性和可扩展性较高。 WordPress Word…

分析SpringBoot 底层机制【Tomcat 启动分析+Spring 容器初始化+Tomcat 如何关联Spring 容器之手动实现

分析SpringBoot 底层机制【Tomcat 启动分析Spring 容器初始化Tomcat 如何关联Spring 容器之手动实现 目录 分析SpringBoot 底层机制【Tomcat 启动分析Spring 容器初始化Tomcat 如何关联Spring 容器之手动实现 实现任务阶段1- 创建Tomcat, 并启动 说明: 分析代码实现 修改…

Android源码之Application与Activity创建时机分析

前言 我们知道App进程是由SystemServer启动的Android启动流程 那App对应的Application以及第一个Activity又是如何创建的呢? 源码分析(API 30为例) 我们从ActivityThread.main函数入手; public static void main(String[] args) {...ActivityThread t…

第八章结构型模式—装饰者模式

文章目录 装饰者模式解决的问题概念结构 案例使用装配者进行改进 使用场景JDK源码分析 静态代理和装饰者的区别 结构型模式描述如何将类或对象按某种布局组成更大的结构,有以下两种: 类结构型模式:采用继承机制来组织接口和类。对象结构型模式…

【Linux】volatile | SIGCHLD | 多线程概念

文章目录 1. volatile编译器优化 2.SIGCHLD信号验证SIGCHLD的存在 3. 多线程多线程概念理解概念什么是多线程调度成本低局部性原理 什么叫做进程 1. volatile 在vscode中,创建signal.c文件 故意在while中没有写代码块,让编译器认为在main中,…

爬虫+可视化 | 动态展示2020东京奥运会奖牌世界分布

文章目录 前言1. 导入模块2. 数据爬取3. 地图展示 3.1 2020东京奥运会奖牌数世界分布3.2 2020东京奥运会金牌世界分布3.3 2020东京奥运会金、银、铜世界分布 前言 2020东京奥运会已落下帷幕,中国军团共获得88枚奖牌,其中38枚金牌、32枚银牌、18枚铜牌…

基于RV1126平台检测模型全流程部署(附工程)

基于RV1126平台检测模型全流程部署 模型训练ONNX导出ONNX模型简化Python部署C部署 本工程地址:https://github.com/liuyuan000/Rv1126_YOLOv5-Lite 模型训练 这次选用的是方便部署的YOLOv5 Lite模型,是一种更轻更快易于部署的YOLOv5,主要摘…

嵌入式通信协议【Modbus】modbus RTU的帧格式

modbus的帧格式 设备地址功能代码数据格式CRC校验LCRC校验H8bit8bitN*8bit8bit8bit 1 主机对从机单个寄存器写数据操作(0x06) 从机地址功能代码数据格式(数据地址)数据格式(数据)CRC校验LCRC校验H010600…

动态规划:万变不离其宗,带你吃透股票系列问题

前言: 对于买卖股票问题而言,最关键的是我们对问题的处理方式(对于每一天而言,我们应该描述当天买入卖出还是只描述每天股票的只有或者不持有的状态呢?)我们应该描述每天股票是否持有的状态,因…

中科院发布多模态 ChatGPT,图片、语言、视频都可以 Chat ?中文多模态大模型力作

作者 | 小戏、ZenMoore 在 GPT-4 的发布报道上,GPT-4 的多模态能力让人印象深刻,它可以理解图片内容给出图片描述,甚至能在图片内容的基础上理解其中的隐喻或推断下一时刻的发展。无疑,面向所谓的 AGI(通用人工智能&am…