Umwandlung CAN dbc in header/c-file

Gast #2758964
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
Gast
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.
Gast
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
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.
Persönliche Seite
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, ...).
Gast
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.
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.