UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

Bereich für alle Themen rund um Modellbahn-Software, sowie der nötigen Hardware (PCs, Bildschirme, etc.).
Antworten
Benutzeravatar

Threadersteller
Ixam97
InterRegio (IR)
Beiträge: 187
Registriert: Mo 13. Jan 2014, 16:55
Nenngröße: H0
Stromart: digital
Steuerung: MS1 + 2, Rocrail, Banana Pi
Gleise: K-Gleis

UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#1

Beitrag von Ixam97 » So 17. Jul 2016, 19:30

Hallo allesamt,

heute möchte ich euch gerne mal ein kleines Nebenprojekt vorstellen, dass ich diesen Nachmittag mal eben zusammen geschustert habe (in Vorbereitung auf meine "Einführung in das Programmieren"-Klausur :fool: ). Wie der Titel schon sagt handelt es sich um einen bequemen CAN-Monitor für Windows (ein dickes Sorry an die UNIX-Nutzer unter uns, aber damit kenne ich mich leider nicht so sehr aus :oops:), der die UDP-Pakete aus dem Netzwerk fischt und etwas aufbereitet darstellt. Aber seht selbst:

Bild

Natürlich wird dafür ein CAN zu UDP Interface benötigt. Das Programm hört einfach den entsprechenden Port ab und stellt das ganze dann für den Menschen leserlich dar. Zusätzlich werden die CAN-Frames in einer Log-Datei abgelegt, die Erklärungen dazu jedoch (noch) nicht.
Das ganze ist noch im Anfangsstadium (Arbeit von einem Nachmittag :D ) und nur einige wenige Befehle sind in so ausführlicher Erläuterung einprogrammiert wie auf dem Screenshot. Aber das kommt alles noch mit der Zeit.

Falls ihr den Monitor mal selber ausprobieren wollt, hier könnt ihr es euch herunterladen: CAN-UDP-Monitor. Um einen Trace in die Zwischenablage zu kopieren müsst ihr oben auf den Fensterrahmen einen Rechtsklick machen und [Bearbeiten] > [Markieren] auswählen. Dann könnt ihr mit der linken Maustaste den gewünschten Text markieren und mit einem Rechtsklick wird das Markierte in die Zwischenablage kopiert.

Falls ihr noch irgendwelche Ideen, Vorschläge oder Wünsche habt bin ich wie immer für alles offen ;)
Zuletzt geändert von Ixam97 am Fr 9. Mär 2018, 17:26, insgesamt 1-mal geändert.
Viele Grüße und Clausthaler Glück Auf,

Maxi.
____________________________________________________

MäCAN-Wiki: Alles rund ums Thema (noch im aufbau).

Bild


st-oldie
InterRegioExpress (IRE)
Beiträge: 300
Registriert: Di 22. Dez 2009, 15:50
Nenngröße: H0
Stromart: AC
Steuerung: Analog/Digital
Gleise: K-Gleis
Wohnort: Friedberg/Hessen
Alter: 55
Kontaktdaten:

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#2

Beitrag von st-oldie » So 17. Jul 2016, 21:10

Hi Maxi,
Ixam97 hat geschrieben:heute möchte ich euch gerne mal ein kleines Nebenprojekt vorstellen, dass ich diesen Nachmittag mal eben zusammen geschustert habe (in Vorbereitung auf meine "Einführung in das Programmieren"-Klausur :fool: ). Wie der Titel schon sagt handelt es sich um einen bequemen CAN-Monitor für Windows der die UDP-Pakete aus dem Netzwerk fischt und etwas aufbereitet darstellt.
Schön. Solche Traces für den CAN Bus und für die Kommunikation innerhalb meiner Software hab ich auch bei mir integriert. Das ist für Fehlersuche oder Verfolgen des Ablaus sehr praktisch.
Ixam97 hat geschrieben:ein dickes Sorry an die UNIX-Nutzer unter uns, aber damit kenne ich mich leider nicht so sehr aus
Das wäre kein Problem. Mit dem bei mir vorhandenen Code kann ich bei Bedarf recht schnell ein ähnliches Programm für Linux erstellen. Alle Teilprobleme sind ja in meinem Softwarepaket schon vorhanden. Als wenn Interesse besteht, bitte Bescheid geben. Dann bau ich auch einen Trace für Ethernet zusammen.
Ixam97 hat geschrieben:Natürlich wird dafür ein CAN zu UDP Interface benötigt. Ich verwende dafür einen BananaPi mit Gerds Software, aber das sollte auch genauso gut mit einer CS2 funktionieren.
Das ganze sollte auch mit meiner Software laufen. Es wird ja nur der Netzwerk Traffic getract.
Ixam97 hat geschrieben:Zu beachten beim Betrieb mit der CS2.exe: Ein gleichzeitiger Betrieb von beidem ist nur möglich, wenn unterschiedliche Ports verwendet werden. Ich habe das so gelöst, dass ich auf dem BananaPi einfach ms2wifi mit dem voreingestellten Port 7655 benutze und diesen dann für den Monitor verwende.
Hast du mal getestet (mit einer CS2, nicht mt Gerds Software), ob du bei einer TCP Verbindung alle Ethernet Frames der anderen Ethernet Clients bekommst? Dann würde es reichen, eine TCP Verbindung zu öffnen und es könnten CS2.exe und der Trace parallel laufen.

