Hi Gerd,
Zitat von bertr2d2
Ja, Rocrail Server speichert die Informationen. Aber auch die CS2 (IMHO zumindest der CS2-Master).
Ein Konvertierungs-Tool oder Intergration in Rocrail bzw. in Dein Framework wäre eine wirklich tolle Sache. Ich halte
das auch für machbar - braucht halt "nur" etwas Zeit Aber Du bist ja Profi - kannst ggf schon etwas vorgefertigtes,
änhliches nehmen und musst es nur anpassen.
Es ist als Idee angedacht, auch das Rockrail Protokoll mit zu integrieren. Soweit ich das verstanden habe, benutzt Rockrail das SRCP Protokoll. Und dann kann ich den gleichen Datenbestand nutzen und im passenden Client konvertieren. Einen eigenständigen Rockrail Server hab ich schon mal laufen lassen.
Zitat von bertr2d2
Den Gleisplan kan man editieren, wenn man auf Master geschaltet hat. Der Gleisplan (und der Zustand *.sr2)
werden auch von M*rklins PC Software lokal gespeichert.
Schade. Die cs2.exe fordert ja den Gleisplan an. Wenn man den auch editieren und zurückschicken könnte, wenn sie als Slave läuft, wäre das toll. Das Programm als Master laufen zu lassen, lokal speichern und dann übertragne zu müssen ist umständlicher.
Zitat von bertr2d2
IMHO werden die Daten Zlib komprimiert und mit CCITT-CRC Prüfsumme übertragen. Ich hatte mit dem in M*rklins
Dokumenten abgbilldeten CRC-Algorithmus meine Probleme und habe letztendlich den Code aus dem Linux-Kernel
genommen. ...
Du hast an einer anderen Stelle schon mal auf Deine aktuellen Probleme mit der PC CS2 Software hin gedeutet. Kannst Du
das mal näher erläutern (ggf mit Netzwerk-Dump) ?
Du hattest mir ja schon von deinen Experimenten mit der CCITT Prüfsumme berichtet. Ich hab den Code, den du mir auch zugeschickt hattest, benutzt und auch gegen den Trace gecheckt, um den ich hier mal gebeten hatte. Auch bei den anderen *.cs2 Dateien ist es so, daß vor den eigentlichen zlib komprimierten Dateien eine 4 Byte Länge der unkomprimierten Dateien steht. Mit deiner Funktion über die gesamten Daten (4 Byte Längenangabe + zlib Daten + Füllbytes) bekomme ich die gleiche Prüfsumme, die auch in dem Trace mitgeschickt wird. Ich denke, daß ich jetzt die richtige Prüfsumme mitschicke.
Wichtig ist, den Ping der cs2.exe, der als erstes verschickt wird, schnell zu beantworten. Ansonsten kommt eine Meldung, daß keine CS2 gefunden wurde. Das haben wohl auch schon Leute mit einer realen CS2 erlebt.
Wenn ich im Ping mit dem richtigen Typ beantworte, dann erkennt die cs2.exe eine CS2 und fordert auch die *.cs2 Dateien an. Das funktioniert bei mir schon. Ich antworte auch mit den *.cs2 Dateien.
Die Antwort muß ich mit dem Hash der cs2.exe schicken. Nur, welchen Hash benutzt denn die cs2.exe? Ich würde erwarten, daß der Hash in der Anforderung drin steht. Tut er aber nicht! Die Anforderung wird ohne Hash verschickt! Wie soll man denn da verschiedene Clients bedienen? Da hat Märklin aber Murks gemacht. Ich hab also mal einen Ping rausgeschickt und den Hash aus der Antwort der GUI benutzt. Auch in dem Netzwerktrace enthält die Anforderung der *.cs2 Dateien keinen Hash. Mir ist aus dem Trace noch nicht klar, woher die CS2 den Hash kennt, den sie für die *.cs2 Dateien benutzt.
Leider funktioniert das immer noch nicht. Denn die cs2.exe wiederholt die Anforderung der *.cs2 Dateien und ich sehe auch nicht die Daten, die ich verschickt habe (z.B. meine Loks). Und ich kann so nicht sagen, was an meiner Kommunikation falsch ist. Doch eine Fehler in der Prüfsumme? Falscher Hash? Fehlt ein "Bootloader CAN gebunden"? Hier soll es ja wohl auch eine Variante geben, die die Prüfsumme überträgt, was leider nicht dokumentiert ist.
Tschüß
Michael