RE: MS2 und Beaglebone Black als Zentrale

#51 von 4000K , 06.01.2016 20:46

Hallo,

kurze Info zu meinem Stand: Ich hab mir Gerd's aktuelles Image (DHCP Client) von seiner Webseite runtergeladen, und auf meinem BPi gestartet. WLAN wieder konfiguriert. Nach dem Start den can2lan beendet
/etc/init.d/can2lan stop
und "mrsystem" gestartet:
/root/mrsystem.init start

Das sieht jetzt grundsätzlich schon ganz gut aus. "mrzentrale" stürzt nicht mehr ab. In /www/config wird eine lokomotive.cs2 geschrieben.

Im Moment sehe ich noch folgende Aufgaben (bitte um Verständnis, wenn ich mich komisch ausdrücke, Linux ist nicht so mein Fachgebiet):
- in der lokomotive.cs2 fehlt ein Eintrag. Ich meine, irgendwo hätte ich mal gelesen, dass die MS2 die Einträge etwas sonderbar/fehlerhaft meldet, und dass man von den zwei jeweils gemeldeten Loks nur die erste nehmen dürfe. Jedenfalls fehlt die Lok "151", aber in der "verbose"-Ausgaben von mrzentrale taucht mein "RegioShuttle" zweimal auf, in lokomotive ist "RegioShuttle" nur einmal drin, aber "151" fehlt. Könnt ihr Experten das bei euch auch nachvollziehen?
- mrsystem.init start sollte alle nötigen Prozesse starten. Aber "mrcs2eth" lebt anscheinend nicht lang. Sprich: in einer "ps"-Liste taucht es nicht mehr auf. Wenn ich das aber von Hand nochmal starte, bleibt es am Laufen. Dann bekommt auch das Handy die Zentrale mit, und zeigt die Loks an. Ideen? Müssen vielleicht in mrsystem.init irgendwo ein paar sleep-Sekunden oder eine andere Reihenfolge wegen gegenseitiger Abhängigkeiten rein?
- wenn mrcs2eth läuft, erkennt das Handy auch die "Zentrale". (Nur so am Rande, an so Wortzerpflücker, für mich ist das Gespann aus BPi + CAN-Treiber + GBox + MS2 jetzt eine Zentrale.)
- die MS2-App aufm Handy zeigt keine Lokbilder. Ich vermute, Abhilfe wäre es, das "/www/config/icons" Verzeichnis zu füllen? Wäre der Inhalt vom Verzeichnis icons der CS2.exe passend? Außerdem ggf. in lokomotive.cs2 den Dateinamen des Lokbilds reinzuschreiben? Vermutlich wird die MS2 die Info zum Lokbild nicht liefern.
- für mich Linux-Dummy: was ist das Äquivalent von autoexec.bat in Gerd's OpenWRT image, sprich: wo steht drin, welche Programme / Skripte beim Hochstarten gestartet werden? Wo lösche ich can2lan raus, wo schreibe ich mrsystem.init rein?

Bei allem, was nun geht, ist es wieder ein Anreiz, damit zu spielen. Ich muss nur noch mehr Zeit dafür finden ... Schon mal vielen Dank an die Experten dafür, was sie erreicht haben.


Grüße
Kevin


4000K  
4000K
Regionalbahn (RB)
Beiträge: 39
Registriert am: 19.10.2010


RE: MS2 und Beaglebone Black als Zentrale

#52 von st-oldie , 06.01.2016 21:06

Hallo Gerd,

ich hab jetzt nochmals auf die anderen Probleme geschaut:

Zitat von bertr2d2

1
2
3
4
5
6
7
8
9
10
11
12
13
 

destroy mrcs2eth
==28638==
==28638== HEAP SUMMARY:
==28638== in use at exit: 6,432 bytes in 239 blocks
==28638== total heap usage: 293 allocs, 54 frees, 12,075 bytes allocated
==28638==
==28638== 768 (24 direct, 744 indirect) bytes in 1 blocks are definitely lost in loss record 3 of 4
==28638== at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==28638== by 0x408035: IniParsCreate (ip_create.c:8)
==28638== by 0x407541: ConfigCreate (cfg_create.c:16)
==28638== by 0x4013E9: main (main.c:43)
 
 





Der Fehler ist gefunden und (bei mir) behoben. Das war ein Fehler im Sicherheitstest, ob denn Speicher angelegt war. Deshalb wurde fälschlicherweise nichts freigegeben. Aber glücklicherweise ohne weitere Auswirkungen, da dieser Block nur beim Beenden freigegeben wird, wo sowieso der Speicher des Programms wieder frei ist.

Zitat von bertr2d2

1
2
3
4
5
6
7
8
9
 

==28638== 5,664 bytes in 236 blocks are definitely lost in loss record 4 of 4
==28638== at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==28638== by 0x409645: MengeCreateIter (menge_citer.c:10)
==28638== by 0x401DC9: ProcessSystemData (cs2eth.c:227)
==28638== by 0x401F1A: HandleSystemData (cs2eth.c:269)
==28638== by 0x40298A: Cs2ethRun (cs2eth.c:488)
==28638== by 0x40173F: main (main.c:123)
 
 


Der zweite Block mit den 5.664 Bytes wächst auch an. In einem anderen Test (lief ein paar Minuten) habe ich da auch schon über 20KByte gesehen.




Das Problem ist auch erledigt. Ich hab den Iterator mit seiner Create Funktion dynamisch angelegt, aber nicht mit seiner Destroy Funktion wieder freigegeben. Aber die bessere Lösung ist es, den Iterator als lokale Variable anzulegen statt dynamisch mit der Create Funktion. Das hab ich auch (bei mir) umgebaut.

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#53 von st-oldie , 06.01.2016 22:15

Hallo Kevin,

Zitat von 4000K
kurze Info zu meinem Stand: Ich hab mir Gerd's aktuelles Image (DHCP Client) von seiner Webseite runtergeladen, und auf meinem BPi gestartet. WLAN wieder konfiguriert. Nach dem Start den can2lan beendet
/etc/init.d/can2lan stop
und "mrsystem" gestartet:
/root/mrsystem.init start

Das sieht jetzt grundsätzlich schon ganz gut aus. "mrzentrale" stürzt nicht mehr ab. In /www/config wird eine lokomotive.cs2 geschrieben.



