"Keine Antwort von Master" - mgbox und mcs2

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby jumbo-44 » 01.10.2018, 16:39

Moin Bert, Gerd und Rob (und alle Mitleser),

am Wochenende war leider weniger Zeit als gehofft, ich konnte meine Versuche aber mit Einschränkungen fortsetzen.

Die Ergebnisse:
  • mit angeschlossener Gleisbox steht die Schnittstelle 'ttyUSB0' wieder zur Verfügung, und mit dieser 'richtigen' Schnittstelle findet rocrail auch die Gleisbox und MS2 wieder - der Fehler ist vom Tisch!
  • nicht vom Tisch sind leider die Zugriffsprobleme auf die Lokliste von rocrail
    Code: Select all
    20180928.182928.950 r9999E gbxreade OMCS2    3594 INVALID packet; command value: CAN-ID=0xFF

    Früher oder später geht die Verbindung von der MS2 zur rr-Lokliste verloren, egal ob mit 'MGBOX' und ohne (3) oder mit mfx-Erkennung oder mit 'MCS2'(5)
    (die Nummern beziehen sich auf die angehängten trace-Dateien).

Was mir gerade einfällt: eine ganze Reihe von Loks habe ich zwar bereits in rr erfaßt, allerdings (da immer noch in Umzugskartons ruhend) ohne Digitaladresse. Kann sich die Kommunikation MS2 <-> rocrail vielleicht daran verschlucken? Ich werde es morgen testen.

Falls Ihr noch andere Hinweise habt, denen ich nachgehen kann - herzlich gerne, denn ich wäre den Fehler wirklich gerne los!

Besten Dank und regnerische Grüße,
Mark
You do not have the required permissions to view the files attached to this post.
Meine Baustelle
H0-Wechselstrom - rocrail auf Linux Mint (18.3) - GleisboxUSB - rocnet
jumbo-44
 

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby woodyboy » 01.10.2018, 19:42

Hallo Mark,

Soweit bekannt, unterstützt die MCS2-Bibliothek nicht den Locolist von der MS2 zu lesen. Das Testen dieser Funktion mit MCS2 ist daher nutzlos.
Aber der Fehler ist immer noch derselbe mit MGBOX. Es scheint, dass der Rocrails-Leser-Thread ein unvollständiges Ascii-Paket empfängt.

Code: Select all
20180928.182928.939 r0000B gbxreade (null)   *trace dump( 0xFC23FAA0: length=13 )
    offset:   00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |ASCII...........|
    --------------------------------------------------------- |----------------|
    00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00          |.............   |
20180928.182928.950 r9999c gbxreade OMCS2    3371 ASCII message: 402F6386C6F6B6E616D656E
20180928.182928.950 r0000E gbxreade (null)   *trace dump( 0xFC23FAA0: length=13 )
    offset:   00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |ASCII...........|
    --------------------------------------------------------- |----------------|
    00000000: 00 FF 00 00 00 00 00 00 00 00 00 00 00          |.............   |
20180928.182928.950 r9999E gbxreade OMCS2    3594 INVALID packet; command value: CAN-ID=0xFF
20180928.182928.961 r9999B gbxreade OMCS2    3511 ASCII read: T00402F6383136203200000000
20180928.182928.961 r9999B gbxreade OMCS2    3386 ASCII to bin: len=8
20180928.182928.961 r0000B gbxreade (null)   *trace dump( 0xFC23FAA0: length=13 )
    offset:   00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |ASCII...........|
    --------------------------------------------------------- |----------------|
    00000000: 00 40 2F 63 08 31 36 20 32 00 00 00 00          |.@/c.16 2....   |
20180928.182943.157 r9999B gbxreade OMCS2    3511 ASCII read: T00402F6386C6F6B6E616D656E
20180928.182943.157 r9999B gbxreade OMCS2    3386 ASCII to bin: len=8


die Zeile behandelt von Quellcodezeile 3371:
Code: Select all
20180928.182928.950 r9999c gbxreade OMCS2    3371 ASCII message: 402F6386C6F6B6E616D656E
 

wird von einer Ausnahmeroutine für ein ungültiges Paket empfangen in logdatei geschrieben.

Derselbe Inhalt wird 200ms später korrekt behandelt. Es scheint, als ob eine Neuübertragung stattgefunden hätte.

Es tut mir leid, aber ich kann die Quelle der ungültigen Pakete nicht erklären.

Vielleicht können Sie es mit etwas mehr Zeit zwischen den Anfragen von der MS2 versuchen. Zu dieser Zeit habe ich kein Setup, um zu testen, was passiert, wenn die MS2 Informationen empfängt und der Benutzer bereits nach einem neuen Loknamen fragt.
Regards,

Bert

Equipment: Roco WLANMaus, MS2, Gleisbox 2x(separated switch & rollingstock). Ubuntu 16. Edits booster. Arduino: S88 CANbus interface & Ethernet-CANbus gateway
woodyboy
 

Re: "Keine Antwort von Master" - mgbox

Postby jumbo-44 » 08.10.2018, 11:23

Moin Bert, Gerd und Rob,

gestern konnte ich wieder testen.
Fazit:
der Fehler
Code: Select all
INVALID packet; command value: CAN-ID=0xFF

tritt weiterhin auf.

im Detail:
  • alle Loks erhielten eine Digitaladresse
  • Blättern durch die Master-Lokliste in Sekundenschritten (also wirklich seeehr langsam)
  • im ersten angehängten Trace konnte ich sogar die gesamte Lokliste durchblättern; bei dem Versuch, eine Lok zu übernehmen, kam dann die MS2-Fehlermeldung "keine Antwort vom Master"
  • im zweiten Trace war die MS2 nicht angeschlossen (also Gleisbox 'Standalone'); auch hier trat nach einiger Zeit und wiederholt der Fehler [INVALID packet] auf; ein Zusammenhang mit dem Zugriff auf eine bestimmte Lok war für mich nicht erkennbar

Alles sehr rätselhaft und unbefriedigend.

Einen guten Start in die Woche,
Mark
You do not have the required permissions to view the files attached to this post.
Meine Baustelle
H0-Wechselstrom - rocrail auf Linux Mint (18.3) - GleisboxUSB - rocnet
jumbo-44
 

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby rjversluis » 08.10.2018, 12:44

Moin,

Die Gleisbox ist per USB-Interface (bertr2d2) angebunden.

Gibt es da ein Link? Serielles Protokoll wie CC-Schnitte?
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby bertc3p0 » 08.10.2018, 16:17

Hi Rob,
rjversluis wrote:Moin,

Die Gleisbox ist per USB-Interface (bertr2d2) angebunden.

Gibt es da ein Link? Serielles Protokoll wie CC-Schnitte?

nein, das ist ein anderes Protokoll - SLCAN. Die API verwendet ein eindeutiges Trennzeichen (\r) um einzelne Frames zu trennen.

Die Firmware basiert auf Darron Broads CAN-CAN Code:
https://wiki.kewl.org/dokuwiki/projects:can-can
http://hg.kewl.org/pub/can-can/

Ich habe den Code genommen und ein wenig Märklin Modellbahn spezifisches hinzugefügt:
https://github.com/GBert/misc/tree/mast ... c-firmware

Keine Software ist perfekt. Aber insbesondere Darron und auch ein wenig ich haben den Code ausgiebig getestet. Darron hat mit dem CAN-CAN Code alle Register gezogen um performanten und kompakten Code zu erzeugen.
Die Firmware würde auch mit einem Zehntel des Prozessortaktes ausreichend schnell laufen.

@Mark,
Ich bin immer noch im Urlaub :mrgreen: Wenn ich nächsten Montag zurück bin werde ich Dein mir genauer anschauen.

Gruß

Gerd
bertc3p0
 

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby jumbo-44 » 08.10.2018, 17:50

Danke Euch beiden,
und Gerd, Deinen Urlaub soll mein Problem selbstverständlich nicht stören! Ich freue mich und bin Dir dankbar, wenn Du es danach noch Mal versuchst.

Grüße,
Mark
Meine Baustelle
H0-Wechselstrom - rocrail auf Linux Mint (18.3) - GleisboxUSB - rocnet
jumbo-44
 

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby woodyboy » 12.10.2018, 19:22

Hallo,