Tschüß
Michael


bertr2d2
InterCity (IC)
Beiträge: 827
Registriert: Di 9. Okt 2012, 15:11
Nenngröße: H0
Stromart: digital
Alter: 51

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#3

Beitrag von bertr2d2 » Mo 18. Jul 2016, 11:14

Hallo,
Ixam97 hat geschrieben:heute möchte ich euch gerne mal ein kleines Nebenprojekt vorstellen, dass ich diesen Nachmittag mal eben zusammen geschustert habe (in Vorbereitung auf meine "Einführung in das Programmieren"-Klausur :fool: ). Wie der Titel schon sagt handelt es sich um einen bequemen CAN-Monitor für Windows der die UDP-Pakete aus dem Netzwerk fischt und etwas aufbereitet darstellt.
Respekt, was Du wieder in der kurzen Zeit gezaubert hast :gfm:
st-oldie hat geschrieben:
Ixam97 hat geschrieben:Zu beachten beim Betrieb mit der CS2.exe: Ein gleichzeitiger Betrieb von beidem ist nur möglich, wenn unterschiedliche Ports verwendet werden. Ich habe das so gelöst, dass ich auf dem BananaPi einfach ms2wifi mit dem voreingestellten Port 7655 benutze und diesen dann für den Monitor verwende.
Hast du mal getestet (mit einer CS2, nicht mit Gerds Software), ob du bei einer TCP Verbindung alle Ethernet Frames der anderen Ethernet Clients bekommst? Dann würde es reichen, eine TCP Verbindung zu öffnen und es könnten CS2.exe und der Trace parallel laufen.
IMHO ist die Idee von Michael wirklich gut: Über TCP sollten nahezu alle Frames sichtbar sein.
Aber nicht nur die CS2 beherrscht TCP - can2lan hat seit ca. 1 1/2 Jahren folgende Kommunikations-Matrix (TCP Port ist 15731 - TCP-Port 15732 ist nicht eingezeichnet):
Bild

Die Kommunikationsstruktur sollte damit der realen CS2 entsprechen.
st-oldie hat geschrieben:
ein dickes Sorry an die UNIX-Nutzer unter uns, aber damit kenne ich mich leider nicht so sehr aus
Das wäre kein Problem. Mit dem bei mir vorhandenen Code kann ich bei Bedarf recht schnell ein ähnliches Programm für Linux erstellen. Alle Teilprobleme sind ja in meinem Softwarepaket schon vorhanden. Als wenn Interesse besteht, bitte Bescheid geben. Dann bau ich auch einen Trace für Ethernet zusammen.
Noch cooler als einen Me-Too Unix-Client fände ich einen Tshark/Wireshark Dissector. Damit könnte man alle Betriebssysteme abdecken und alles bequem über die GUI anschauen bzw. mit tshark auf der Console. BTW: Tshark/Wireshark beherrschen natürlich auch SocketCAN ;-)


Gruß

Gerd


st-oldie
InterRegioExpress (IRE)
Beiträge: 300
Registriert: Di 22. Dez 2009, 15:50
Nenngröße: H0
Stromart: AC
Steuerung: Analog/Digital
Gleise: K-Gleis
Wohnort: Friedberg/Hessen
Alter: 55
Kontaktdaten:

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#4

Beitrag von st-oldie » Mo 18. Jul 2016, 13:02

Hallo,
bertr2d2 hat geschrieben:
st-oldie hat geschrieben:Das wäre kein Problem. Mit dem bei mir vorhandenen Code kann ich bei Bedarf recht schnell ein ähnliches Programm für Linux erstellen...
Noch cooler als einen Me-Too Unix-Client fände ich einen Tshark/Wireshark Dissector. Damit könnte man alle Betriebssysteme abdecken und alles bequem über die GUI anschauen bzw. mit tshark auf der Console.
Ok, war auch nur ein Angebot, weil ich das sehr schnell realisieren könnte.

Aber die Idee mit dem Wireshark Dissector ist natürlich richtig cool. Da gerate ich tatsächlich in Versuchung, mir das mal anzuschauen.

Tschüß
Michael


bertr2d2
InterCity (IC)
Beiträge: 827
Registriert: Di 9. Okt 2012, 15:11
Nenngröße: H0
Stromart: digital
Alter: 51

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#5

Beitrag von bertr2d2 » Mo 18. Jul 2016, 15:00

Hallo Michael,
st-oldie hat geschrieben:
bertr2d2 hat geschrieben:
st-oldie hat geschrieben:Das wäre kein Problem. Mit dem bei mir vorhandenen Code kann ich bei Bedarf recht schnell ein ähnliches Programm für Linux erstellen...
Noch cooler als einen Me-Too Unix-Client fände ich einen Tshark/Wireshark Dissector. Damit könnte man alle Betriebssysteme abdecken und alles bequem über die GUI anschauen bzw. mit tshark auf der Console.
Ok, war auch nur ein Angebot, weil ich das sehr schnell realisieren könnte.
Ich will da nicht den Stecker ziehen, aber ...
Aber die Idee mit dem Wireshark Dissector ist natürlich richtig cool. Da gerate ich tatsächlich in Versuchung, mir das mal anzuschauen.
das halte ich für besser (da MultiOS Unterstützung) und mind. 10x mal cooler 8) Zumal das auch in die offizielle Wireshark-Version einfließen kann, wenn Du willst. Ich denke, Du hast ja schon alles mehr oder minder zusammen und die Umsetzung sollte für einen Profi wie Dich kein Problem darstellen ;-)

Ich sehe es schon bildlich vor mir: Wireshark 2.0.5 mit Märklin CAN Unterstützung :mrgreen:

Gruß

Gerd


st-oldie
InterRegioExpress (IRE)
Beiträge: 300
Registriert: Di 22. Dez 2009, 15:50
Nenngröße: H0
Stromart: AC
Steuerung: Analog/Digital
Gleise: K-Gleis
Wohnort: Friedberg/Hessen
Alter: 55
Kontaktdaten:

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#6

Beitrag von st-oldie » Mo 18. Jul 2016, 17:20

Hallo Gerd,
bertr2d2 hat geschrieben:das halte ich für besser (da MultiOS Unterstützung) und mind. 10x mal cooler 8) Zumal das auch in die offizielle Wireshark-Version einfließen kann, wenn Du willst. Ich denke, Du hast ja schon alles mehr oder minder zusammen und die Umsetzung sollte für einen Profi wie Dich kein Problem darstellen ;-)
Mehr oder weniger zusammen stimmt, deshalb kam ja mein Angebot, das bei Bedarf auf Linux umzusetzen. Eine Umsetzung auf ein Wireshark Plugin halte ich jetzt auch nicht für so schwer.

Ich hab jetzt noch nie ein Plugin für Wireshark geschrieben. Wenn ich das richtig sehe, kann man das in C machen. Aber dann muß man wieder für die verschiedenene OSe compilieren. Das wäre dann wohl die richtige Wahl, wenn es in die offizielle Wireshak Version einfließen soll. Man kann das wohl auch in Lua programmieren, was dann die bessere Wahl wäre, wenn man das Plugin selbst verteilt.

Ich schau mir das mal genauer an.

Tschüß
Michael


bertr2d2
InterCity (IC)
Beiträge: 827
Registriert: Di 9. Okt 2012, 15:11
Nenngröße: H0
Stromart: digital
Alter: 51

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#7

Beitrag von bertr2d2 » Di 19. Jul 2016, 10:22

Hallo Michael,
st-oldie hat geschrieben: Ich hab jetzt noch nie ein Plugin für Wireshark geschrieben. Wenn ich das richtig sehe, kann man das in C machen. Aber dann muß man wieder für die verschiedenene OSe compilieren. Das wäre dann wohl die richtige Wahl, wenn es in die offizielle Wireshak Version einfließen soll. Man kann das wohl auch in Lua programmieren, was dann die bessere Wahl wäre, wenn man das Plugin selbst verteilt.

Ich schau mir das mal genauer an.
ich geb es zu :oops: - ich konnte die Finger nicht davon lassen: Lua Skript. Das tirvial.lua ist ein Pfundstück aus dem Internet, das ich als Vorlage genommen habe.

Code: Alles auswählen

# 192.168.0.182  BPi + can2lan
# 192.168.0.143  CS2.exe

tshark -X lua_script:maerklin.lua -r ../maerklin.pcap | grep -i Maerklin
  0.000000 192.168.0.143 -> 255.255.255.255 UDP Maerklin CAN (Software Version, Ping 0x31)
  3.213104 192.168.0.143 -> 192.168.0.182 TCP Maerklin CAN (S88 Event   0x22)
  3.213174 192.168.0.182 -> 192.168.0.143 TCP Maerklin CAN (Software Version, Ping 0x30)
  3.214476 192.168.0.143 -> 192.168.0.182 TCP Maerklin CAN (Bootloader CAN   0x36)
  3.254266 192.168.0.182 -> 192.168.0.143 TCP Maerklin CAN (Bootloader CAN   0x37)
  3.254344 192.168.0.182 -> 192.168.0.143 TCP Maerklin CAN (System  0x01)
  3.254417 192.168.0.182 -> 192.168.0.143 TCP Maerklin CAN (Software Version, Ping 0x31)
  3.303704 192.168.0.143 -> 192.168.0.182 TCP Maerklin CAN (Software Version, Ping 0x31)
  3.304165 192.168.0.143 -> 192.168.0.182 TCP Maerklin CAN (Bootloader CAN   0x36)
  4.227273 192.168.0.143 -> 192.168.0.182 TCP Maerklin CAN (Status Config  0x3a)
  6.239444 192.168.0.143 -> 192.168.0.182 TCP Maerklin CAN (System  0x00)
  6.239844 192.168.0.182 -> 192.168.0.143 TCP Maerklin CAN (System  0x01)
  6.240026 192.168.0.143 -> 192.168.0.182 TCP Maerklin CAN (System  0x00)
  6.270112 192.168.0.182 -> 192.168.0.143 TCP Maerklin CAN (System  0x01)
  6.270169 192.168.0.182 -> 192.168.0.143 TCP Maerklin CAN (Loco Direction 0x0b)
  6.270243 192.168.0.182 -> 192.168.0.143 TCP Maerklin CAN (Loco Velocity  0x09)
  6.271958 192.168.0.143 -> 192.168.0.182 TCP Maerklin CAN (Loco Function  0x0c)
  6.280223 192.168.0.182 -> 192.168.0.143 TCP Maerklin CAN (Loco Function  0x0d)
  6.283304 192.168.0.143 -> 192.168.0.182 TCP Maerklin CAN (Start Automatic 0x61)
  6.321094 192.168.0.143 -> 192.168.0.182 TCP Maerklin CAN (Start Automatic 0x61)
  6.331268 192.168.0.182 -> 192.168.0.143 TCP Maerklin CAN (Software Version, Ping 0x31)
  6.815662 192.168.0.143 -> 192.168.0.182 TCP Maerklin CAN (Status Config  0x3a)
  8.827629 192.168.0.143 -> 192.168.0.182 TCP Maerklin CAN (Status Config  0x3a)
Das Lua-Skript ist längst noch nicht fertig und Bedarf noch reichlich Arbeit. Von Berufswegen wollte ich das aber immer schon mal machen. Aber IMHO ist Deine/Eure Expertise in Bezug auf die Dekodierung hier willkommen.

Vielleicht hilft das Lua-Skript auch einfach zum Start in die Eigenentwicklung ...

Gruß

Gerd

Benutzeravatar

Threadersteller
Ixam97
InterRegio (IR)
Beiträge: 187
Registriert: Mo 13. Jan 2014, 16:55
Nenngröße: H0
Stromart: digital
Steuerung: MS1 + 2, Rocrail, Banana Pi
Gleise: K-Gleis

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#8

Beitrag von Ixam97 » Di 19. Jul 2016, 11:54

Hallo Michael, hallo Gerd,

hm, war mir schon irgendwie klar, dass man hier mit euch rechnen kann :lol:

Das ganze über Wireshark zu lösen ist sicherlich auch ein guter Ansatz, bin gespannt, was da am Ende bei raus kommt.
Zur Dekodierung: Was ich für sehr wichtig halte ist zu sehen, ob das Paket jetzt eine Anfrage/ein Befehl ist, oder ob das die Antwort ist, also ob das Response-Bit gesetzt ist. Dadurch kann man auf einem Blick sehen, ob auf einen Frame geantwortet wird. Und worauf ich bei meinem Programm ein Augenmerk gelegt habe: Man sieht auch sofort, was da eigentlich transportiert wird. Also nicht nur "Lok Richtung", sondern auch um welche Lok es sich handelt und in welche Richtung sie fahren soll. Grade für die Leute hier, die sich nicht so intensiv mit der Doku von Tante M auseinandergesetzt haben, sind die bisherigen Möglichkeiten, Traces zu erstellen, wohl eher eine Reihe von unübersichtlichen Hex-Zahlen. Und ich denke auch für Leute wie uns ist sowas eine immense erleichterung :lol: . Z.B. habe ich erst durch mein Programm wirklich realisiert, dass beim Einschalten der Gleisspannung auch jedes mal erneut die Gleisprotokolle freigegeben werden.

Aber was mein Progrämmchen angeht, so werde ich vermutlich bei UDP bleiben. Und das hat auch einen ganz einfachen Grund: In erster Linie habe ich das als eine Art Debugger für meine CAN-UDP-Bridge vorgesehen. An die kann man zwar an beiden Enden auch einen seriellen Monitor dranhängen, allerdings sehe ich dadurch nicht, was tatsächlich transportiert wird und was verschluckt wird (was leider immer noch manchmal vorkommt ... ). Daher so zu sagen eine "Mautstation" auf der Mitte der Brücke :lol: . Dazu bringe ich das Programm noch dazu, auf zwei Ports gleichzeitig zuzuhören und anzuzeigen, ob das Paketvon der Zentrale oder von der MS2 selber kommt.
Zuletzt geändert von Ixam97 am Fr 9. Mär 2018, 19:02, insgesamt 1-mal geändert.
Viele Grüße und Clausthaler Glück Auf,

Maxi.
____________________________________________________

MäCAN-Wiki: Alles rund ums Thema (noch im aufbau).

Bild


st-oldie
InterRegioExpress (IRE)
Beiträge: 300
Registriert: Di 22. Dez 2009, 15:50
Nenngröße: H0
Stromart: AC
Steuerung: Analog/Digital
Gleise: K-Gleis
Wohnort: Friedberg/Hessen
Alter: 55
Kontaktdaten:

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#9

Beitrag von st-oldie » Di 19. Jul 2016, 22:24

Hallo Gerd,
bertr2d2 hat geschrieben:ich geb es zu :oops: - ich konnte die Finger nicht davon lassen: Lua Skript. Das tirvial.lua ist ein Pfundstück aus dem Internet, das ich als Vorlage genommen habe.
...
Das Lua-Skript ist längst noch nicht fertig und Bedarf noch reichlich Arbeit. Von Berufswegen wollte ich das aber immer schon mal machen. Aber IMHO ist Deine/Eure Expertise in Bezug auf die Dekodierung hier willkommen.

Vielleicht hilft das Lua-Skript auch einfach zum Start in die Eigenentwicklung ...
Hast du Langeweile? ;-)

Nö, etwas ernster. Ich hatte noch ein paar andere Dinge zu erledigen und bei mir bleibt eher der Abend für sowas übrig. Und ich bin deshalb erst dazu gekommen, nach ein paar Beispielen zu suchen. Ich bin dann doch immer etwsa überrascht, wieviel 'Zeit andere dann doch einsetzen können.

Eigentlich könnte man jetzt meine Decodierung aus dem client_logms2 mit der Trace Funktion meiner CAN lib mit deinem Rumpf verheiraten. Und schon hat man eine fast volständige Decodierung.

Tschüß
Michael


st-oldie
InterRegioExpress (IRE)
Beiträge: 300
Registriert: Di 22. Dez 2009, 15:50
Nenngröße: H0
Stromart: AC
Steuerung: Analog/Digital
Gleise: K-Gleis
Wohnort: Friedberg/Hessen
Alter: 55
Kontaktdaten:

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#10

Beitrag von st-oldie » Di 19. Jul 2016, 22:33

Hallo Maxi,
Ixam97 hat geschrieben:hm, war mir schon irgendwie klar, dass man hier mit euch rechnen kann :lol:
Du kannst uns auch direkt ansprechen, statt zu versuchen etwas in den Raum zu stellen und zu schauen, ob jemand reagiert. ;-)
Ixam97 hat geschrieben:Das ganze über Wireshark zu lösen ist sicherlich auch ein guter Ansatz, bin gespannt, was da am Ende bei raus kommt.
Letztendlich kann sowas rauskommen, was du für Win gemacht hast oder ich für den CAN Teil. Keine Ahnung ob Gerd schon weitermacht, oder ob ich meine Dekodierung hinzufügen kann. Das hängt wohl auch davon ab, wie schnell Gerd weitermachen möchte.
Ixam97 hat geschrieben:Zur Dekodierung: Was ich für sehr wichtig halte ist zu sehen, ob das Paket jetzt eine Anfrage/ein Befehl ist, oder ob das die Antwort ist, also ob das Response-Bit gesetzt ist. ...
Also eigentlich eine vollständige Dekodierung der Message ID. Genau das, was ich bei mir auch eingebaut hab. Auch deshalb, um das verfolgen zu können. Und diese Infos kann man gut als Baum unter der Decodierung in Wireshark abbilden.
Ixam97 hat geschrieben:Aber was mein Progrämmchen angeht, so werde ich vermutlich bei UDP bleiben. ...
Das war auch nur eine Überlegung von mir. Letztendlich ist es immer die Frage, wozu man das Programm braucht.