Prima. Dann kannst du ja jetzt tatsächlich mal versuchen auf die Loks zuzugreifen.

Zitat von 4000K
Im Moment sehe ich noch folgende Aufgaben (bitte um Verständnis, wenn ich mich komisch ausdrücke, Linux ist nicht so mein Fachgebiet):
- in der lokomotive.cs2 fehlt ein Eintrag. Ich meine, irgendwo hätte ich mal gelesen, dass die MS2 die Einträge etwas sonderbar/fehlerhaft meldet, und dass man von den zwei jeweils gemeldeten Loks nur die erste nehmen dürfe. Jedenfalls fehlt die Lok "151", aber in der "verbose"-Ausgaben von mrzentrale taucht mein "RegioShuttle" zweimal auf, in lokomotive ist "RegioShuttle" nur einmal drin, aber "151" fehlt. Könnt ihr Experten das bei euch auch nachvollziehen?



Haben beide Fahrzeuge die gleiche Adresse (id)? Ich hab in meiner Verwaltung als Schlüssel die Adresse benutzt. Aber durch meine Versuche mit dem Editieren der Dateien mit der cs2.exe und lesen der Doku und eine korrupte Datenbank in der MS2 hab ich gesehen, daß der Schlüssel der Name sein muß. Wenn du also mehrere Fahrzeuge mit der gleichen Adresse hast, findest du anschließend nur das letzte Fahrzeug in der lokomotive.cs2 Das möchte ich aber als nächstes noch ändern.

Du hast den RegioShuttle zweimal gesehen. Zweimal in den Loknamen oder einmal im Loknamen und einmal in der Lokinfo?

Womit wir bei den sonderbar/fehlerhaften Einträge der MS2 sind. Die MS2 liefert keine lokomotive.cs2. Ich muß zuerst die Loknamen abfragen. Ich bekomme immer Päckchen mit 2 Namen und der Anzahl Einträge. Und muß dann die nächsten Namen abfragen. Wenn ich alle Namen zusammen habe, kann ich pro Lok die Infos abfragen, die dann einem Eintrag in der lokomotive.cs2 entsprechen. Das ist anders als die lokomotive.cs2 abzufragen, aber Fehler hab ich da nicht gesehen. Es kann aber sein, daß die Lokliste in der MS2 selbst fehlerhaft ist. Ich hatte bei mir auch schon eine korrupte Liste mit einem doppelten Eintrag. Deshalb sind meine Loks mittlerweile alle auf Speicherkarten. Ich hab einfach alle Loks in der MS2 gelöscht und von den Karten wieder eingelesen.

Damit siehst du eine Lok im Trace zweimal, zum einen müßtest du die Ausgabe "lok name xxx in lok cfg" sehen. Wenn alle namen aufgesammelt sind dann pro Lok "request lokinfo n >xxx< from m".

Ist es möglich, mir den Trace zukommen zu lassen'? Ich kann dir dafür auch meine EMail Adresse geben. Dann kann ich das leichter beurteilen.

Zitat von 4000K
- mrsystem.init start sollte alle nötigen Prozesse starten. Aber "mrcs2eth" lebt anscheinend nicht lang. Sprich: in einer "ps"-Liste taucht es nicht mehr auf. Wenn ich das aber von Hand nochmal starte, bleibt es am Laufen. Dann bekommt auch das Handy die Zentrale mit, und zeigt die Loks an. Ideen? Müssen vielleicht in mrsystem.init irgendwo ein paar sleep-Sekunden oder eine andere Reihenfolge wegen gegenseitiger Abhängigkeiten rein?



Es muß tatsächlich zuerst die drehscheibe und danach alle anderen Programme gestartet werden. Aber da sollte eigentlich nach dem Start der drehscheibe schon eine Wartezeit drin sein. Es sei denn, Gerhard hat das geändert. Oder gibt es noch ein Problem mit dem Schließend des Ethernet sockets oder Beenden des can2lan von Gerhard? Wenn mrcs2eth nicht einen Socket auf dem von Märklin definierten Ethernet Port öffnen kann, beendet es sich auch von selbst.

Du hast oben von den Ausgaben gesprochen. Werden denn meine Programme mit Ausgaben gestartet? Wenn ja, siehst du Ausgaben vom ersten Start der mrcs2eth?

Zitat von 4000K
- wenn mrcs2eth läuft, erkennt das Handy auch die "Zentrale". (Nur so am Rande, an so Wortzerpflücker, für mich ist das Gespann aus BPi + CAN-Treiber + GBox + MS2 jetzt eine Zentrale.)



Man kann das auch so sehen wenn man möchte. Die MS2 macht die Lokanmeldung. Der BPi mit ist quasi eine Netzwerkerweiterung. Und von der Netzwerkseite aus sieht das wie eine Zentrale aus.

Zitat von 4000K
- die MS2-App aufm Handy zeigt keine Lokbilder. Ich vermute, Abhilfe wäre es, das "/www/config/icons" Verzeichnis zu füllen? Wäre der Inhalt vom Verzeichnis icons der CS2.exe passend? Außerdem ggf. in lokomotive.cs2 den Dateinamen des Lokbilds reinzuschreiben? Vermutlich wird die MS2 die Info zum Lokbild nicht liefern.



Ja genau, du mußt die Lokbilder in das "/www/config/icons" Verzeichnis kopieren. Du brauchst keinen Eintrag in der lokomotive.cs2 aber der Basisname des Bilds muß gleich dem Loknamen sein und im png Format vorliegen. Ich hab z.B. eine Lok mit dem Namen "280 003-5", damit brauch ein Bild mit dem Namen "280 003-5.png". Du kannst dich dabei bei den Bildern der cs2.exe bedienen. Wegen Copyright könne wir diese Bilder ja nicht beilegen.

Zitat von 4000K
- für mich Linux-Dummy: was ist das Äquivalent von autoexec.bat in Gerd's OpenWRT image, sprich: wo steht drin, welche Programme / Skripte beim Hochstarten gestartet werden? Wo lösche ich can2lan raus, wo schreibe ich mrsystem.init rein?



