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
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.
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.
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, ...).
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.
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.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.