Tschüß
Michael


bertr2d2
InterCity (IC)
Beiträge: 827
Registriert: Di 9. Okt 2012, 15:11
Nenngröße: H0
Stromart: digital
Alter: 51

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#11

Beitrag von bertr2d2 » Di 19. Jul 2016, 23:22

Hallo Michael,
st-oldie hat geschrieben: Letztendlich kann sowas rauskommen, was du für Win gemacht hast oder ich für den CAN Teil. Keine Ahnung ob Gerd schon weitermacht, oder ob ich meine Dekodierung hinzufügen kann. Das hängt wohl auch davon ab, wie schnell Gerd weitermachen möchte.
vor einiger Zeit hätte ich das Know-How für einen Dissector gut gebrauchen können - beim Märklin Protokoll war es nur ein Test, wie man so etwas prinzipiell machen könnte. Ich werde jetzt etwas anderes basteln, z.B. die Kopierfunktion via Taste habe ich noch nicht fertig. Oder den CAN-Start-Stop Buzzer mit LED-Rückmeldung, mal sehen ;-)

Du kannst "übernehmen" wenn Du möchtest - ohne Gefahr zu laufen, doppelte Arbeit gemacht zu haben. Natürlich nur bei Interesse ...

Gruß

Gerd


neo_02
Regionalbahn (RB)
Beiträge: 36
Registriert: Fr 16. Mai 2014, 21:52
Nenngröße: H0
Stromart: digital
Steuerung: ESU ECoS 2
Gleise: K

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#12

Beitrag von neo_02 » Sa 27. Aug 2016, 12:09

Vielen Dank für die Software, ich finde sie sehr praktisch. Die Anzeige an der Lok ist sehr cool, wenn es das Ganze noch mit DCC und Signalen geben würde, wäre das nochmal eine Spur hilfreicher für mein Vorhaben :D
Du hast es in C# implementiert? Muss ich beim Komplilieren irgend etwas beachten?
Viele Grüße
Daniel

Benutzeravatar

Threadersteller
Ixam97
InterRegio (IR)
Beiträge: 187
Registriert: Mo 13. Jan 2014, 16:55
Nenngröße: H0
Stromart: digital
Steuerung: MS1 + 2, Rocrail, Banana Pi
Gleise: K-Gleis

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#13

Beitrag von Ixam97 » Mo 29. Aug 2016, 19:31

Hallo,
neo_02 hat geschrieben:Vielen Dank für die Software, ich finde sie sehr praktisch. Die Anzeige an der Lok ist sehr cool, wenn es das Ganze noch mit DCC und Signalen geben würde, wäre das nochmal eine Spur hilfreicher für mein Vorhaben :D
Du hast es in C# implementiert? Muss ich beim Komplilieren irgend etwas beachten?
Was ist denn dein Vorhaben wenn ich fragen darf? Das Programm erkennt automatisch, ob eine Lok oder ein Zubehörartikel per Motorola oder DCC angesteuert wird und stellt das dementsprechend auch dar. Ob es sich bei einem Zubehörartikel nun aber um eine Weiche, eine Leuchte oder ein Signal handelt, ist aus den übermittelten Daten natürlich nicht ersichtlich. Allerdings ist die derzeitig herunterladbare Version etwas veraltet. Sobald ich wieder Zuhause bin werde ich mal die aktuelle Version hochladen.
Geschrieben ist das ganze in C#, richtig. Ob das auch auf anderen Rechnern problemlos kompiliert werden kann, kann ich dir nicht sagen, das musst du einfach mal ausprobieren. Aber die fertige exe steht ja auch zur Verfügung.
Viele Grüße und Clausthaler Glück Auf,

Maxi.
____________________________________________________

MäCAN-Wiki: Alles rund ums Thema (noch im aufbau).

Bild


neo_02
Regionalbahn (RB)
Beiträge: 36
Registriert: Fr 16. Mai 2014, 21:52
Nenngröße: H0
Stromart: digital
Steuerung: ESU ECoS 2
Gleise: K

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#14

Beitrag von neo_02 » Mo 29. Aug 2016, 23:24

Richtig, die grundsätzliche Anzeige funktioniert auch problemos. Ich hätte mir eine Anzeige im Stil der Lokanzeige gewünscht. Also z.B. "DCC Adresse XY Ausgang Z auf XX schalten" gewünscht. Mir geht es darum, die Funktionsweise des DCC Protokolls beim Schalten eines (Licht-)Signals nachzuvollziehen, da ich mir für die Lichtsignale einen DCC Signaldekoder mittels Arudinos (bzw. ATmega328P) bauen möchte. Natürlich kann ich das auch online nachlesen und in skizzieren, wie das angesteuert wird, nur fand ich das bisher sehr kompliziert und das Programm ist da eine wunderbare Erleichterung.
Viele Grüße
Daniel