Das geht etwas ins Eingemachte mit init und symlinks und runlevel. Ich versuche es mal möglichst einfach. Da du "/etc/init.d" hast, hast du ein System V init. Das init ist das Programm, das eine UNIX System hochfährt, also alles startet. Du hast nicht ein einzelnes Script sondern pro Dienst bzw. Einstellung ein Skript. Diese ganzen Skripte sind in "/etc/init.d". Da sollte dann auch das mrsystem Skript liegen. Dann kennt Linux verschiedene "Runlevel" (als singleuser system laufen, als multiuser laufen, ...) in die es booten kann. Für jeden dieser Runlevel gibt es ein Verzeichnis, das sind die "/etc/rc*.d" Verzeichnisse. Man legt nun einen symbolischen Link von /etc/init.d in das entsprechende Verzeichnis des Runlevels an. Dabei gilt noch folgende Konvention: Der Name des Links ist der Name des Skripts aus dem "/etc/init.d" Verzeichnis mit dem Prefix "Kxx" oder "Sxx". Das K bedeutet, daß das Skript mit dem Parameter "stop" aufgerufen wird, also kill für den Dienst. Das S steht für Start. Die zweistellige Nummer dient dazu, eine Reihenfolge festzulegen. Z.B. wird bei mir auf dem BBB zuerst CAN gestartet, bevor mrsystem gestartet wird.

Du kannst also mein Startskript nach "/etc/init.d" kopieren. Dann kannst du einfach schauen, welche Links du von "can2lan" findest und einen Link mit identischen Prefix für mein mrsystem Startskript anlegen. Der Link für "can2lan" muß dann entfernt werden. Oder du editierst "/etc/init.d/can2lan" und kommentierst den Start des Damons aus.

Wenn du damit aber nicht so vertraut bist, würde ich empfehlen, jemand mit entsprechender UNIX Erfahrung mit hinzuzuziehen.

Zitat von 4000K
Bei allem, was nun geht, ist es wieder ein Anreiz, damit zu spielen. Ich muss nur noch mehr Zeit dafür finden ... Schon mal vielen Dank an die Experten dafür, was sie erreicht haben.



Erst mal Danke, daß dir die Lösung an und für sich gefällt. Wie du vielleicht schon bemerkt hast, bist du aber auch zu einem Tester geworden. Aber ich möchte versuchen, die Fehler zu beheben, damit das ganze eine brauchbare Lösung ergibt.

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#54 von st-oldie , 06.01.2016 22:19

Hallo Gerd,

Zitat von bertr2d2
Ich meine, das ich den Effekt (CS2.exe meldet "kein Master gefunden") aber auch gesehen habe, wenn MS2 und Gleisbox schon lange ihre Daten miteinander ausgetauscht haben. Könntest Du in der FSM das nicht einbauen ?: MS2 ready - antworte auf Ping sofort.



Startest du meine Daemons eignetlich Verbose? Weil Kevin so schnell sich Traces anschauen konnte.

Wenn ja, könnte man es etwas verbessern, wenn man im "normalen Betrieb" die Ausgaben wegläßt.

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#55 von johnbobjamesson , 06.01.2016 23:57

Zitat

zumindest kann man mit BPi/Gleisbox +can2lan die Lok-Parameter auslesen und beschreiben. Sounds weiss ich nicht - Firmware-Update Lok-Deckoder anscheinend aber nicht (habe ich nur kurz getestet).

Gruß

Gerd



Sounds auch nicht, leider

Claudio


johnbobjamesson  
johnbobjamesson
RegionalExpress (RE)
Beiträge: 85
Registriert am: 24.04.2015


RE: MS2 und Beaglebone Black als Zentrale

#56 von bertr2d2 , 07.01.2016 00:09

Hallo,

Zitat von st-oldie
Hallo Kevin,

Zitat von 4000K
kurze Info zu meinem Stand: Ich hab mir Gerd's aktuelles Image (DHCP Client) von seiner Webseite runtergeladen, und auf meinem BPi gestartet. WLAN wieder konfiguriert. Nach dem Start den can2lan beendet
/etc/init.d/can2lan stop
und "mrsystem" gestartet:
/root/mrsystem.init start



Dauerhaft (ohne das can2lan Init-Skript zu löschen) geht das auch mit:

1
2
3
4
5
6
7
 

/etc/init.d/can2lan stop
/etc/init.d/can2lan disable
 
cp /root/mrsystem.init /etc/init.d/
/etc/init.d/mrsystem.init enable
 
 



Zitat von 4000K
- mrsystem.init start sollte alle nötigen Prozesse starten. Aber "mrcs2eth" lebt anscheinend nicht lang. Sprich: in einer "ps"-Liste taucht es nicht mehr auf. Wenn ich das aber von Hand nochmal starte, bleibt es am Laufen. Dann bekommt auch das Handy die Zentrale mit, und zeigt die Loks an. Ideen? Müssen vielleicht in mrsystem.init irgendwo ein paar sleep-Sekunden oder eine andere Reihenfolge wegen gegenseitiger Abhängigkeiten rein?


Ich habe ein neues Skript abgelegt - wird mit dem Paket installiert - siehe auch oben.

Zitat von st-oldie

Es muß tatsächlich zuerst die drehscheibe und danach alle anderen Programme gestartet werden. Aber da sollte eigentlich nach dem Start der drehscheibe schon eine Wartezeit drin sein. Es sei denn, Gerhard hat das geändert. Oder gibt es noch ein Problem mit dem Schließend des Ethernet sockets oder Beenden des can2lan von Gerhard? Wenn mrcs2eth nicht einen Socket auf dem von Märklin definierten Ethernet Port öffnen kann, beendet es sich auch von selbst.

can2lan muss und wird gestoppt - siehe oben.

Zitat von st-oldie

Wegen Copyright könne wir diese Bilder ja nicht beilegen.

So ist es - hier muss der Nutzer leider Hand anlegen.

Zitat von 4000K
- für mich Linux-Dummy: was ist das Äquivalent von autoexec.bat in Gerd's OpenWRT image, sprich: wo steht drin, welche Programme / Skripte beim Hochstarten gestartet werden? Wo lösche ich can2lan raus, wo schreibe ich mrsystem.init rein?


Zitat von st-oldie

