Vector - CAPL - CANoe DBC消息相关自动化_02

 

目录

 

 GetMessageID -- 获取报文ID​编辑

代码示例

GetMessageName -- 获取报文名称

代码示例

getNextCANdbFilename -- 获取指定位置数据库文件命名

代码示例

getNextCANdbName -- 获取指定数据库的名称

代码示例

setSignalStartValues -- 设置目标信号初始值

代码示例


 GetMessageID -- 获取报文ID

功能:通过报文找出该报文的ID。

messageName:报文的名称

dbName:数据库的名称,如果在多个数据库中使用消息名称,则需要此名称。

返回值:报文 ID,如果找不到消息,则为 (dword)-1

代码示例

dword id;
id = GetMessageID("LightState");

GetMessageName -- 获取报文名称

功能:通过报文ID找出报文名称。

id:应为其找到消息名称的消息的 ID。

context:分配的数据库的上下文。

        上下文的低位字包含频道号。
        上下文的高位字包含总线类型

        1:CAN

        5:LIN

buffer:写入消息名称的缓冲区。

size:以字节为单位的缓冲区大小。

返回值:

        0:获取失败

        !=0:获取成功

代码示例

variables
{
  dword contextCAN = 0x00010000;
  dword contextLIN = 0x00050000;
  dword contextMOST = 0x00060000;
  dword contextFLEXRAY = 0x00070000;
  dword contextBEAN = 0x00080000;
  dword contextJ1708 = 0x00090000;
}
on message *
{
  char buffer[64];
  if ( getMessageName( this.ID, contextCAN | this.CAN, buffer, elcount( buffer)))
  {
    write( "Message: %s", buffer);
  }
}

getNextCANdbFilename -- 获取指定位置数据库文件命名

功能:找出其他指定数据库的文件名,使用 pos 查找其他已分配数据库的文件名。

pos:要查找的数据库的位置号。

buffer:写入数据库文件名的缓冲区。

size:以字节为单位的缓冲区大小。

返回值:

        0:获取失败

        !=0:获取成功

代码示例

//查找第三个数据库的示例

on key '3'
{
    char buffer[256];
    dword pos;
    //第二个数据库的位置号
    dword DbcNumber = 2; //Position number of the second database
    pos = GetNextCANdbFilename(DbcNumber, buffer, elcount(buffer));
    //返回第三个数据库的文件名。
    //返回值“pos”包含值 3。
    //如果没有找到第三个数据库,“pos”包含 0。

    write( "Database position number : %d Database file name : %s",pos, buffer);
}

getNextCANdbName -- 获取指定数据库的名称

功能:找出其他已分配数据库的名称,使用 pos 找出其他分配的数据库的名称。

pos:要查找的数据库的位置号。

buffer:写入数据库名称的缓冲区。

size:以字节为单位的缓冲区大小。

返回值:

        0:获取dbc名称失败

        != 0:成功获取dbc名称

代码示例

on key '3'
{
  char buffer[256];
  dword pos;
  dword DbcNumber = 2; //Position number of the second database
  pos = GetNextCANdbName(DbcNumber, buffer, elcount(buffer));
  //返回第三个数据库的名称。
  //返回值“pos”包含值 3。
  //如果没有找到第三个数据库,“pos”包含 0。

  write( "Database position number : %d Database name : %s",pos, buffer);
}

setSignalStartValues -- 设置目标信号初始值

功能:将参数中的信号值设置为数据库中定义的起始值。 

msg, frame, pdu, paramGroup, parameter:被设置信号的对象。

uninitializedData:帧/PDU 中未被信号使用的字节应设置的值。(4, 6)

返回值:

        0:成功将目标参数中的信号设置为初始值

        1:在数据库中找不到消息/框架/PDU/paramGroup

        2:至少一个信号起始值不适合消息中的信号

代码示例

message LightState msg;
setSignalStartValues(msg);

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车载网络测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值