Hallo liebe Forenfreunde, ich war zwar schon öfter auf diesem Board unterwegs, aber bis dato nur zum lesen. Jetzt mal in eigener Sache. Ich bin daran einen CAN Monitor mittels eines Raspberry Pi 2 und einem CAN Board mit MCP2515 Chip zu realisieren. Das ist wahrscheinlich auch garnicht weiter wichtig. Auf dem Pi läuft das Betriebsystem Raspbian. Ich möchte mich an einen Bus hängen und auf einem Display bestimmte CAN Botschaften anzeigen lassen. Diese soll man zb vorher am PC an dem Raspi kommuniziert haben. Der Raspi selber soll keine Einstellmöglichkeiten bieten. Demnach bräuchte ich jetzt ein Tool das mich dabei unterstützt und das ich selbst noch ein wenig anpassen kann. Es sollen ja alle Buttons verschwinden, sodass nurnoch die bestimmten Botschaften live angezeigt werden. (Ich schätze mal komplett selber schreiben dürfte doch schon deutlich aufwendiger sein?) Dabei bin ich zb auf diesen Thread gestoßen: Beitrag "Open Source CAN-Bus Analyse Tool". Den TinyCan View habe ich auch schon gefunden. Die größte schwierigkeit liegt wohl dabei, das ich die empfangenen Rohwerte mittels eines DBC Files interpretieren muss und das dann auf dem Display anzeigen lassen möchte. Also nicht die Rohwerte. Busmaster fällt schonmal raus, da nur für Windows. Habt ihr sonst noch einen Vorschlag, oder kann man sowas selber programmieren? Ich kann mit C und Java umgehen, aber auch nur im Studium nebenbei gehabt. Demnach bin ich kein Profi. Viele Grüße
Keiner eine Idee? Vielleicht wie man es selber programmiern könnte, das er nach den Rohwerten im DBC File sucht, vergleicht und dann die übersetzte Nachricht wieder ausgibt?
> Beitrag Open Source CAN-Bus Analyse Tool
sieht doch nicht schlecht aus.
Wer einige Mannmonate selber hineininvestieren kann und will, wird es
sicher auch selber programmieren können......
Das habe ich benutzt, um schnell und einfach Funktionen zu generieren, die aus den Datagrammen vernünftige Daten rausholen: http://sourceforge.net/projects/hsk/files/ Da unter scripts das dbc2c.awk Eventuell muss man sich die Templates noch ein wenig anpassen und die DBCs aufs nötigste strippen (das script ist ziemlich mäkelig). Alternativ gibts noch "cantools" Den kann man zur Laufzeit ein dbc vorwerfen und er generiert callbacks für jedes Signal einer Botschaft. Allerdings hatte ich probleme cantools unter windows zu übersetzen. Sind halt 2 unterschiedliche Ansätze. wenn du deine Can-Matrix kennst, diese Fix ist und du weißt, welche Signale du brauchst, gehts nicht effizienter als mit dem ersten. Willst du etwas komplett generisches, zur Laufzeit konfigurierbares, ist das 2. sicherlich geeigneter.
:
Bearbeitet durch User
Danke habe mir beides mal ein wenig angeschaut und ausprobiert. Aber ich blicke noch nicht so ganz durch... Zum Beispiel das Skript: Wie kann es ich ausführen und wie empfange ich mithilfe des Skriptes CAN Nachrichten? Tool: was meinst du ich kann zur Laufzeit ein DBC vorwerfen? Gruß
Mark C. schrieb: > Zum Beispiel das Skript: > Wie kann es ich ausführen mit awk awk -f dbc2c < my.dbc > my.dbc.h > und wie empfange ich mithilfe des Skriptes CAN > Nachrichten? gar nicht. wie gesagt - das script generiert einen C-header der jede menge defines enthält, unter anderem zugriffsmacros für die einzelnen Signale. Das script ist also teil des Entwicklungsprocesses. Du hast für einen bestimmten Anwendungsfall ein DBC-File und benötigst einzelne Signale, die du verarbeiten möchtest, also rufst du in deinem Schnittstellen-Code die entsprechenden Auspacks- und Umrechnungsmacros auf und gibst diese die richtigen Datagramme. Alles hardcoded quasi. Wenn du genau weißt, welche Signale du verarbeiten möchtest, geht es kaum effizienter, diese in normale Datentypen umzurechnen. Mark C. schrieb: > Tool: > was meinst du ich kann zur Laufzeit ein DBC vorwerfen? Der Ansatz ist komplett generisch. Du initialisierst die Bibliothek in deinem Programm und gibst ihr ein dbc-File. Dann gibst du der Lib eine beliebige Canbotschaft und wenn sie die in dem DBC-File findet, ruft sie einen Callback für jedes enthaltene Signal auf. Das ist natürlich sehr generisch. Aber wie gesagt, ich hab sie unter Win nicht gebaut bekommen. Und CAN-Botschaften empfängt die für dich natürlich auch nicht. Jede der beiden Varianten hat seine Vorteile und unterschiedlichen Anwendungszwecke.
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.