Das geht etwas ins Eingemachte mit init und symlinks und runlevel. Ich versuche es mal möglichst einfach. Da du "/etc/init.d" hast, hast du ein System V init. Das init ist das Programm, das eine UNIX System hochfährt, also alles startet. Du hast nicht ein einzelnes Script sondern pro Dienst bzw. Einstellung ein Skript. Diese ganzen Skripte sind in "/etc/init.d". Da sollte dann auch das mrsystem Skript liegen. Dann kennt Linux verschiedene "Runlevel" (als singleuser system laufen, als multiuser laufen, ...) in die es booten kann. Für jeden dieser Runlevel gibt es ein Verzeichnis, das sind die "/etc/rc*.d" Verzeichnisse. Man legt nun einen symbolischen Link von /etc/init.d in das entsprechende Verzeichnis des Runlevels an. Dabei gilt noch folgende Konvention: Der Name des Links ist der Name des Skripts aus dem "/etc/init.d" Verzeichnis mit dem Prefix "Kxx" oder "Sxx". Das K bedeutet, daß das Skript mit dem Parameter "stop" aufgerufen wird, also kill für den Dienst. Das S steht für Start. Die zweistellige Nummer dient dazu, eine Reihenfolge festzulegen. Z.B. wird bei mir auf dem BBB zuerst CAN gestartet, bevor mrsystem gestartet wird.

Stimmt im Prinzip, aber unter OpenWRT ist es vereinfacht worden (man braucht nicht mehrere Run-Level).

Zitat


Du kannst also mein Startskript nach "/etc/init.d" kopieren. Dann kannst du einfach schauen, welche Links du von "can2lan" findest und einen Link mit identischen Prefix für mein mrsystem Startskript anlegen. Der Link für "can2lan" muß dann entfernt werden. Oder du editierst "/etc/init.d/can2lan" und kommentierst den Start des Damons aus.

Wenn du damit aber nicht so vertraut bist, würde ich empfehlen, jemand mit entsprechender UNIX Erfahrung mit hinzuzuziehen.

Die Installation ist einfach: Skript nach /etc/init.d/ kopieren und mit "/etc/init.d/<skript> enable" aktiviert (siehe oben).

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.545
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#57 von bertr2d2 , 07.01.2016 00:21

Hallo Michael,

Zitat von st-oldie
Hallo Gerd,

Zitat von bertr2d2
Ich meine, das ich den Effekt (CS2.exe meldet "kein Master gefunden") aber auch gesehen habe, wenn MS2 und Gleisbox schon lange ihre Daten miteinander ausgetauscht haben. Könntest Du in der FSM das nicht einbauen ?: MS2 ready - antworte auf Ping sofort.




BTW: Die 10 Sekunden Verzögerungen sehe ich z.T. immer noch. Werde ich mir nochmal genauer anschauen.

Zitat

Startest du meine Daemons eignetlich Verbose? Weil Kevin so schnell sich Traces anschauen konnte.

Nein - Kevin macht das selbstständig.

Zitat

Wenn ja, könnte man es etwas verbessern, wenn man im "normalen Betrieb" die Ausgaben wegläßt.


Ich sehe momentan keine Notwenigkeit dafür.

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.545
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#58 von st-oldie , 07.01.2016 15:04

Hallo Gerd,

Zitat von bertr2d2
BTW: Die 10 Sekunden Verzögerungen sehe ich z.T. immer noch. Werde ich mir nochmal genauer anschauen.



Da hab ich ja nichts gemacht. Da sollte sich nichts verändert haben.

Ich hab auch bei meinen Tests öfter gesehen, daß cs2.exe gemeldet hat, keine CS2 zu finden. Und dann den Emulator gestartet hat. Im Trace der mrzentrale sehe ich aber, daß der Ping empfangen und beantwortet wurde. Nach mehreren Versuchen (jeweils Neustart der cs2.exe) wurde dann doch eine CS2 gefunden. Das gleiche ist auch schon einem Benutzer einer realen CS2 geschehen. Deshalb vermute ich einen zu kurzen Timeout oin der cs2.exe.

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#59 von bertr2d2 , 07.01.2016 15:42

Hallo Michael,

Zitat von st-oldie

Ich hab auch bei meinen Tests öfter gesehen, daß cs2.exe gemeldet hat, keine CS2 zu finden. Und dann den Emulator gestartet hat. Im Trace der mrzentrale sehe ich aber, daß der Ping empfangen und beantwortet wurde.


[s]hast Du denn mal kontrolliert (z.B. mit "tcpdump -ni <int> port 80 or port 15730 or port 15731"), wann das Paket eintrifft und ob das Paket auch wirklich sofort versendet wird ? Da hab ich meine Zweifel. Denn bei allen Fehlversuchen, die ich beobachtet habe, sind immer genau 10 Sekunden im Netzwerkdump zu sehen, bis ein Ping-Antwortpaket gesendet wurde. Und immer wenn solche exakte Zeiten im Spiel sind ist irgendetwas im Busch.
Das riecht sehr stark nach einem Problem.[/s]

[s]Nachtrag:
@Kevin,

ich habe den einzelnen Komponenten (drehscheibe, mrzentrale etc. pp) noch eine Zeitstempel Funktion bei der Ausgabe hinzugefügt. Kannst Du mal bei Dir die BPI+Gleisbox und MS2 eine Minute laufen lassen, bevor Du die M*rklin App oder CS2.exe startest ? Zeitgleich wäre ein tcpdump (siehe oben) interessant. Wie sieht die Ausgabe bei Dir aus, wenn M*rklins Programme melden, das keine CS2 gefunden wurde ?[/s]

Nachtrag:
Sorry ops: , es ist alles in Ordnung - mrzentrale funktioniert einwandfrei. Ich habe ein Fehler in meinem Aufbau gehabt.

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.545
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#60 von st-oldie , 07.01.2016 20:43

Hallo Gerd,

Zitat von bertr2d2
hast Du denn mal kontrolliert (z.B. mit "tcpdump -ni <int> port 80 or port 15730 or port 15731"), wann das Paket eintrifft und ob das Paket auch wirklich sofort versendet wird ? Da hab ich meine Zweifel. Denn bei allen Fehlversuchen, die ich beobachtet habe, sind immer genau 10 Sekunden im Netzwerkdump zu sehen, bis ein Ping-Antwortpaket gesendet wurde. Und immer wenn solche exakte Zeiten im Spiel sind ist irgendetwas im Busch.
Das riecht sehr stark nach einem Problem.



