Main Content

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')


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.

  1. Create the CAN database object.

    d = canDatabase("C:\myVNTData\demoVNT_CANdbFiles.dbc");
  2. 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.

  1. To display signals in your message, type:

    sig = message.Signals
    sig = 
      struct with fields:
        VehicleSpeed: 0
           EngineRPM: 250
  2. Change the value of the EngineRPM signal:

    message.Signals.EngineRPM = 300;
  3. 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;
ans =

Update Database Information

When you make changes to a database file:

  1. Reload the database file into your MATLAB session using the canDatabase function.

  2. Reattach the database to messages using the attachDatabase function.

See Also



Related Examples

More About