加载 .dbc 文件和创建报文
Vector CAN 数据库支持
Vehicle Network Toolbox™ 允许您使用 Vector CAN 数据库。数据库 .dbc
文件包含 CAN 报文和信号的定义。使用数据库文件中定义的信息,您可以查找报文和信号信息,并构建报文。您还可以使用工程单位来表示报文和信号信息,这样您就不需要处理原始数据字节。
加载 CAN 数据库
要使用 CAN 数据库文件,请将数据库加载到 MATLAB® 会话中。在 MATLAB 命令提示符下,键入:
db = canDatabase('filename.dbc')
此处 db
是您为数据库句柄选择的变量,filename.dbc
是 CAN 数据库的实际文件名。如果您的 CAN 数据库不在当前工作目录中,请键入数据库的路径:
db = canDatabase('path\filename.dbc')
提示
包含非字母数字字符(如等号、& 符号等)的 CAN 数据库文件名与 Vehicle Network Toolbox 不兼容。您可以在数据库名称中使用句点。在使用任何 CAN 数据库文件之前,请使用非字母数字字符对其重命名。
此命令返回一个数据库对象,您可以使用该对象和存储在数据库中的信息来创建和解释 CAN 报文。有关详细信息,请参阅 canDatabase
函数。
创建 CAN 报文
以下示例说明如何使用数据库创建报文。此数据库包含一条名为 EngineMsg
的报文。要使用此示例进行尝试,请使用您自己的数据库中的定义创建报文和信号。
创建 CAN 数据库对象。
d = canDatabase("C:\myVNTData\demoVNT_CANdbFiles.dbc");
使用数据库中的报文名称创建一个 CAN 报文。
message = canMessage(d,'EngineMsg');
访问构造的 CAN 报文中的信号
您可以访问为您在示例数据库中创建的报文 (message
) 定义的两个信号。您还可以更改某些信号的值。
要显示报文中的信号,请键入:
sig = message.Signals
sig = struct with fields: VehicleSpeed: 0 EngineRPM: 250
更改
EngineRPM
信号的值:message.Signals.EngineRPM = 300;
重新分配信号并再次显示它们以查看更改。
sig = message.Signals
sig = struct with fields: VehicleSpeed: 0 EngineRPM: 300
向 CAN 通道添加数据库
要向 CAN 通道添加数据库,请设置通道的 Database
属性。例如:
canch = canChannel("MathWorks","Virtual 1",1); d = canDatabase("C:\myVNTData\demoVNT_CANdbFiles.dbc"); canch.Database = d; canch.Database.Name
ans = 'demoVNT_CANdbFiles'
更新数据库信息
当您对数据库文件进行更改时,请:
使用
canDatabase
函数将数据库文件重新加载到 MATLAB 会话中。使用
attachDatabase
函数将数据库重新连接到报文。