Umwandlung CAN dbc in header/c-file

Gast #2761293
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.
Gast #2764424
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
#2764759
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.
Persönliche Seite #2764763
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, ...).
Gast #2766002
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.
Gast #4290300
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren