Forum: Compiler & IDEs Umwandlung CAN dbc in header/c-file


von Christoph (Gast)


Lesenswert?

Hallo,

kennt jemand ein Tool, welches die Botschaften und deren IDs sowie die 
Signale und deren Positionen innerhalb der Botschaft in eine C taugliche 
Header oder C-Datei wandelt? So dass bei der Programmierung die 
"Klarnamen" verwendet werden können?

VG
Christoph

von Cannelloni (Gast)


Lesenswert?

z.B. siehe Vectors old GENy...

von Pako (Gast)


Lesenswert?

Christoph schrieb:
> kennt jemand ein Tool, welches die Botschaften und deren IDs sowie die
> Signale und deren Positionen innerhalb der Botschaft in eine C taugliche
> Header oder C-Datei wandelt? So dass bei der Programmierung die
> "Klarnamen" verwendet werden können?

Das wär es ganz hilfreich zu wissen, in welcher Form die Definition der 
Botschafgten im Moment vorliegt.

von Christoph (Gast)


Lesenswert?

Pako schrieb:
> Das wär es ganz hilfreich zu wissen, in welcher Form die Definition der
> Botschafgten im Moment vorliegt.

Als dbc Datei, die in dbc++ erstellt wurde.

Für einfache dbc-Dateien ist das Format ja recht einfach und könnte 
wahrscheinlich recht einfach automatisch in eine Header-Datei überführt 
werden. Aber bei 5 Signalen in 2 Botschaften, die sich auch in Zukunft 
nur wenig ändern, wäre der Programmieraufwand zu hoch.

Christoph

von Rolf M. (rmagnus)


Lesenswert?

Christoph schrieb:
> Pako schrieb:
>> Das wär es ganz hilfreich zu wissen, in welcher Form die Definition der
>> Botschafgten im Moment vorliegt.
>
> Als dbc Datei, die in dbc++ erstellt wurde.
>
> Für einfache dbc-Dateien ist das Format ja recht einfach und könnte
> wahrscheinlich recht einfach automatisch in eine Header-Datei überführt
> werden.

Solche Funktionalität gibt es, aber meist nur als Teil einer sehr teuren 
Software.

> Aber bei 5 Signalen in 2 Botschaften, die sich auch in Zukunft
> nur wenig ändern, wäre der Programmieraufwand zu hoch.

Also in dem Fall würde ich das einfach von Hand machen.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Christoph schrieb:
> kennt jemand ein Tool, welches die Botschaften und deren IDs sowie die
> Signale und deren Positionen innerhalb der Botschaft in eine C taugliche
> Header oder C-Datei wandelt?

Ich habe mir zu diesem Zweck mit http://www.regexmagic.com/ ein paar 
Ausdrücke gebastelt und bekam die Daten damit in verschieden 
String-Arrays übergeben. Diese Arrays konnte ich mir so exportieren, wie 
ich sie brauche (XML, C-Header, ...).

von Bronco (Gast)


Lesenswert?

Christoph schrieb:
> Für einfache dbc-Dateien ist das Format ja recht einfach und könnte
> wahrscheinlich recht einfach automatisch in eine Header-Datei überführt
> werden. Aber bei 5 Signalen in 2 Botschaften, die sich auch in Zukunft
> nur wenig ändern, wäre der Programmieraufwand zu hoch.

Da würde sich ein Perl-Script anbieten.

von pic (Gast)


Lesenswert?

CANtool

von Peter Vranken (Gast)


Lesenswert?

Unter http://sourceforge.net/p/comframe/wiki/Home/ findet sich eine gute 
Antwort auf die gestellte Frage. Ein Open Source Konzept für einen CAN 
Stack wird vorgestellt, der die Kommunikationsebenen vom Hardware 
Treiber bis zur Anwendungssoftware abdeckt. Die angefragte Generierung 
der Pack/Unpack-Funktionen, die Botschaften aus Signalen zusammensetzen 
bzw. in diese zerlegen, ist nur ein Bestandteil davon.

Eines der Kernteile des Konzeptes ist ein sehr leistungsfähiger und 
zugleich flexibler Code Generator, der aus DBC Parser und angebundener 
Template Engine (http://www.stringtemplate.org/) besteht. Diese 
Kombination ermöglicht die Umsetzung der Netzwerk-Information in nahezu 
beliebige Textformate und die Pack/Unpack Funktionen stellen einen 
kleinen Teil der sich ergebenden Möglichkeiten dar.

Vielfältige Beispiele demonstrieren, wie unterschiedliche Templates von 
Arduino über Embedded Coder und TargetLink bis AUTOSAR unterstützen 
können. Alle Beispiele sind auf Wiederverwendbarkeit ausgelegt, die 
vorhandenen Templates sind gut dokumentiert und können mit geringen 
Anpassungen in unterschiedlichen Plattformen eingesetzt werden.

von Rolf M. (rmagnus)


Lesenswert?

Peter Vranken schrieb:
> Unter http://sourceforge.net/p/comframe/wiki/Home/ findet sich eine gute
> Antwort auf die gestellte Frage.

Und du meinst, Christoph sucht nach mehr als drei Jahren immer noch 
danach?

von Thorsten (Gast)


Lesenswert?

Hallo, ich benutze aktuell dieses AWK script. Funktioniert super und hat 
mir viel Arbeit erspart.

http://www.infineonforums.com/threads/1166-Generating-C-Code-from-Vector-CANdb-.dbc-files

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.