Main Content

canFDMessageTimetable

将 CAN 或 CAN FD 报文转换为时间表

说明

示例

msgtimetable = canFDMessageTimetable(msg) 基于现有 CAN FD 报文时间表、CAN 报文对象数组或 CAN FD Log 模块中的 CAN FD 报文结构体创建一个 CAN FD 报文时间表。输出报文时间表包含报文中的原始报文信息(ID、Extended、Data 等)。如果 CAN 报文对象是包含解码信息的输入,则该解码信息保留在 CAN FD 报文时间表中。

示例

msgtimetable = canFDMessageTimetable(msg,database) 使用数据库解码时间表的报文名称和信号以及原始报文信息。使用数组指定多个数据库,以在单个调用中解码时间表中的报文名称和信号。

输入 msg 也可以是通过对 mdfDatastore 对象使用 read 创建的数据时间表。在本例中,函数将 ASAM 标准记录格式数据的时间表转换为 Vehicle Network Toolbox™ CAN FD 报文时间表。

示例

全部折叠

将日志模块输出转换为 CAN FD 报文时间表。

 load LogBlockOutput.mat;
 db = canDatabase('myDatabase.dbc');
 msgTimetable = canFDMessageTimetable(canMsgs,db);

将 CAN 报文对象的数组转换为 CAN FD 报文时间表。

msgTimetable = canFDMessageTimetable(canMsgs);

使用数据库解码现有 CAN FD 报文时间表。

db = canDatabase('myDatabase.dbc')
msgTimetable = canFDMessageTimetable(msgTimetable,db)

结果将返回到原始时间表变量。

转换现有 ASAM 格式报文时间表,并使用数据库解码。

m = mdf('CANandCANFD.MF4');
db = canDatabase('CustomerDatabase.dbc');
mdfData = read(m);
msgTimetable = canFDMessageTimetable(mdfData{2},db);

比较两个时间表。

mdfData{2}(1:4,1:6)
ans =

  4×6 timetable

       Time        CAN_DataFrame_BusChannel    CAN_DataFrame_FlagsEx    CAN_DataFrame_Dir    CAN_DataFrame_SingleWire    CAN_DataFrame_WakeUp    CAN_DataFrame_SRR
    ___________    ________________________    _____________________    _________________    ________________________    ____________________    _________________

    0.30022 sec               1                     2.1095e+06                  1                       0                         0                      0        
    0.45025 sec               1                     2.0972e+06                  1                       0                         0                      0        
    0.60022 sec               1                     2.1095e+06                  1                       0                         0                      0        
    0.75013 sec               1                     2.1095e+06                  1                       0                         0                      0        
msgTimetable(1:4,1:8)
ans =

  4×8 timetable

       Time         ID     Extended    Name    ProtocolMode        Data        Length    DLC      Signals   
    ___________    ____    ________    ____    ____________    ____________    ______    ___    ____________

    0.30022 sec     768     false       ''       'CAN FD'      [1×64 uint8]      64      15     [0×0 struct]
    0.45025 sec    1104     false       ''       'CAN'         [1×8  uint8]       8       8     [0×0 struct]
    0.60022 sec     768     false       ''       'CAN FD'      [1×64 uint8]      64      15     [0×0 struct]
    0.75013 sec    1872     false       ''       'CAN FD'      [1×24 uint8]      24      12     [0×0 struct]

输入参数

全部折叠

原始 CAN 报文,指定为以下项之一:

  • can.Message 对象数组

  • CAN FD 报文时间表

  • ASAM MDF CAN FD 报文时间表

  • 来自 CAN FD Log 模块的 CAN FD 报文结构体

示例: canFDMessage()

CAN 数据库,指定为数据库对象。

示例: database = canDatabase('CANDatabase.dbc')

输出参量

全部折叠

以时间表形式返回的 CAN FD 报文。

版本历史记录

在 R2018b 中推出