Die 10 Sekunden, die du siehst, sind wahrscheinlich mein eigener Ping, den ich alle 10 Sekunden versende. Da ist nix im Busch, das ist genau so geplant. Von daher mußt du bei einem Netzwerktrace immer aufpassen, daß du die Antwort von mir nicht mit dem eigenen Ping verwechselt. Bist du sicher, daß es die Antwort war?

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#61 von st-oldie , 07.01.2016 20:48

Hallo Gerd,

Zitat von bertr2d2

Nachtrag:
Sorry ops: , es ist alles in Ordnung - mrzentrale funktioniert einwandfrei. Ich habe ein Fehler in meinem Aufbau gehabt.



Ups, hab zwischenzeitlich schon eine Antwort geschrieben, die die 10 Sekunden erklärt.

Ich bleibe aber erst mal dabei, daß der Timeout in der cs2.exe zu knapp bemessen ist. Denn bei meinen Tests (meine Daemons liefen mit Ausgaben) hat die cs2.exe auch nicht zuverlässig eine CS2 zu erkennen.

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#62 von st-oldie , 08.01.2016 23:18

Hallo Kevin,

ich hab jetzt zuerst mal alle Änderungen und auch eine Webconfig in mein System eingespielt. Jetzt kann ich mit dem aktuellen Stand "spielen".

Zitat von 4000K
- in der lokomotive.cs2 fehlt ein Eintrag. Ich meine, irgendwo hätte ich mal gelesen, dass die MS2 die Einträge etwas sonderbar/fehlerhaft meldet, und dass man von den zwei jeweils gemeldeten Loks nur die erste nehmen dürfe. Jedenfalls fehlt die Lok "151", aber in der "verbose"-Ausgaben von mrzentrale taucht mein "RegioShuttle" zweimal auf, in lokomotive ist "RegioShuttle" nur einmal drin, aber "151" fehlt. Könnt ihr Experten das bei euch auch nachvollziehen?



Nachdem ich mal eine korrupte Datenbank in der MS2 hatte, sehe ich einen ähnlichen Effekt. Ich hatte zwar die Lokliste komplett zurückgesetzt und die Loks wieder von Speicherkarten eingelesen. Seither sehe ich immer einen leeren Eintrag in der Lokliste. Ich deshalb jetzt mal die Lokliste genauer mit den in der MS2 abgespeicherten verglichen. Es fehlt auch bei mir eine Lok, das könnte aber auch der leere Eintrag sein.

Ich werde das mal näher untersuchen. Vielleicht hat es ja etwas mit deinem Problem zu tun.

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#63 von st-oldie , 10.01.2016 23:31

Hallo,

Zitat von 4000K
- in der lokomotive.cs2 fehlt ein Eintrag. Ich meine, irgendwo hätte ich mal gelesen, dass die MS2 die Einträge etwas sonderbar/fehlerhaft meldet, und dass man von den zwei jeweils gemeldeten Loks nur die erste nehmen dürfe. Jedenfalls fehlt die Lok "151", aber in der "verbose"-Ausgaben von mrzentrale taucht mein "RegioShuttle" zweimal auf, in lokomotive ist "RegioShuttle" nur einmal drin, aber "151" fehlt. Könnt ihr Experten das bei euch auch nachvollziehen?



Ich hab den Fehler gefunden. Es war eine falsch aufgebaute CAN Nachricht beinm Afragen der Loknamen. Jetzt muß man mal sehen, wann Gerd ein neues Image für dich mit der Änderung macht.

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#64 von bertr2d2 , 10.01.2016 23:44

Hallo,

Zitat von st-oldie
Hallo,

Zitat von 4000K
- in der lokomotive.cs2 fehlt ein Eintrag. Ich meine, irgendwo hätte ich mal gelesen, dass die MS2 die Einträge etwas sonderbar/fehlerhaft meldet, und dass man von den zwei jeweils gemeldeten Loks nur die erste nehmen dürfe. Jedenfalls fehlt die Lok "151", aber in der "verbose"-Ausgaben von mrzentrale taucht mein "RegioShuttle" zweimal auf, in lokomotive ist "RegioShuttle" nur einmal drin, aber "151" fehlt. Könnt ihr Experten das bei euch auch nachvollziehen?



Ich hab den Fehler gefunden. Es war eine falsch aufgebaute CAN Nachricht beinm Afragen der Loknamen. Jetzt muß man mal sehen, wann Gerd ein neues Image für dich mit der Änderung macht.



... sobald ich Zugriff auf den Source-Code habe

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.545
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#65 von st-oldie , 11.01.2016 22:17

Hallo Gerd,

Zitat von bertr2d2

Zitat von st-oldie
Ich hab den Fehler gefunden. Es war eine falsch aufgebaute CAN Nachricht beinm Afragen der Loknamen. Jetzt muß man mal sehen, wann Gerd ein neues Image für dich mit der Änderung macht.


... sobald ich Zugriff auf den Source-Code habe




Ja wenn das so ist. Der Bugfix ist schon mal auf den Weg zu dir.

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#66 von bertr2d2 , 12.01.2016 11:02

Hallo Michael,

Zitat von st-oldie
Hallo Gerd,

Zitat von bertr2d2

Zitat von st-oldie
Ich hab den Fehler gefunden. Es war eine falsch aufgebaute CAN Nachricht beim Afragen der Loknamen. Jetzt muß man mal sehen, wann Gerd ein neues Image für dich mit der Änderung macht.


... sobald ich Zugriff auf den Source-Code habe



Ja wenn das so ist. Der Bugfix ist schon mal auf den Weg zu dir.



vielen Dank für den "Patch". Es scheint mir aber nur der eine Fehler mit den Loknamen gefixt zu sein, dieser aber nicht:

Zitat von st-oldie

Das Problem ist auch erledigt. Ich hab den Iterator mit seiner Create Funktion dynamisch angelegt, aber nicht mit seiner Destroy Funktion wieder freigegeben. Aber die bessere Lösung ist es, den Iterator als lokale Variable anzulegen statt dynamisch mit der Create Funktion. Das hab ich auch (bei mir) umgebaut.


Oder irre ich mich da ?

@Kevin,