Gestern habe ich versucht, das ungültige paket mysterium zu untersuchen. Die ungültigen Pakete sind jedoch das Ergebnis eines ungültigen empfangenen Pakets. Das Paket wird fallengelassen und in der Rocrail ascii zu bin-Translation auf diese Weise markiert. Soweit ich es verstanden habe, ist es aufgrund eines Pakets ohne das 'T'-Präfix und ein oder mehrere fehlende ASCII-Zeichen. Suchen Sie in den Logfiles nach: "ASCII-message:" Diese Zeile zeigt den Inhalt eines ungültigen empfangenen Pakets an.

Btw Mark, es scheint, du hast nicht die letzte Version installiert. Bitte seien Sie so freundlich, eine neue Version von Rocrail zu installieren.
Last edited by woodyboy on 13.10.2018, 17:20, edited 1 time in total.
Regards,

Bert

Equipment: Roco WLANMaus, MS2, Gleisbox 2x(separated switch & rollingstock). Ubuntu 16. Edits booster. Arduino: S88 CANbus interface & Ethernet-CANbus gateway
woodyboy
 

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby jumbo-44 » 12.10.2018, 21:09

Guten Abend Bert,

das mit den Logfiles versuche ich nachzuvollziehen.
Neueste Version installiere ich am Wochenende, dann neue Tests.

Mit der aktuell installierten Version habe ich das Problem, daß rocview die Verbindung zum Server verliert wenn keine Gleisbox angeschlossen ist. Rocview friert dann auch ein und kann nur über den Taskmanager beendet werden.

Dieses Problem besteht nicht, wenn ich eine ältere Version installiere (Versionsnummer kann ich bei Bedarf nachreichen). Allerdings werden auch hier die fehlerhaften ASCII-Pakete angezeigt. Und auch hier geht die Verbindung zwischen MS2 und Rocview beim Zugriff auf die Lokliste verloren.

Schönen Abend,
Mark

EDIT: Trace-Datei ergänzt
You do not have the required permissions to view the files attached to this post.
Last edited by jumbo-44 on 13.10.2018, 16:04, edited 1 time in total.
Meine Baustelle
H0-Wechselstrom - rocrail auf Linux Mint (18.3) - GleisboxUSB - rocnet
jumbo-44
 

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby rjversluis » 13.10.2018, 10:40

Hi Mark,

ohne Verbindung stürzt der mgbox library ab.
Ich habe diese Absturz in 14465 behoben.

Bitte die Übliche Dateien anhängen so dass man damit testen kann.
https://wiki.rocrail.net/doku.php?id=issue-de
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby rjversluis » 13.10.2018, 11:26

Hi Bert,

anstatt diese übele HASH kann man es auch so verwenden:
1.2.4 Hash
Der Hash erfüllt eine Doppelfunktion:
Primär dient er zur Kollisionsauflösung der Meldungen und zur Sicherstellung der Kollisionsfreiheit zum CS1 Protokoll.
Sekundär kann er die Folgenummer einer Datenübertragung beinhalten.

Märklin verwendet der CANID nicht conform das CAN Protokoll; Der CANID sollte für jede Teilnehmer im Netz unique sein und keine Kommandos enthalten.
Und CANID==0xFF ist IMHO nicht unzulässig.
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby bertc3p0 » 13.10.2018, 12:02

Hallo Rob,
rjversluis wrote:Hi Bert,

anstatt diese übele HASH kann man es auch so verwenden:
1.2.4 Hash
Der Hash erfüllt eine Doppelfunktion:
Primär dient er zur Kollisionsauflösung der Meldungen und zur Sicherstellung der Kollisionsfreiheit zum CS1 Protokoll.
Sekundär kann er die Folgenummer einer Datenübertragung beinhalten.

Märklin verwendet der CANID nicht conform das CAN Protokoll; Der CANID sollte für jede Teilnehmer im Netz unique sein und keine Kommandos enthalten.
Und CANID==0xFF ist IMHO nicht unzulässig.

die CANID 0xFF kommt bei Märklin auch nicht vor. Der Wert „entsteht“ durch einen Fehler bzw. aus einer Kombination von Fehlern. Die Ursache kann ich erst ab Montag ergründen.

Gruß

Gerd
bertc3p0
 

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby woodyboy » 13.10.2018, 12:27

Hallo Rob,

