Skip to content

cantools is a set of command line tools for dealing with DBC, ASC, and MDF files specified by Vector-Informatik. The tools can be used to analyze and convert the data to other formats. Shared libraries for parsing and accessing these files are also provided.

License

DrAgnef/cantools-trunk

 
 

Repository files navigation

General Information
===================

cantools is a set of command line tools for dealing with ASC, MDF, and
DBC files from Vector-Informatik. The tools can be used to analyze and
convert the data to other formats:

* dbcls lists the contents of a DBC file.
* asctomat converts a .ASC log file to a MATLAB .MAT file
* mdftomat converts a .MDF log file to a MATLAB .MAT file
* dbccopy copies a dbcfile (to test the parser and generator)

The tools 'asctomat' and 'mdftomat' require the package matio, which
needs to be compiled and installed first (see instructions below).

Shared libraries for parsing and accessing these files are also
provided:

* libcandbc, libcanasc, libcanmdf: parsing of DBC, ASC, MDF files

Installation of matio
=====================
Prerequisites: autotools

1) download matio-1.5.2.tar.gz:
   wget 'http://downloads.sourceforge.net/matio/matio-1.5.2.tar.gz?use_mirror='
   or
   curl -o matio-1.5.2.tar.gz -L 'http://downloads.sourceforge.net/matio/matio-1.5.2.tar.gz?use_mirror='
2) unpack:
   tar xzf matio-1.5.2.tar.gz
3) configure:
   cd matio-1.5.2
   CFLAGS=-DZ_PREFIX ./configure --prefix=/usr
4) build and install:
   make ; make install

Installation of cantools
========================
Prerequisites: autotools, matio

download and extract cantools-*.tar.gz
cd cantools
libtoolize
autoreconf -f -i
./configure
make
make install

Debugging DBC parser
====================
Edit Makefile:
     - uncomment the line DEFS=$(YYDEBUG)
     - add "extern int yydebug; yydebug = 1;" to the main program
     - recompile

Profiling
=========
Edit Makefile:
     - add flag "-pg" to CFLAGS

Troubleshooting
===============
1) Error: ./libtool: line 860: X--tag=CC: command not found
   Reason: libtool scripts from a different environment are used
   Fix: execute "autoreconf -f -i; make"

2) Error: matio.h: No such file or directory
   Reason: matio is not installed
   Fix: install matio  (see "Installation of matio")

3) Error: configure stops with "Error! You need to install libmatio first."
   Reason: linker did not find matio in the library path
   Fix: install matio to /usr instead of /usr/local. Set PREFIX to
   /usr at configuration time (see "Installation of matio")

4) Error while compiling matio-1.5:
     libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -DZ_PREFIX -c mat.c  -DDLL_EXPORT -DPIC -o .libs/mat.o
     mat.c: In function `Mat_VarReadInfo':
     mat.c:1710: warning: dereferencing `void *' pointer
     mat.c:1710: error: request for member `_flags' in something not a structure or union
     mat.c: In function `Mat_VarReadNext':
     mat.c:1762: warning: dereferencing `void *' pointer
     mat.c:1762: error: request for member `_flags' in something not a structure or union
   Reason: incorrect definition in _mat_t
   Fix: in file matio_private.h, replace line 
    void *fp;               /**< File pointer for the MAT file */
   by
    FILE *fp;               /**< File pointer for the MAT file */

About

cantools is a set of command line tools for dealing with DBC, ASC, and MDF files specified by Vector-Informatik. The tools can be used to analyze and convert the data to other formats. Shared libraries for parsing and accessing these files are also provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 45.4%
  • Shell 40.6%
  • Makefile 9.0%
  • Yacc 4.0%
  • Other 1.0%