canMessageTimetable
将 CAN 报文转换为时间表
说明
基于现有原始报文创建 CAN 报文时间表。输出报文时间表包含报文中的原始报文信息(ID、Extended、Data 等)。如果 CAN 报文对象是包含解码信息的输入,则该解码信息保留在 CAN 报文时间表中。相比使用 CAN 报文对象,CAN 报文数据的时间表通常提供更好的性能。msgtimetable
= canMessageTimetable(msg
)
使用数据库解码时间表的报文名称和信号以及原始报文信息。您可以使用数组指定多个数据库,以在单个调用中解码时间表中的报文名称和信号。 msgtimetable
= canMessageTimetable(msg
,database
)
输入 msg
也可以是通过对 MDF 文件使用 mdfRead
创建的数据时间表。在本例中,函数将 ASAM 标准记录格式数据的时间表转换为 Vehicle Network Toolbox™ CAN 报文时间表。
示例
将日志模块输出转换为 CAN 报文时间表。
load LogBlockOutput.mat db = canDatabase('myDatabase.dbc') msgTimetable = canMessageTimetable(canMsgs,db)
将原有 CAN 报文对象转换为 CAN 报文时间表。
msgTimetable = canMessageTimetable(canMsgs);
使用数据库解码现有 CAN 报文时间表。
db = canDatabase('myDatabase.dbc')
msgTimetable = canMessageTimetable(msgTimetable,db)
转换现有 ASAM 格式报文时间表,并使用数据库解码。
db = canDatabase('dbFiles\dGenericVehicle.dbc'); mdfData = mdfRead('mdfFiles\CANonly.MF4'); msgTimetable = canMessageTimetable(mdfData{1},db);
比较两个时间表。
mdfData{1}
ans = 795×9 timetable with 0 events t CAN_DataFrame.DataLength CAN_DataFrame.WakeUp CAN_DataFrame.SingleWire CAN_DataFrame.IDE CAN_DataFrame.ID CAN_DataFrame.Flags CAN_DataFrame.DLC CAN_DataFrame.DataBytes CAN_DataFrame.BusChannel ____________ ________________________ ____________________ ________________________ _________________ ________________ ___________________ _________________ _______________________ ________________________ 0.019968 sec 4 0 0 0 100 0 4 {[100 0 0 0]} 1 0.029964 sec 4 0 0 0 100 0 4 {[108 0 0 0]} 1 0.039943 sec 4 0 0 0 100 0 4 {[116 0 0 0]} 1 0.049949 sec 4 0 0 0 100 0 4 {[124 0 0 0]} 1 0.059945 sec 4 0 0 0 100 0 4 {[132 0 0 0]} 1 0.070001 sec 4 0 0 0 100 0 4 {[140 0 0 0]} 1 : : : : : : : : : : 7.9003 sec 4 0 0 0 100 0 4 {[ 44 3 0 0]} 1 7.9204 sec 4 0 0 0 100 0 4 {[ 52 3 0 0]} 1 7.9303 sec 4 0 0 0 100 0 4 {[ 60 3 0 0]} 1 7.9305 sec 4 0 0 0 100 0 4 {[ 68 3 0 0]} 1 7.9404 sec 4 0 0 0 100 0 4 {[ 76 3 0 0]} 1 7.9604 sec 4 0 0 0 100 0 4 {[ 84 3 0 0]} 1
msgTimetable
msgTimetable = 795×8 timetable Time ID Extended Name Data Length Signals Error Remote ____________ ___ ________ __________ _____________ ______ ____________ _____ ______ 0.019968 sec 100 false {0×0 char} {[100 0 0 0]} 4 {0×0 struct} false false 0.029964 sec 100 false {0×0 char} {[108 0 0 0]} 4 {0×0 struct} false false 0.039943 sec 100 false {0×0 char} {[116 0 0 0]} 4 {0×0 struct} false false 0.049949 sec 100 false {0×0 char} {[124 0 0 0]} 4 {0×0 struct} false false 0.059945 sec 100 false {0×0 char} {[132 0 0 0]} 4 {0×0 struct} false false 0.070001 sec 100 false {0×0 char} {[140 0 0 0]} 4 {0×0 struct} false false : : : : : : : : : 7.9003 sec 100 false {0×0 char} {[ 44 3 0 0]} 4 {0×0 struct} false false 7.9204 sec 100 false {0×0 char} {[ 52 3 0 0]} 4 {0×0 struct} false false 7.9303 sec 100 false {0×0 char} {[ 60 3 0 0]} 4 {0×0 struct} false false 7.9305 sec 100 false {0×0 char} {[ 68 3 0 0]} 4 {0×0 struct} false false 7.9404 sec 100 false {0×0 char} {[ 76 3 0 0]} 4 {0×0 struct} false false 7.9604 sec 100 false {0×0 char} {[ 84 3 0 0]} 4 {0×0 struct} false false
输入参数
CAN 报文数据,指定为以下项之一:
can.Message
对象数组CAN 报文时间表
ASAM MDF CAN 报文时间表
来自 CAN Log 模块的 CAN 报文结构体
ARXML 或 CAN 数据库,指定为 Database
对象。您可以使用 canDatabase
或 arxmlDatabase
函数创建该对象。
输出参量
以时间表形式返回的 CAN 报文。
版本历史记录
在 R2017a 中推出Database 参量现在允许指定 ARXML Database
对象。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)