Fragen rund um das Skript


Abonniere unseren Kanal auf WhatsApp (klicke hier zum abonnieren).
  • Morgens,


    ich versuche mir aktuell in verschiedene Skripte rund um den TS einzuarbeiten.
    Eine Frage die für mich immer wieder auftacht, sind die verwendeten Zahlensysteme.


    Ein Beispiel:


    d:type="sFloat32" d:alt_encoding="0000000000805B40" d:precision="string">110


    Ich gehe davon aus das es sich bei dem Wert "alt_encoding" um eine hexadezimal Zahl handelt und bei "prescision" um eine Dezimalzahl.
    Inwiefern hängen die beiden Zahl zusammen? Die Umrechnung von hex zu dez, oder umgekehrt, ergeben keinen sinnvollen Zusammenhang.


    Vielleicht kann jemand von Euch Licht ins dunkel bringen oder auf eine Lösung verweisen.


    Danke.

  • Das "sFloat32" ist eine vorzeichenbehaftete hexadezimale Fließkommazahl (="Floating Point") mit Exponent und Mantisse von insgesamt 32 Bit Länge. Vermutlich 8 Bit für den Exponenten, 23 Bit für die Mantisse und 1 Bit für das Vorzeichen.
    Das verwirrende ist vermutlich, dass der Wert in "Little Endian" (oder "Big Endian"?) dargestellt wird.
    Bin zu lange aus'm Programmieren raus, um hier was wirklich verwertbares abzuliefern.


    Aber davon abgesehen benötigt man es auch nicht wirklich. Es ist lediglich eine alternative, für "Maschinen" lesbare Form einer von uns Menschen bevorzugten Anzeige einer dezimalen reellen Zahl.

    Egal, wie weit Draußen man die Wahrheit über Bord wirft, irgendwann wird sie irgendwo an Land gespült.

  • Ok, danke.


    Ich habe bereits eine neue Frage.
    Zur Zeit befasse mich mich mit den csv-Dateien unter anderem mit der "TractiveEffortVsSpeed".
    Wie kann ich solch eine Datei mit den "alt_encoding" und "string" Werten erstellen?
    Gibt es dafür eine Vorlage? Nach meinem jetzigen Kenntnisstand ist das mit Hilfe des blueprint-Editors nicht möglich...


    Ich bin für jede Hilfe dankbar.

  • Vermutlich musst du dort nur den Pfad zu deiner csv- oder dcsv-Datei eintragen.
    Vermutlich muss diese in UTF-8 (without ByteOrderMark "BOM") vorliegen, wie alle XMLs im TS.



    Meines Wissens wird eine alternative Kodierung ("alt_encoding") nicht bei Strings und Boolean vorgenommen. Mir erschiene das auch unsinnig.
    Strings ("cDeltaString") sind ja nur Zeichenketten, wie hier z.B. der Pfadname zu einer Datei.
    Da muss also nicht alternativ in hexadezimal umgewandelt werden, weil sie auch intern exakt so als Zeichenkette behandelt werden muss.
    Gleiches gilt auch für Boolean, da ist "1" und "0" auch in Hexadezimal und binär "1" und "0" (oder auch "eTrue" und "eFalse", müsste eigentlich dasselbe in grün sein).


    Die alternative Encodierung nach Hex beschränkt sich also nur auf Datenhaupttypen und ihren SubTypen der Form Integer: sInt, sUInt, sUInt64,... (wobei das "U" hier für "unsigned" steht, also keinen Platz für ein Vorzeichen reserviert, also immer positive Zahlen enthält) und Float: sFloat32,...


    Also allem, was wir Menschen als "Zahl" erachten würden. Ein String ist aber keine Zahl, zumindest nicht in einer für Computer verwertbaren standardisierten Form.


    Nachtrag:
    So wie ich das verstehe, musst du für deine Zugkraftwerte eine CSV-Datei erstellen, ähnlich den dynamischen Nummerierungen oder den Örtlichkeiten einer Strecke, die man beim Erstellen eines Szenarios vorfinden will.
    Diese Datei muss in deinen eigenen Asset-Ordner (bzw. Source-Ordner für den BPE) und diesen Dateipfad musst du dem BPE zu futtern geben.

    Egal, wie weit Draußen man die Wahrheit über Bord wirft, irgendwann wird sie irgendwo an Land gespült.

  • Mich verwirrt eher der Thread Titel allgemein.


    Ich lese das immer öfter hier im Forum das immer von Scripten die rede ist.


    Wenn das Wort Script fällt denke ich als erstes an eine lua Datei und nicht an eine bin oder proxybin oder proxyxml.
    Für mich sind das zwei verschiedene paar Schuhe wo das eine mit dem anderen erst mal nichts zu tun hat.


    Eine TEvsSpeed.dcsv lässt sich ganz einfach per Editor öffnen zb




    Hier mal der Unterschied zwischen bin und Script


  • Mich verwirrt eher der Thread Titel allgemein.


    Ich lese das immer öfter hier im Forum das immer von Scripten die rede ist.


    Wenn das Wort Script fällt denke ich als erstes an eine lua Datei und nicht an eine bin oder proxybin oder proxyxml.
    Für mich sind das zwei verschiedene paar Schuhe wo das eine mit dem anderen erst mal nichts zu tun hat.

    Ist richtig, es handelt sich in dem Fall um eine stink normale XML. Als ich den Titel erstellt habe war ich erst am einarbeiten. Außerdem bin ich von Hause aus eher Hardware(ker)... ;)


    Das öffnen mit einem gebräuchlichen Editor ist nicht as Problem, eher die passende Struktur zu erstellen.
    - woher kommen die Id´s oder we werden diese erzeugt?
    - wie kann ich aus den Dezimalwerten für die X- und Y-Komponente (v und F) die Hex-Werte erzeugen? (Erfolgt das automatisiert und wenn ja, wie?)


    UKTrainSim, konnte leider auch nicht groß weiter helfen.

  • Ja ok dann sind wir uns da ja schon mal einig :XD


    Wie das alles im einzelnen abläuft würde ich auch gerne wissen aber da fehlt einfach die passende Dokumentation. Also selbst wenn man will und möchte bleibt man eher auf der Strecke.
    Die Leute die es wissen behalten das für sich und geben das nicht raus. Auf einer Art wird immer gesagt das man nicht per Hand in den bin Dateien fummeln soll aber eine Anleitung wie man
    vernünftig mit dem BPE arbeitet gibt es auch nicht. Klar da sind die Dev Docs von RSC aus anno 1830 die viele tolle Anwendungsbeispiele beinhalten *dumm*
    Die IDs werden vom BPE erzeugt da hat man so weit ich weiß keinen Einfluss drauf und sind so gesehen auch für den User nicht relevant.
    Auch die Hex Werte werden wohl automatisch erstellt. So genau kann ich dir das aber auch nicht sagen da ich mit dem BPE trotz Interesse nicht so vertraut bin.
    Bis auf einfache Sachen habe ich da noch nicht weiter nicht mit gearbeitet. Ich warte da auf jemanden der ankommt und User die Interesse haben so gesehen an die Hand nimmt.
    Vermutlich kann ich da wohl lange warten :rolleyes:


    Mich nervt es ungemein zu wissen das man ein Werkzeug hat wo man so einiges mit machen kann aber niemand da ist der einem mal zeigt wie man damit umgehen muss.

  • Hallo Essagman,


    die Frage, wie dieses "d:alt_encoding" zusammengebastelt wird, habe ich mich auch schon als Neuling im TS vor Jahren gefragt.
    Obwohl ich aus der Software-Entwicklung komme, war dies nie leicht zu durchschauen. Es handelt sich um Zahlen der Basis 2 mit Exponent und vertauschter Reihenfolge.
    Selbst die Engländer warnten in ihren Foren davor, dies ohne Kopfschmerztabletten auszuführen.
    Nun egal, die Dinge sind einfacher, als man denkt.
    So sieht ein Stück aus der *.dcsv aus, so wie Du sie geöffnet hast.




    Nun löschst Du die d:alt_encoding=????? alle komplett, und wenn Du willst auch noch die d:precision="string" dazu und dann hast Du die Originalwerte, die Du nun nach belieben verändern kannst.
    Die d:id="????" kannst Du auch wegnehmen, oder selbst Zahlen Deiner Wahl vergeben. Den TS stört das nicht.


    Das sieht dann ungefähr so aus:



    Wenn Du eine feinere Abstufung der Leistungs- und/oder Geschwindigkeitswerte haben möchtest, so fügst Du einfach noch ein
    <cCSVItem>
    X
    Y
    Name
    </CSVItem>
    Element dazwischen.


    Übrigens, RSC hat sich auch bereits von dem Quatsch mit dem d:alt_decoding verabschiedet, wie man gut in den Dateien der Surfliner-Strecke sehen kann.


    Viel Freude beim Experimentieren und vor allen Dingen viel Spielspass mit dem TS2014


    Gruß


    Bernd

    ------------------------------ *lach* Dipl.Ing. (Nachrichtentechnik) / Romantic Railroads / DGEG-Mitglied *ja* ---------------------------

  • Ja hast du auch einen link wo ausführlich beschrieben ist wie man einen Wagon oder Lok Sound erstellt?
    Wie das alles zusammehängt und welcher Parameter wofür verantwortlich ist?

    Nein, das war aber auch nicht das, was Essagmann fragte. Er wollte eine Erklärung, wie er die "Comma Seperated Values" (CSV) der Zugkraftwerte in den BPE mittels DCSV reinbekommt.
    Diesen Weg erklärt der Link.

    Egal, wie weit Draußen man die Wahrheit über Bord wirft, irgendwann wird sie irgendwo an Land gespült.

  • Nabend,


    erst einmal vielen Dank für die zahlreichen Hinweise.
    Leider bin ich nicht viel weiter gekommen und habe unter der Woche die Arbeiten ruhen lassen.


    Heute habe ich mich nochmals mit dem TractiveEffortVsSpeed beschäftigt.
    Dafür habe ich als Referenz die BR 143 von VR/Aerosoft K-D verwendet und ein bisschen mit den Werten in der csv gespielt.
    Leider ohne merkliche Veränderungen.
    Die Vmax und Leistung habe ich unangetastet gelassen und nur die Werte für die Zugkraft(TractiveEffort) geändert.
    Als Testdaten habe ich die originalen und verschiedene linearen Werte (jeweils 100kN, 500kN und 900kN) verwendet.
    Dabei gab es eine keine relevante Zugkraftveränderung über den Gesamtengeschwindigkeitsbereich.
    Habe ich vergessen andere Werte anzupassen oder etwas vergessen umzuschreiben?


    Danke.

  • Das tut mir leid, dass es nicht so klappen will, wie du dir das vorstellst.
    Ich kann da leider nicht weiterhelfen, daher nur mal die Frage, ob du denn inzwischen die CSV-Tabelle in deine Engine.xml einbinden konntest?

    Egal, wie weit Draußen man die Wahrheit über Bord wirft, irgendwann wird sie irgendwo an Land gespült.