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

这篇具有很好参考价值的文章主要介绍了Vector - CAPL - CAN消息自动化设置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

目录

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

代码示例

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

代码示例

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

代码示例

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

代码示例

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

代码示例

canConfigureBusOff -- 总线设置为Busoff

代码示例


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

Vector - CAPL - 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 -- 模拟发送错误帧消息

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

功能:向 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 -- 判断报文是标准帧&扩展帧

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

功能:检查标准帧&扩展帧的参数;检查扩展标识符(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 -- 将标准帧转换为扩展帧

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

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

id:CAN消息的 ID 部分

返回值:扩展标识符

代码示例

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

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

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

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

message:CAN消息类型的变量

id:CAN消息的 ID 部分

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

代码示例

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

canConfigureBusOff -- 总线设置为Busoff

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

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

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

Channel:CAN 通道。

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

flags:

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

返回值:

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

        0:无法打开定义 ID 的干扰。文章来源地址https://www.toymoban.com/news/detail-450591.html

代码示例

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);
}

到了这里,关于Vector - CAPL - CAN消息自动化设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包