Danke für fixing mgbox. Gerd hat es bereits beantwortet, Märklin missbraucht die CAN-ID für Befehle. Technisch ist 0xFF erlaubt, nur für 0xFF ist kein Befehl definiert. Deshalb habe ich es in der Zeit, in der ich wirklich verrückt von den CC-SChnitte-Problemen war, als ungültig definiert. Ich habe versucht, das angewandte Protokoll so zu erklären, dass alle undefinierten Kombinationen als Fehler gemeldet werden. Dann wird jeder auf die richtige Spur in die Richtung gebracht, in der das Problem verursacht wird.

Sekundär kann er die Folgenummer einer Datenübertragung beinhalten.

Zum Beispiel wird die zweite Situation verwendet, falls die Kanalkonfiguration beantwortet wird. (__evaluateMCS2StatusConfig)
Regards,

Bert

Equipment: Roco WLANMaus, MS2, Gleisbox 2x(separated switch & rollingstock). Ubuntu 16. Edits booster. Arduino: S88 CANbus interface & Ethernet-CANbus gateway
woodyboy
 

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby jumbo-44 » 13.10.2018, 16:03

Hallo Rob,
rjversluis wrote:ohne Verbindung stürzt der mgbox library ab.
Ich habe diese Absturz in 14465 behoben.

kannst Du den letzten Build bitte wieder für Ubuntu 16.04 kompilieren? Mein Mint 18 läuft auf dieser Basis.

rjversluis wrote:Bitte die Übliche Dateien anhängen so dass man damit testen kann.
https://wiki.rocrail.net/doku.php?id=issue-de

Die Funktionalität 'Problemfall' habe ich bislang übersehen - shame on me!
Die Trace-Datei meines letzten Tests hänge ich an meinen letzten Post an.
Den Test mit dem neuen Build dokumentiere ich dann über 'Problemfall'.

Ich verstehe von allem, was Ihr Euch da schreibt nur Bahnhof. Danke für Eure Mühen!!!

Gruß,
Mark
Meine Baustelle
H0-Wechselstrom - rocrail auf Linux Mint (18.3) - GleisboxUSB - rocnet
jumbo-44
 

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby rjversluis » 13.10.2018, 17:43

Hallo Mark,
jumbo-44 wrote:Ich verstehe von allem, was Ihr Euch da schreibt nur Bahnhof. Danke für Eure Mühen!!!

was verstehst du dann nicht? Ich möchte gerne aufklären.
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: "Keine Antwort von Master" - mgbox und mcs2

Postby jumbo-44 » 14.10.2018, 09:49

Moin Rob,
das
rjversluis wrote:Hallo Mark,
was verstehst du dann nicht? Ich möchte gerne aufklären.

ist ein richtig mutiges Angebot ;)

Aus Eurer Konversation habe ich verstanden (inhaltlich)
- in der mgbox-library lag noch ein Fehler, den Du behoben hast - Danke dafür
- das Kommando 'CANID 0xFF' hat in mgbox keine Funktion und wird deshalb als ungültig definiert; was zu diesem Kommando führt ist jetzt die Frage

Nicht verstehen kann ich die technischen Details, also die 'bits and bytes', die trace-files zu interpretieren, das CAN-Protokoll auszuwerten, Code für rr-Module zu schreiben, ...

Für die Suche nach der Ursache des unzulässigen Kommandos:
Gleisbox, Rocnet-Node, Router und die zugehörige Spannungsversorgung habe ich gemeinsam auf einer Art 'Schalttafel' installiert
EDIT
Image

Soll ich die Gleisbox ausbauen, um eine Verfälschung des Signals durch andere Leitungen auszuschließen?


Nur zur Sicherheit, falls Du es überlesen hast, nochmal die Bitte, den Build 14465 (bzw. den neuesten) auch für Ubuntu 16.04 zu kompilieren.
Dann kann ich auch mit der gefixten mgbox testen (und Protokolle posten).

Besten Dank und schönen Sonntag,
Mark
Meine Baustelle
H0-Wechselstrom - rocrail auf Linux Mint (18.3) - GleisboxUSB - rocnet
jumbo-44
 

PreviousNext

Return to Märklin CS2/CS3/MS2/CC-Schnitte (DE)