Benutzeravatar

Threadersteller
Ixam97
InterRegio (IR)
Beiträge: 187
Registriert: Mo 13. Jan 2014, 16:55
Nenngröße: H0
Stromart: digital
Steuerung: MS1 + 2, Rocrail, Banana Pi
Gleise: K-Gleis

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#15

Beitrag von Ixam97 » So 4. Sep 2016, 14:57

Hallo Daniel,
neo_02 hat geschrieben:Richtig, die grundsätzliche Anzeige funktioniert auch problemos. Ich hätte mir eine Anzeige im Stil der Lokanzeige gewünscht. Also z.B. "DCC Adresse XY Ausgang Z auf XX schalten" gewünscht. Mir geht es darum, die Funktionsweise des DCC Protokolls beim Schalten eines (Licht-)Signals nachzuvollziehen, da ich mir für die Lichtsignale einen DCC Signaldekoder mittels Arudinos (bzw. ATmega328P) bauen möchte. Natürlich kann ich das auch online nachlesen und in skizzieren, wie das angesteuert wird, nur fand ich das bisher sehr kompliziert und das Programm ist da eine wunderbare Erleichterung.
Das ist in der aktuellsten Version schon inbegriffen. Heute Abend komme ich wieder nach Hause, dann werde ich die mal hochladen.
Soll der Signaldecoder denn per DCC oder über den CAN-Bus angesteuert werden? Mein Programm schlüsselt ja nur die CAN-Frames auf, nicht aber das DCC-Protokoll an sich. Mit den gängigen Digitalprotokollen kennen ich mich selber nicht aus, lediglich mit dem Märklin-CAN-Bus.
Viele Grüße und Clausthaler Glück Auf,

Maxi.
____________________________________________________

MäCAN-Wiki: Alles rund ums Thema (noch im aufbau).

Bild

Benutzeravatar

Threadersteller
Ixam97
InterRegio (IR)
Beiträge: 187
Registriert: Mo 13. Jan 2014, 16:55
Nenngröße: H0
Stromart: digital
Steuerung: MS1 + 2, Rocrail, Banana Pi
Gleise: K-Gleis

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#16

Beitrag von Ixam97 » Mo 5. Sep 2016, 13:47

Unter dem Link in meinem ersten Beitrag ist jetzt die aktuelle Version zu finden.
Viele Grüße und Clausthaler Glück Auf,

Maxi.
____________________________________________________

MäCAN-Wiki: Alles rund ums Thema (noch im aufbau).

Bild


lachmichkaputt
Regionalbahn (RB)
Beiträge: 39
Registriert: So 10. Apr 2016, 10:55
Nenngröße: H0
Stromart: digital
Steuerung: MS2, Telefonwählscheibe
Gleise: Märklin M (Blech)

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#17

Beitrag von lachmichkaputt » Fr 20. Apr 2018, 16:49

So einen UPD-CAN-Monitor zum CAN-Bus von Märklin hat Rainer Serwe schon vor längerer Zeit programmiert und unter www.r-serwe.de mitsamt Quellcode veröffentlicht. Das ist vom Ansatz her ganz gut gemacht und detailliert aufgeschlüsselt. Man sieht wer Befehle schickt und wer antwortet (response-Bit). Man sieht die Prio, den Befehl selber, den Hash, die UID bzw Loc-ID, die Datenlänge und auch die Daten selbst sind bei den wichtigsten Befehlen dem Protokoll entsprechend entschlüsselt. Man kann sogar testweise mit dieser Software selber Fahren und Schalten und sieht die dazugehörigen CAN-Frames gelistet. Alles lässt sich zusätzlich in einer Datei abspeichern.

Meine Wenigkeit hat sich erlaubt, diesen Monitor zu erweitern und kleinere Bugs zu entfernen. Die Erweiterung umfasst nun neben der UPD Schnittstelle per Winsock zur CS2, umschaltbar auch eine serielle Schnittstelle (RS232-FTDI bzw. USB) für die CC-Schnitte von Thorsten Mumm zur Verbindung mit einer Gleisbox.

Darauf aufbauend ist meine eigene Software-Zentrale, beruhend auf der Märklin-Gleisbox entstanden. Fahren mit MM2/DCC/MFX und Schalten mit MM, so wie das bei Märklin eben vorgesehen ist. Solcherart wird auch die Anzeige einer nebenbei angeschlossenen MS2 aktualisiert (sollte einmal erwähnt werden). Dies nur so nebenbei. Nun meine Frage:

