CAN Monitor Tool Raspbian

OP #4154037
Lesenswert?
• ▲
▼
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
#4158973
Lesenswert?
• ▲
▼
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.
#4163691
Lesenswert?
• ▲
▼
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.

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