Zitat Z.B. einen Detektor, einen Schaltdecoder oder gar einen Sniffer? XS1-CAN<->XS2-CAN
welche Geräte meinst du, mir ist da nichts bekannt?
Wenn es da was gibt, sollten die verwendeten CAN-Kommandos bekannt sein und sich nicht störend mit den bisher verwendeten überkreuzen, dann kann man evtl. was dafür implementieren. Und testen kann nur einer, der so ein Ding dann hat. [/quote] Ich meine vor allem Geräte von ESU, die an der CS1rel bestens funktionieren.
In der Spezifikation von Stefan Krauss sind die Komandos für Rückmelder oder gar Sniffer leider nicht erwähnt....
Übrigens: An einer ECoS oder der CS1rel läßt sich skurrilerweise übrigens die Märklin MS1- Firmware updaten. Sie funktionieren dann auch weiter als Slave an CS2 und CS3.
MfG
vik
im Übrigen - Märklin am liebsten ohne Pukos, z.B. als Trix
Hallo Rainer, [quote="Rainer Müller" post_id=2189933 time=1605298510 user_id=1332] ... heute geht es um ein neues Zusatz-Progrämmchen auf dem BananaPi, genannt ms1relay. Diese SW erlaubt es, eine MS1 an einem CAN-Bus mit aktuellem Märklin-Protokoll zu betreiben, indem sie die beiden CAN-Dialekte in den jeweils anderen übersetzt. ... Es fehlen jetzt hauptsächlich noch das Eintragen und Löschen von Loks in die Lokliste(n). Dazu benötigt man eine Anwenderschnittstelle, wir denken da vorzugsweise an etwas Browser-basiertem um beim Bediengerät OS-unabhängig zu sein. Webserver mit PHP und nodeJS läuft schon für andere Aufgaben auf dem BananaPi, so dass hier kein komplettes Neuland zu beschreiten wäre. Da dies allerdings außerhalb meines Erfahrungsgebietes liegt, wäre ich dankbar für die Mitarbeit eines potentiellen MS1-Anwenders mit entsprechendem Wissen. [/quote] ich habe mir libmicrohttpd angeschaut. Wenn es um kleine Anpassungen geht wäre das vielleicht eine Möglichkeit, Programme um eine einfache Anwenderschnittstelle zu erweitern.
Zitat Hallo Rainer, ich habe mir libmicrohttpd angeschaut. Wenn es um kleine Anpassungen geht wäre das vielleicht eine Möglichkeit, Programme um eine einfache Anwenderschnittstelle zu erweitern.
Gruß
Gerd
das sieht aber auf den ersten Blick ganz schön kompliziert aus, muss ich mir noch genauer ansehen.
Bisher hatte ich mir das relativ einfach vorgestellt und mir dazu auch ein paar Gedanken gemacht. Das ms1relay muss lernen, zu Beginn die Liste der verwendbaren Loks einzulesen, z.B. aus der bekannten lokomotive.cs2, um die Zuordnung von Id, Name und Icons der/den MS1 bereitstellen zu können, und in einer Konfigurationsdatei Buch zu führen, welche MS1 bekannt und welche Loks ihnen zugewiesen sind.
Eine geplante zusätzliche Funktion, ms1dialog genannt, liest beide genannten Dateien ein und kennt somit ebenfalls, ob/wieviel MS1 angeschlossen sind und die verfügbaren und die zugewiesenen Loks. Der Anwender sollte dann aus zwei Listen die der MS1 zuzuordnenden oder zu entfernenden Loks auswählen können. Bei einer Änderung wird dann das ms1relay über MS1-ähnliche aber bisher unbenutzte CAN-Frames informiert, was der Anwender wünscht, und kann das dann den MS1 vermitteln und die Konfigurationsdatei entsprechend nachziehen. Auf CAN-Frames lauscht das ms1relay ja sowieso schon jetzt.
Als Demonstrationsmodell habe ich mit einem PHP-Einführungsbuch neben der Tastatur eine Skriptdatei ms1dialog.php erstellt, die das Prinzip zeigen soll. Da keine Konfigurationsdateien geladen werden, habe ich die Daten simuliert, sie machen nicht wirklich viel Sinn. Was über CAN gehen würde, wird im Debug-Feld angezeigt, der Errorcode kommt, weil auf dem Server kein CAN geht. Optisch liese sich sicher auch noch was verbessern, z.B. mit Stil-Definitionen.
Ein Webserver mit PHP und nodeJS läuft schon für andere Aufgaben auf dem BananaPi, so dass hier nur das PHP-Skript einzubringen und bei Bedarf aufzurufen wäre.
ich hatte dir ja angeboten einen Perl-Programm für den Webserver zu schreiben, der die Aufgaben von ms1dialog darstellt. Bei meinen ersten Versuchen konnte ich einen zusätzlichen Port im uhhtpd Server öffnen, leider habe ich es aber nciht geschafft, das der Perl Interpreter auch mein Programm ausführt. Die Umgebung openwrt und uhttpd ist neu für mich. Bis jetzt habe ich immer mit Linux und Apache programmiert. Ich bleibe aber dran.
Ich nutze den von Gerd erstellten Z21 umsetzer. Bis jetzt bin ich nur Loks im Motorola Foramt damit gefahren. Klappt auch alles bestens. Ich möchte ich meine erste MFX-Lok in der App anlegen. Leider reagiert die Lok nicht.
Wenn ich die Daten aus der MS-2 auslese erhalten ich folgendes:
Ich nutze den von Gerd erstellten Z21 umsetzer. Bis jetzt bin ich nur Loks im Motorola Foramt damit gefahren. Klappt auch alles bestens. Ich möchte ich meine erste MFX-Lok in der App anlegen. Leider reagiert die Lok nicht.
Wenn ich die Daten aus der MS-2 auslese erhalten ich folgendes:
Ich nutze den von Gerd erstellten Z21 umsetzer. Bis jetzt bin ich nur Loks im Motorola Foramt damit gefahren. Klappt auch alles bestens. Ich möchte ich meine erste MFX-Lok in der App anlegen. Leider reagiert die Lok nicht.
nachdem das mit der interaktiven Lokzuordnung noch etwas dauern wird, während Stefan den Dialogteil erstellen wird
Zitat Hallo Rainer,
ich hatte dir ja angeboten einen Perl-Programm für den Webserver zu schreiben, der die Aufgaben von ms1dialog darstellt. ... Stefan
und für mich die dazu passenden Schnittstellen im ms1relay auch noch einigen Aufwand darstellen, gibt es eine Zwischenlösung für ungeduldige MS1-Anwender, die Gerd als Update über die Paketverwaltung (PKG_RELEASE:=1.02) bereitstellt:
ms1relay kann zwar weiterhin nur EINE MS1 bedienen, aber ist nicht mehr auf eine vorbestimmte Lok fixiert, sondern liest jetzt aus der lokomotive.cs die ersten zehn Loks aus und ordnet diese der MS1 zu, an der dann eine davon ausgewählt werden kann. Passt die lokomotive.cs-Auswahl nicht zu den eigenen Wünschen, kann man auch eine editierte Kopie verwenden und mit der l-Option anfordern.
Hallo Gerd, wir haben unsere Anlage lange wegen Umbaus nicht benutzen können. Jetzt versuche ich langsam wieder in das Thema reinzukommen und kämpfe mit einigen Schwierigkeiten. Eins davon ist die Netzwerkanbindung des Banana Pi. Wir haben bisher immer eine LAN-Verbindung über Kabel genutzt. Nach dem Umbau ist das allerdings ziemlich umständlich, weswegen wir auf Wlan umsteigen wollen. Da kommen jetzt die Fragen hoch. Bevor ich auf Verdacht einen Wlan-Stick kaufe, wollte ich erst einmal die aus unserem Bestand versuchen. Habe zwei Stück gefunden: Einen Raspi-Wlanstick (die Himbeere ist auf dem Gehäuse) und einen älteren von AVM (Fritz!Wlan). Zumindest letzteren scheint das System auf dem Bpi zu erkennen. Leider bin ich mit OpenWrt nicht vertraut genug, um ihn einzurichten. Ich kann über den Browser per Lan das Netzwerkinterface aufrufen, finde aber keine offensichtliche Möglichkeit die Wlan-Verbindung einzurichten. Hast Du ein paar Tipps? Viele Grüße hawibi
Zitat Hallo Gerd, wir haben unsere Anlage lange wegen Umbaus nicht benutzen können. Jetzt versuche ich langsam wieder in das Thema reinzukommen und kämpfe mit einigen Schwierigkeiten. Eins davon ist die Netzwerkanbindung des Banana Pi. Wir haben bisher immer eine LAN-Verbindung über Kabel genutzt. Nach dem Umbau ist das allerdings ziemlich umständlich, weswegen wir auf Wlan umsteigen wollen. Da kommen jetzt die Fragen hoch. Bevor ich auf Verdacht einen Wlan-Stick kaufe, wollte ich erst einmal die aus unserem Bestand versuchen. Habe zwei Stück gefunden: Einen Raspi-Wlanstick (die Himbeere ist auf dem Gehäuse) und einen älteren von AVM (Fritz!Wlan). Zumindest letzteren scheint das System auf dem Bpi zu erkennen. Leider bin ich mit OpenWrt nicht vertraut genug, um ihn einzurichten. Ich kann über den Browser per Lan das Netzwerkinterface aufrufen, finde aber keine offensichtliche Möglichkeit die Wlan-Verbindung einzurichten. Hast Du ein paar Tipps?
sofern der BPi ein (weiterer) Client in Deinem vorhandenen WLAN Netz sein soll ist das relativ einfach.
Um aber sicher zu gehen, vorab die IPv6 Adresse sichern. Dazu über http://<ip-bpi>:4200 einloggen (root knaller) und dann folgendes absetzen:
1
ifconfig br-lan | grep "Scope:Link" # z.B. fe80::3:aff:fe43:644
Die IPv6 Adresse gut speichern - Du kannst darüber den BPi direkt über LAN Kabel erreichen.
Über die OpenWRT Oberfläche anmelden (root knaller): Netzwerk -> WLAN -> Suche -> Netzwerk aussuchen und "Netzwerk beitreten" Danach kannst Du das LAN Kabel entfernen. Der BPi ist dann über die neue WiFi IP-Adresse (siehe Fritzbox) erreichbar.
danke für die schnelle Reaktion. Leider bin ich wohl noch mehr Dummy als Du glaubst. Mit Port 4200 komme ich überhaupt nicht zum einloggen, zumindest nicht über den Browser. Wenn ich auf die Konsole wollte, habe ich mich bisher immer mit WinSCP (also Windows-Umgebung) und Port 22 angemeldet und von dort aus per Putty die Konsole erreicht. Die IPv6-Adresse kriege ich damit raus. Die OpenWRT-Oberfläche erreiche ich über den Browser ohne Portangabe. Im Menüzweig Netzwerk erscheint dort aber kein WLAN, sondern nur Schnittstellen, Statische Routen, Firewall, Diagnosen. Bin ich in der falschen Oberfläche oder habe ich nicht das richtige Image? Grüße hawibi
Zitat Die OpenWRT-Oberfläche erreiche ich über den Browser ohne Portangabe. Im Menüzweig Netzwerk erscheint dort aber kein WLAN, sondern nur Schnittstellen, Statische Routen, Firewall, Diagnosen. Bin ich in der falschen Oberfläche oder habe ich nicht das richtige Image? Grüße hawibi
dann ist warscheinlich Dein Image zu alt. Bitte sichere Deine Daten und beschreibe die SD-Card mit dem neuesten Image.
Hallo Gerd, mit dem neuen Image wurden Deine Ausführungen automatisch verständlicher. Die WLan-Verbindung steht jetzt. Nun kann es mit den nächsten Schritten weitergehen. Vielen Dank hawibi
Zitat Hallo Gerd, mit dem neuen Image wurden Deine Ausführungen automatisch verständlicher. Die WLan-Verbindung steht jetzt. Nun kann es mit den nächsten Schritten weitergehen. Vielen Dank hawibi
sofern Du can2lan nutzt, nicht vergessen, das Init-Skript (/etc/init.d/can2lan) anzupassen:
1 2 3 4 5 6 7 8 9 10 11
... # we don't care about existing PID rm -f /var/run/can2lan.pid # -g respond to CAN pings - WDP special # can2lan -mg -c /www/config -b br-lan # for WLAN can2lan -m -c /www/config -b wlan0 # for LAN # can2lan -m -c /www/config -b br-lan ...
Du kannst auch die Broadcast Adresse (z.B. Netz 192.168.0.x -> 192.168.0.255) für den Parameter -b verwenden. Das ist bei Dir auch ggf. sinnvoller, da Du dann auch zwischen LAN und WLAN wechseln kannst, ohne das Du den Parameter anpassen musst.
Hallo Gerd, danke, habe ich angepasst, wenn ich auch für den vi tief in meinen Erinnerungen in der Zeit aus kommandozeilenorientierten Texteditoren kramen musste. Wir haben damals so neben Batch-Skripten auch Programme editiert, unglaublich. Deinen Hinweis mit der Broadcast-Adresse im Parameter -b habe ich erst einmal ausgeblendet, da ich noch mit anderen Problemen zu kämpfen habe. Rocrail kann ich inzwischen auf dem Server öffnen. Aber wie sieht es mit unserem alten gesicherten Gleisplan aus? Ich konnte bisher ganz komfortabel Dateien mit WinSCP hin- und herschieben. Aber jetzt scheint auf dem Server kein SFTP zu laufen. Wie kriege ich das aktiviert? Grüße hawibi
mit einem bisschen Nachdenken kommt man auf SCP statt SFTP und schon funktioniert's... Grüße hawibi PS: Vielleicht benenne ich mich um in DAU (Dümmster anzunehmender User)
Hallo, über WinSCP lässt sich doch komfortabler editieren, die aktive Steuerung habe ich nach der Anpassung von RocRail auch hingekriegt. Was mir länger Kopfzerbrechen bereitet hat, deswegen erwähne ich es hier, ist die s88-Einbindung. Auch im Skript s88udp ist natürlich auf Wlan umzustellen und falls nötig die Anzahl der Module anzupassen, nicht nur in RocRail.
zum clone-ms2-loco kann ich zwar nichts sagen, aber was du unten als Ausgabe auflistest, ist vorwiegend das Ping-Pong-Spiel zwischen MS1 und ms1relay (0x0C000780 und 0x0C000781). Wenn du parallel dazu den aktuellen can-monitor startest, erhälst du das ausdecodiert. Eventuell kannst du den Stecker der MS1 schonen, indem du statt ausstecken den ms1relay stoppst, allerdings ist die MS1 dann nicht ganz ruhig sondern sucht periodisch ihren Master.
hab da mal eine spezielle Frage bzgl. der Modellbahnsteuerung mit der BPi. Ist es auch mit einer Software möglich den kompletten Decoderinhalt eines DCC-Decoders auszulesen? Mein Problem: Mit der CS2 geht das ja nicht (mehr), mit Gleisbox,BPi und CS2.exe das gleiche. Mit einer MS2 an der Gleisbox kann man jeden CV-Werte einer Lok manuell anwählen, auslesen und ändern. Bei der CS2 muss man ja über POM erst die CV anlegen und dann den Wert eintragen, man kann diesen aber nicht vorher auslesen und man weiß nicht was da drin stand. Warum kann man das mit der MS2 machen, mit einer CS2, die eigentlich mehr können sollte, nicht? Deswegen meine Frage bzgl. einer alternativen Software, die das in Verbindung mit dem BPi leisten kann.
es auch mit einer Software möglich den kompletten Decoderinhalt eines DCC-Decoders auszulesen? Mein Problem: Mit der CS2 geht das ja nicht (mehr), mit Gleisbox,BPi und CS2.exe das gleiche...
mir ist keine Möglichkeit bekannt, dass man den kompletten Decoderinhalt mit der CS2 in einem Rutsch auslesen konnte, man kann immer nur nacheinander beliebig oft den Wert zu einer beliebigen Variablen auszulesen.
Zitat Mit einer MS2 an der Gleisbox kann man jeden CV-Werte einer Lok manuell anwählen, auslesen und ändern. Bei der CS2 muss man ja über POM erst die CV anlegen und dann den Wert eintragen, man kann diesen aber nicht vorher auslesen und man weiß nicht was da drin stand. Warum kann man das mit der MS2 machen, mit einer CS2, die eigentlich mehr können sollte, nicht? Deswegen meine Frage bzgl. einer alternativen Software, die das in Verbindung mit dem BPi leisten kann.
Du kannst in der CS2 ein Template anlegen, in der alle Dir bekannten CVs eingetragen sind. Wenn Du mit der MS2 versuchst, eine Variable auszulesen, die im Decoder nicht existiert, bekommst Du nach Ablauf einer gewissen Zeit ein Fehlermeldung und gehst zur nächsten Variable. In der CS2 kannst Du Dir für jeden bekannten Decoder ein Template anlegen, in dem nur die CVs geklistet sind, die dieser DCC-Decoder hat. Natürlich könnte das die CS2 auch automatisiert unterstützen, aber dann wäre der ganze Wettvewerbs-Vorteil der proprietären mfx-Decoder ja weg, den Märklin mit soviel Aufwand implementiert hat.
z. B. Windigipet unterstützt sowas, aber auch andere Modellbahnsteuerprogramme, auch JMRI
MfG
vik
im Übrigen - Märklin am liebsten ohne Pukos, z.B. als Trix
Zitat man kann immer nur nacheinander beliebig oft den Wert zu einer beliebigen Variablen auszulesen.
Wenn ich in der CS2 beim POM eine CV Variable anlege kann ich die nicht auslesen, Feld dazu ist nicht aktiv, kann da nur einen Wert eingeben und zur Lok schickem, aber nicht sehn, was da drin steht.
Zitat man kann immer nur nacheinander beliebig oft den Wert zu einer beliebigen Variablen auszulesen.
Wenn ich in der CS2 beim POM eine CV Variable anlege kann ich die nicht auslesen, Feld dazu ist nicht aktiv, kann da nur einen Wert eingeben und zur Lok schickem, aber nicht sehn, was da drin steht.
mfg Stefan
Die MS2 und CS2 können CVs über POM nicht auslesen.
Zitat Die MS2 und CS2 können CVs über POM nicht auslesen.
Das wurde ja auch nicht behauptet, jedoch kann ich mit der MS2 unter "CV programieren" CV´s auswählen, auslesen und verändern, was bei der CS2 ja nun mal nicht geht, dort kann man ja die CV´s nur schreiben. Meine Frage war nun, ob es für die BPi-Lösung eine Software gibt, die von DCC Decodern die gespeicherten Werte auslesen. kann und speichert. Mit der CS2.exe kann man zwar die Lok auslesen, das funktioniert dort, CS2 bricht dabei leider ab, aber wo die Daten nun gespeichert werden, ist rätselhaft. In der POM tauchen sie jedenfals nicht auf.
Zitat Das wurde ja auch nicht behauptet, jedoch kann ich mit der MS2 unter "CV programieren" CV´s auswählen, auslesen und verändern, was bei der CS2 ja nun mal nicht geht, dort kann man ja die CV´s nur schreiben.
Wieso sollte man mit der CS2 keine DCC CV-Variablen auslesen können? Dazu ist doch der entsprechende Button da.