ich habe Dir ein neues Image gebacken, inclusive der Tools die Du haben wolltest: joe, nano, diff und den Aliasen ll und la.
In dem Image ist aber immer noch can2lan default; Du musst das Start-Skript wie gehabt kopieren und aktivieren und can2lan deaktivieren.
Ich sehe aber ein paar Probleme mit Michaels Code und der OpenWRT+musl/BPi Kombination. Es läuft IMHO nicht so rund, wie es sein sollte. Ich würde Dir empfehlen, auf ein BeagleBone Black umzusteigen. So kannst Du auch direkt ggf. Fehler an Michael adressieren und musst nicht auf ein Image / Bin-Paket von mir warten.
Das BPi kannst Du sicherlich verkaufen und Dein finanzieller Schaden sollte sich damit in Grenzen halten. Ggf wird durch die bald erhältliche BPi-Adapter Platine der Interessenkreis auch etwas ansteigen und der Verkauf etwas einfacher werden.

Gruß

Gerd

PS.: Hier liegt das einzelne neue mrsystem Paket und das alte mrsystem Paket - wenn Du ggf. wieder das alte haben möchtest.


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.545
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#67 von st-oldie , 13.01.2016 12:52

Hallo Gerd,

Zitat von bertr2d2
vielen Dank für den "Patch". Es scheint mir aber nur der eine Fehler mit den Loknamen gefixt zu sein, dieser aber nicht:

Zitat von st-oldie

Das Problem ist auch erledigt. Ich hab den Iterator mit seiner Create Funktion dynamisch angelegt, aber nicht mit seiner Destroy Funktion wieder freigegeben. Aber die bessere Lösung ist es, den Iterator als lokale Variable anzulegen statt dynamisch mit der Create Funktion. Das hab ich auch (bei mir) umgebaut.


Oder irre ich mich da ?




Stimmt, die Datei ist nicht dabei. Das wäre ein anderer Daemon. Aber wenn das jetzt läuft, pack ich mal wieder ein komplettes Päckchen zusammen.

Zitat von bertr2d2
Ich sehe aber ein paar Probleme mit Michaels Code und der OpenWRT+musl/BPi Kombination. Es läuft IMHO nicht so rund, wie es sein sollte.



Immerhin hat es noch Fehler aufgedeckt. Was läuft denn deiner Meinung nach nicht os rund wie du es gern hättest?

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#68 von bertr2d2 , 13.01.2016 18:01

Hallo Michael,

Zitat von st-oldie
Hallo Gerd,

Zitat von bertr2d2
Ich sehe aber ein paar Probleme mit Michaels Code und der OpenWRT+musl/BPi Kombination. Es läuft IMHO nicht so rund, wie es sein sollte.



Immerhin hat es noch Fehler aufgedeckt. Was läuft denn deiner Meinung nach nicht os rund wie du es gern hättest?



es ist schwierig, meine Behauptung mit Fakten zu belegen. Ich weiss, das musl u.U. sehr zickig ist, was die Compilierung betrifft. Zudem wird interne einiges anders gemacht.
Ich habe des öfteren beobachtet, das CS2.exe keine "CS2 gefunden" meldet. Da muss ich die Sache oben re-revidieren. Das scheint bei Dir nicht so häufig zu sein.

Was ich zudem beobachte sind diese mysteriösen Pakete ("Chinesischer Geheimdienst"), die ich Dir bereits gemailt habe:

1
 
17:37:22.721095 IP 192.168.0.159.15731 &gt; 114.105.102.121.15730: UDP, length 13
 