Hat schon Jemand den Datenverkehr zwischen mehreren MS2 untereinander mit einem (seinem) CAN-Monitor analysiert? Ich meine die gegenseitige Übernahme von Loklisten, Symbolen etc. ohne CS2?

Benutzeravatar

DiegoGarcia
InterCityExpress (ICE)
Beiträge: 2347
Registriert: So 15. Apr 2007, 12:13
Alter: 104

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#18

Beitrag von DiegoGarcia » Fr 20. Apr 2018, 18:25

Evtl. hilft das hier weiter: http://mbernstein.de/modellbahn/can/bem.htm
talks are cheap, and they don't mean much ...


st-oldie
InterRegioExpress (IRE)
Beiträge: 300
Registriert: Di 22. Dez 2009, 15:50
Nenngröße: H0
Stromart: AC
Steuerung: Analog/Digital
Gleise: K-Gleis
Wohnort: Friedberg/Hessen
Alter: 55
Kontaktdaten:

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#19

Beitrag von st-oldie » So 22. Apr 2018, 22:25

Hallo,
DiegoGarcia hat geschrieben:
Fr 20. Apr 2018, 18:25
Evtl. hilft das hier weiter: http://mbernstein.de/modellbahn/can/bem.htm
Auch mein Sourcecode könnte da helfen. Wenn die mfx Anmeldung von der MS2 gemacht wird, dann holt meine Software für BBB/BPi zuerst die Loknamen und dann die Infos zu jeder Lok ab. Ich vermute mal, daß das auch von den MS2 untereinander so gemacht wird. Der relevante Code ist im client_zentrale in states.c

Im Prinzip hast du wohl das, was ich erstellt hab, nochmals nachgebaut.

Tschüß
Michael


mra
Beiträge: 5
Registriert: Do 7. Jan 2016, 18:25
Nenngröße: H0
Stromart: AC
Steuerung: CS3 - MS2 - Rocrail - Java
Gleise: Märklin C-Gleis
Wohnort: Rosenheim

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#20

Beitrag von mra » Di 8. Mai 2018, 21:06

Hi Maxi,
Ixam97 hat geschrieben:
So 17. Jul 2016, 19:30
Wie der Titel schon sagt handelt es sich um einen bequemen CAN-Monitor für Windows (ein dickes Sorry an die UNIX-Nutzer unter uns, aber damit kenne ich mich leider nicht so sehr aus :oops:), der die UDP-Pakete aus dem Netzwerk fischt und etwas aufbereitet darstellt. Aber seht selbst:
Aaalso ... ich habs auf dem Mac (Unix!) zum Laufen bekommen ... ;-)
Unter Linux gehts sicher auch ... :D

Auch, wenn ich nicht so verstehe, warum Du in einem C#-Programm so mit Pointern und Referenzen rumwirbelst :baeh:

Falls ihr noch irgendwelche Ideen, Vorschläge oder Wünsche habt bin ich wie immer für alles offen ;)
Ja - nicht nur per localhost auf CAN, sondern gleich übers Netz, bspw. an die CS2/CS3, aber das könnte ich ja auch selbst (mal) machen ...

Gr.,
Martin
--
No RISC no fun.


bertr2d2
InterCity (IC)
Beiträge: 827
Registriert: Di 9. Okt 2012, 15:11
Nenngröße: H0
Stromart: digital
Alter: 51

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#21

Beitrag von bertr2d2 » Mi 9. Mai 2018, 08:55

Hallo Zusammen,

im meiner can2udp Sammlung steckt auch ein can-monitor
der neben dem CAN Interface auch PCAP Dateien lesen kann, d.h. Aufzeichnungen die per tcpdump oder Wireshark gemacht wurden.

Gruß

Gerd


vikr
InterRegio (IR)
Beiträge: 166
Registriert: So 23. Okt 2011, 19:05
Nenngröße: H0
Stromart: AC
Steuerung: PC
Gleise: MMärklin C
Alter: 65

Re: UDP-CAN-Monitor - Bequem den CAN-Bus beobachten

#22

Beitrag von vikr » Mi 9. Mai 2018, 09:43

Hallo Gerd,
bertr2d2 hat geschrieben:
Mi 9. Mai 2018, 08:55
im meiner can2udp Sammlung steckt auch ein can-monitor
der neben dem CAN Interface auch PCAP Dateien lesen kann, d.h. Aufzeichnungen die per tcpdump oder Wireshark gemacht wurden.
:D schön, dass Du wieder mitmischt :D

MfG

vik

Antworten

Zurück zu „Software und Hardware“