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

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

     

    目录

     

     GetMessageID -- 获取报文ID​编辑

    代码示例

    GetMessageName -- 获取报文名称

    代码示例

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

    代码示例

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

    代码示例

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

    代码示例


     GetMessageID -- 获取报文ID

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

    messageName报文的名称

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

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

    代码示例

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

    GetMessageName -- 获取报文名称

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

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

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

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

            1CAN

            5LIN

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

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6