Ich habe mal im Source Code nach Ascii 114.105.102.121 (rify) gegrept und alle in Frage kommenden rify's getauscht:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
--- a/mrsystem/src/libs/mr_can/trace.c
+++ b/mrsystem/src/libs/mr_can/trace.c
@@ -160,15 +160,15 @@ void MrCs2Trace(MrCs2CanDataType *CanMsg)
{
case 6:
MrCs2DecMfxVerify6(CanMsg, &amp;Uid, &amp;s1);
- printf("MFX Verify (Uid = 0x%lx, Sid = 0x%x)n", Uid, s1);
+ printf("MFX Vebern (Uid = 0x%lx, Sid = 0x%x)n", Uid, s1);
break;
case 7:
MrCs2DecMfxVerify7(CanMsg, &amp;Uid, &amp;s1, &amp;p2);
- printf("MFX Verify (Uid = 0x%lx, Sid = 0x%x, Ask = %d)n",
+ printf("MFX Vebern (Uid = 0x%lx, Sid = 0x%x, Ask = %d)n",
Uid, s1, p2);
break;
default:
- puts("MFX Verify (unknown parameter)");
+ puts("MFX Vebern (unknown parameter)");
break;
}
break;
 


Nach der Änderung sehe ich:

1
 
17:41:52.703746 IP 192.168.0.159.15731 &gt; 98.101.114.110.15730: UDP, length 13
 


98.101.114.110 -> bern

Das printf ist natürlich nicht das Problem - aber in cs2eth.c ist noch der Wurm drin, zumindest für musl.
Jetzt solls aber wirklich genug von meiner Seite sein ...

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.545
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#69 von st-oldie , 16.01.2016 10:44

Hallo Gerd,

Zitat von bertr2d2
es ist schwierig, meine Behauptung mit Fakten zu belegen. Ich weiss, das musl u.U. sehr zickig ist, was die Compilierung betrifft. Zudem wird interne einiges anders gemacht.



Ja dann ist es doch eher gut, das du meine Software auch übersetzt. Mit unterschiedlichen Systemen und unterschiedlichen Daten lassen sich leichter Fehler aufdecken.,

Zitat von bertr2d2
Ich habe des öfteren beobachtet, das CS2.exe keine "CS2 gefunden" meldet. Da muss ich die Sache oben re-revidieren. Das scheint bei Dir nicht so häufig zu sein.



Das hab ich beim Testen, also wenn meine Software mit Ausgaben läuft, auch schon gesehen. Allerdings nicht weiter verfolgt, weil es beim nächsten Versuch funktionierte und auch mit dem Märklin Apps noch kein Problem fetstellbar war. Ich benutze aber die cs2.exe möglichst wenig, da ich dafür immer Netzwerkinterfaces deaktivieren muß. Das ist nervig

Zitat von bertr2d2

Was ich zudem beobachte sind diese mysteriösen Pakete ("Chinesischer Geheimdienst"), die ich Dir bereits gemailt habe:

1
 
17:37:22.721095 IP 192.168.0.159.15731 &gt; 114.105.102.121.15730: UDP, length 13
 


Ich habe mal im Source Code nach Ascii 114.105.102.121 (rify) gegrept und alle in Frage kommenden rify's getauscht:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
--- a/mrsystem/src/libs/mr_can/trace.c
+++ b/mrsystem/src/libs/mr_can/trace.c
@@ -160,15 +160,15 @@ void MrCs2Trace(MrCs2CanDataType *CanMsg)
{
case 6:
MrCs2DecMfxVerify6(CanMsg, &amp;Uid, &amp;s1);
- printf("MFX Verify (Uid = 0x%lx, Sid = 0x%x)n", Uid, s1);
+ printf("MFX Vebern (Uid = 0x%lx, Sid = 0x%x)n", Uid, s1);
break;
case 7:
MrCs2DecMfxVerify7(CanMsg, &amp;Uid, &amp;s1, &amp;p2);
- printf("MFX Verify (Uid = 0x%lx, Sid = 0x%x, Ask = %d)n",
+ printf("MFX Vebern (Uid = 0x%lx, Sid = 0x%x, Ask = %d)n",
Uid, s1, p2);
break;
default:
- puts("MFX Verify (unknown parameter)");
+ puts("MFX Vebern (unknown parameter)");
break;
}
break;
 


Nach der Änderung sehe ich:

1
 
17:41:52.703746 IP 192.168.0.159.15731 &gt; 98.101.114.110.15730: UDP, length 13
 


98.101.114.110 -> bern

Das printf ist natürlich nicht das Problem - aber in cs2eth.c ist noch der Wurm drin, zumindest für musl.




Das printf ist es mit Sicherheit nicht, noch dazu wo der Code überhaupt nicht ausgeführt wird, wenn du das mrcs2eth nicht auch noch mit Traces startest. Außerdem ist das ja eine Stringkonstante. Die kann nicht so einfach Speicher überschreiben. Ich denke, mit der Suche, wo der Speicherinhalt herkommt, läufst du in eine Sackgasse. Interessanter ist wohl der Teil, der diese CAN Nachricht über UDP verschickt. Da werde ich mal ein paar Ausgaben machen.

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#70 von bertr2d2 , 16.01.2016 11:46

Hallo Michael,

Zitat von st-oldie

Das printf ist es mit Sicherheit nicht, noch dazu wo der Code überhaupt nicht ausgeführt wird, wenn du das mrcs2eth nicht auch noch mit Traces startest. Außerdem ist das ja eine Stringkonstante. Die kann nicht so einfach Speicher überschreiben. Ich denke, mit der Suche, wo der Speicherinhalt herkommt, läufst du in eine Sackgasse.

Die Suche, wo der Speicherinhalt her kommt, ist natürlich ohne Belang. Soviel Programmierkenntnisse habe ich auch
Der Test sollte zeigen, das der Fehler systematisch ist; d.h. er tritt immer wieder auf und bemerkenswerter Weise wird der gleiche Speicherbereich wieder verwendet.
Da das UDP Paket ohne zu tun von außen aus Deinen Programmen generiert wird, würde ich mal schauen, ob evt. in der Initialisierung (UDP Client-Liste ?) etwas nicht stimmt. Platt ausgedrückt: Dein System denkt, das 114.105.102.121 bzw. 98.101.114.110 ein Client ist.
Es würde mich nicht wundern, wenn mit der Behebung dieses Bugs auch die Fehler "CS2 nicht gefunden" der Vergangenheit angehören.

Zitat
Interessanter ist wohl der Teil, der diese CAN Nachricht über UDP verschickt. Da werde ich mal ein paar Ausgaben machen.


Na, das klingt ja nach einem Plan

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.545
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#71 von st-oldie , 16.01.2016 15:47

Hallo Gerd,

Zitat von bertr2d2
Die Suche, wo der Speicherinhalt her kommt, ist natürlich ohne Belang. Soviel Programmierkenntnisse habe ich auch
Der Test sollte zeigen, das der Fehler systematisch ist; d.h. er tritt immer wieder auf und bemerkenswerter Weise wird der gleiche Speicherbereich wieder verwendet.



Genau diese Systematik war aber gerade nicht zu erwarten. Und hilft leider auch nicht weiter. Ich fürchte fast, daß es einen Zusammenhang zwischen dem vorgefunden Wert und der Entwicklungsumgebung gibt. Du hast im Prinzip nur nachgewiesen, daß es einen Zusammenhang zu meinem Programm gibt. Mehr kann man mit den Informationen leider nicht anfangen.

Zitat von bertr2d2
Da das UDP Paket ohne zu tun von außen aus Deinen Programmen generiert wird, würde ich mal schauen, ob evt. in der Initialisierung (UDP Client-Liste ?) etwas nicht stimmt. Platt ausgedrückt: Dein System denkt, das 114.105.102.121 bzw. 98.101.114.110 ein Client ist.



Ich würde nicht erwarten, daß es die Verwaltung der Clients an sich ist. Das riecht eher nach Problemen mit der Initialisierung der Strukturen für die socket Programmierung. Das hatte ich dir auch schon als möglichen Fehler gemailt. Wobei es natürlich einen gewissen Zusammenhang mit den Strukturen und der Verwaltung der Clients gibt.

Zitat von bertr2d2
Es würde mich nicht wundern, wenn mit der Behebung dieses Bugs auch die Fehler "CS2 nicht gefunden" der Vergangenheit angehören.

Zitat
Interessanter ist wohl der Teil, der diese CAN Nachricht über UDP verschickt. Da werde ich mal ein paar Ausgaben machen.


Na, das klingt ja nach einem Plan




Wenn du nicht die letzte Zeit mir diverse Patches geschickt hättest, die nur Warnings beheben, hätte ich auch schon früher daran gehen können. Da muß man auch mal Prioritäten setzen und zuerst den Fehlern Aufmerksamkeit schenken statt unwichtige Warnings zu beheben. Ich bin seit einer Woche wieder auf der Arbeit und hab deshalb nicht mehr die Zeit, das alles parallel anzugehen.

Welchen Modus für UDP verwendet du denn? Hast du in der Konfigdatei "/etc/mrsystem" einen Eintrag für "broadcast" gemacht? Oder hast du als Kommandozeilenparameter -b" übergeben? Vielleicht verwendest du dadurch einen anderen Modus als ich, so daß mir evtl. vorhandenen Probleme noch unbekannt sind.

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#72 von st-oldie , 16.01.2016 22:59

Hallo Gerd,

Zitat von bertr2d2
Da das UDP Paket ohne zu tun von außen aus Deinen Programmen generiert wird, würde ich mal schauen, ob evt. in der Initialisierung (UDP Client-Liste ?) etwas nicht stimmt. Platt ausgedrückt: Dein System denkt, das 114.105.102.121 bzw. 98.101.114.110 ein Client ist.
Es würde mich nicht wundern, wenn mit der Behebung dieses Bugs auch die Fehler "CS2 nicht gefunden" der Vergangenheit angehören.



Na dann würde ich mich jetzt an deiner Stelle mal anfangen zu wundern.

Ich hab jetzt etwas getract und mit den Pings rumgespielt. Damit die cs2.exe zuverlässiger eine CS2 findet, muß ich nach dem Emfang des Ping der cs2.exe (mit der ich eine cs2.exe als Teilnehmer erkenne) selbst einen ping request zur Abfrage aller Teilnehmer versenden. Es handelt sich also nicht um einen Programmierfehler der Art wie du vermutest sondern um ein Problem im Ablauf aufgrund mangelnder Doku von Märklin. Und evtl. schlechter Implementierung von Märklin. Denn ich würde als cs2.exe einen ping request schicken, um abzufragen ob eine CS2 vorhanden ist. Du hast ja selbst gesehen, daß nach meine periodischen Ping die cs2.exe eine CS2 gefunden hat.

Damit scheint bei mir nach den bisherigen Tests die cs2.exe zuverlässiger eine CS2 zu finden.

Das Problem mit der falschen Zieladresse für das UDP Paket ist damit nicht gefunden. Das ist ein anderes Problem. Und eines, das ich nicht nachvollziehen kann. Bei mir sehe ich kein solches Paket. Wobei wir bei der noch offenen Frage wären, was du als broadcast gesetzt hast. Das wären nämlich zwei etwas unterschiedliche Verhalten der Software.

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#73 von st-oldie , 14.02.2016 23:16

Hallo,

ich hab mal eine neue Version meiner Software online gestellt. Es sind die folgenden Änderungen eingebaut:

- diverse Fehler behoben, inklusive der hier im Thread aufgeführten.
- die aktuelle Webconfig, die mir mein Kollege zur Verfügung gestellt hat, integriert
- wird die Software mit dem Wert 0 für den Parameter "zentrale" gestartet (Proxy Mode), werden die cs2 Dateien automatisch angefordert, wenn eine cs2.exe als Master gefunden wird. Ein manueller Upload vom PC zu dem Minicomputer ist nicht mehr nötig. Damit ähnelt die Software mehr einer Slave cs2

Da das noch nicht so deutlich kommuniziert wurde. Die Software kennt 2 Betriebsmodi:

- zentrale=0
Hier leitet die Software alle CAN Nachrichten durch, es werden nicht die Loks einer MS2 abgefragt. Es werden die cs2 Dateien einer cs2.exe abgefragt, wenn eine gefunden wird. Damit verhält sich die Software ähnlich einer Slave cs2. In diesem Modus kann die Software auch can2lan bzw. can2udp ersetzen. Allerdings hab ich noch nicht weiter mit diesem Modus rumgespielt, da ich andere Anforderungen habe.

- zentrale=1
Hier fragt die Software die Loks von einer MS2 ab, ist also quasi eine Erweiterung der MS2 um einen Ethernet Anschluß. Die cs2 Dateien werden auf Abfrage an eine cs2.exe ausgeliefert. Dieser Mode ähnelt damit einer Master cs2

Tschüß
Michael


st-oldie  
st-oldie
InterRegioExpress (IRE)
Beiträge: 458
Registriert am: 22.12.2009
Homepage: Link
Ort: Friedberg (Hessen)
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Märklin Systems
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#74 von bertr2d2 , 06.03.2016 15:57

Hallo Michael,

vielen Dank für Dein neues Update. Du hast viele neue Features eingebaut - Chapeau ! Ich bin leider bisher nicht dazu gekommen, Deine Software auf dem BPi zu integrieren. Ich habe es mir schon angeschaut, aber insbesondere der Web-Teil erschwert die Integration in das BPi-Image etwas.

Ich glaube, das die Zeit für eine alte Idee reif ist:
http://forum.rocrail.net/viewtopic.php?f=94&t=6023
Eine BBB-Aufsatzplatine, wie die BPi Platine, die einen günstigen Einstieg in die digitale Welt ermöglicht. Aber der BB-Black bzw BB-Green hat neben unzähligen Schnittstellen (z.B. 2xCAN) ein sehr interessantes Feature: die zwei unabhängig laufenden Realzeitkerne. Hiermit könnte man sogar noch einen Schritt weiter gehen: der Ersatz des GFPs sprich Gleisbox ! D.h. der BBB stellt nicht nur das Interface zum CAN dar, sondern generiert die Gleisdaten incl. mfx-Rückmeldung.

Zudem könnte man noch I2C, S88, RS485 und Loconet mit integrieren. Dabei stelle ich mir so vor:
- günstiger und einfache Einstieg mit CAN und Gleisbox und Deiner Software
- verschiedene Schnittstellen wie I2C, Loconet, RS232, RS485, und S88 als Option
- Booster Ausgang vorgesehen für späteren Ersatz der Gleisbox

Es geht nicht darum, den BPi zu ersetzen. Der BPi mit der Aufsteckplatine wird sozusagen das Einstiegsmodell, während der BBB bzw BBG das Luxus-Modell darstellen wird.

Ich kann das Layout entwerfen und günstig fertigen lassen, wenn Interesse besteht.

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.545
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: MS2 und Beaglebone Black als Zentrale

#75 von MTB-Ontour , 06.03.2016 22:53

Hi, Gerd,
das klingt ja noch mal 'ne Nummer besser, als das, was Ihr bisher schon geleistet habt!

Wenn es um Tests etc. geht, bin ich natürlich dabei. Gut, wenn es ein UserInterface für LinuxDummies gibt, denn da hängt es bei mir als Fensterer immer.

LG

Micha


MTB-Ontour  
MTB-Ontour
InterRegio (IR)
Beiträge: 208
Registriert am: 28.05.2007
Gleise C/K-Gleis


   

Brems-Automatik im Schattenbahnhof...jetzt mit Arduino / Prototyp fertig
Verlängerung für MS 2 ?

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz