Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

canMessage

基于用户指定的结构体构建 CAN 报文

说明

示例

message = canMessage(id,extended,datalength) 基于原始报文信息创建一个 CAN 报文对象。

示例

message = canMessage(id,extended,datalength,'ProtocolMode','CAN FD') 创建一条 CAN FD 报文。默认的 ProtocolMode 是标准 'CAN'

示例

message = canMessage(candb,messagename) 使用指定数据库中的报文定义创建报文。由于 ProtocolMode 是在报文数据库中定义的,因此在使用数据库时,不能将其指定为 canMessage 的参数。

示例

全部折叠

使用扩展 ID 格式创建 CAN 报文。

message1 = canMessage(2500,true,4)
message1 = 

  Message with properties:

   Message Identification
    ProtocolMode: 'CAN'
              ID: 2500
        Extended: 1
            Name: ''

   Data Details
       Timestamp: 0
            Data: [0 0 0 0]
         Signals: []
          Length: 4

   Protocol Flags
           Error: 0
          Remote: 0

   Other Information
        Database: []
        UserData: []

使用标准 ID 格式创建 CAN FD 报文。

message2 = canMessage(1000,false,64,'ProtocolMode','CAN FD')
message2 = 

  Message with properties:

   Message Identification
    ProtocolMode: 'CAN FD'
              ID: 1000
        Extended: 0
            Name: ''

   Data Details
       Timestamp: 0
            Data: [1×64 uint8]
         Signals: []
          Length: 64
             DLC: 15

   Protocol Flags
             BRS: 0
             ESI: 0
           Error: 0

   Other Information
        Database: []
        UserData: []

使用 CAN 数据库的定义创建报文。

candb = canDatabase(string([(matlabroot) '\examples\vnt\VehicleInfo.dbc']))
message3 = canMessage(candb,'WheelSpeeds')
message3 = 

  Message with properties:

   Message Identification
    ProtocolMode: 'CAN'
              ID: 1200
        Extended: 0
            Name: 'WheelSpeeds'

   Data Details
       Timestamp: 0
            Data: [0 0 0 0 0 0 0 0]
         Signals: [1×1 struct]
          Length: 8

   Protocol Flags
           Error: 0
          Remote: 0

   Other Information
        Database: [1×1 can.Database]
        UserData: []

输入参数

全部折叠

报文的 ID,指定为数值。如果此 ID 使用扩展格式,请将 extended 参数设置为 true

示例: 2500

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

指示报文 ID 是标准类型还是扩展类型,指定为 truefalse。逻辑值 true 表示 ID 是扩展类型,false 表示是标准类型。

示例: true

数据类型: logical

报文数据的长度,指定为 08(包含端值)的整数值。

示例: 8

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

CAN 数据库,指定为数据库对象。数据库包含报文定义。

示例: candb = canDatabase('CANdb.dbc')

数据库中报文定义的名称,指定为字符向量或字符串。

示例: 'VehicleDataMulti'

数据类型: char | string

输出参数

全部折叠

CAN 报文,以具有 can.Message 属性 的 CAN 报文对象形式返回。

在 R2009a 中推出