Load .dbc Files and Create Messages
Vector CAN Database Support
Vehicle Network Toolbox™ allows you to use a Vector CAN database. The database
.dbc
file contains definitions of CAN messages and signals.
Using the information defined in the database file, you can look up message and
signal information, and build messages. You can also represent message and signal
information in engineering units so that you do not need to manipulate raw data
bytes.
Load the CAN Database
To use a CAN database file, load the database into your MATLAB® session. At the MATLAB command prompt, type:
db = canDatabase('filename.dbc')
Here db
is a variable you chose for your database
handle and filename.dbc
is the actual file name of your
CAN database. If your CAN database is not in the current working directory, type the
path to the database:
db = canDatabase('path\filename.dbc')
Tip
CAN database file names containing non-alphanumeric characters such as equal signs, ampersands, and so forth are incompatible with Vehicle Network Toolbox. You can use periods in your database name. Rename any CAN database files with non-alphanumeric characters before you use them.
This command returns a database object that you can use to create and interpret
CAN messages using information stored in the database. Refer to the canDatabase
function for more information.
Create a CAN Message
This example shows you how to create a message using a database. This database has
a message named EngineMsg
. To try this example, create messages
and signals using definitions in your own database.
Create the CAN database object.
d = canDatabase("C:\myVNTData\demoVNT_CANdbFiles.dbc");
Create a CAN message using the message name in the database.
message = canMessage(d,'EngineMsg');
Access Signals in the Constructed CAN Message
You can access the two signals defined for the message you created in the example
database, message
. You can also change the values for some
signals.
To display signals in your message, type:
sig = message.Signals
sig = struct with fields: VehicleSpeed: 0 EngineRPM: 250
Change the value of the
EngineRPM
signal:message.Signals.EngineRPM = 300;
Reassign the signals and display them again to see the change.
sig = message.Signals
sig = struct with fields: VehicleSpeed: 0 EngineRPM: 300
Add a Database to a CAN Channel
To add a database a CAN channel, set the channel Database
property. For example:
canch = canChannel("MathWorks","Virtual 1",1); d = canDatabase("C:\myVNTData\demoVNT_CANdbFiles.dbc"); canch.Database = d; canch.Database.Name
ans = 'demoVNT_CANdbFiles'
Update Database Information
When you make changes to a database file:
Reload the database file into your MATLAB session using the
canDatabase
function.Reattach the database to messages using the
attachDatabase
function.