EEPSetTrainSpeed

!!! Please ensure, that your contribution or question is placed into the relevant section !!!
Questions about rolling stock, for example, do not belong in "Questions about the Forum". Following is perhaps the right area where your question will be better looked after:
General questions to EEP , Splines, rolling stock, Structures in EEP, landscape elements, Signalling system and controlling, designers, Europe-wide EEP meetings , Gossip
Your cooperation to keep the forum clear is appreciated.
In the case of pictures that are attached to the article, the source must also be stated. This also applies to your own pictures, which were taken by you. Pictures without source information will be deleted!
  • Hallo, n gesegnetes Neues an alle!

    Frage: wenn ich mit einem KP die Geschwindigkeit festsetze, gilt der für alle Züge gleich, egal, ob diese gerade "vorwärts" oder "rückwärts" in der ausgewählten Richtung drüber fahren. Nehme ich dafür den Lua-Befehl EEPSetTrainSpeed wechseln die "rückwärts"-Fahrenden ihre Fahrtrichtung mit der neuen (positiven)Geschwindigkeitsangabe. Welchen Befehl nehme ich in Lua um das zu verhindern? Ich habs mit math.abs (x) probiert (sollte ja dann eine vorzeichenlose Zahl sein), funktioniert aber nicht.


    Danke jetzt schon für alle Hilfe.

    mfG

    Der Gleiser

    Joachim

    Der Gleiser

    Joachim


    IntelCore i7; 8700K CPU; 3,7GHz; 32 GB RAM; x64Prozessor


    EEP V3-V15; EEP17; St.Gotthard; Modell-Explorer; AnlagenverbinderEEP 14& 17;

    12408667256859_SET013; Rollfeld_V10FRP10003; BonuspaketEEP14_V14N_TREND_1410; Berliner SBahn; FahrkartenA2015_PA1; Gleisübergänge_PA1; V10NDV10004 HBFFreiburg; V12NDA10009_Upd; V14N_TREND_1410; V15GSP2OPAC; V15GSP2OPAC; V15GSP2OPACGM; V15KEG10027-Nordseeinsel; V15NDU10102; V70NFZ1103; V70RG2_201200; V70RG2_201201; V80NFZ11003; V90_Mpak;

  • Hallo Gleiser Joachim,


    Habe zu diesem Thema im April beigetragen und wiederhole hier:

    Negativ und positiv sind leider relativ. Es bedeutet nicht, dass die Lok mit der Fahrerkabine 1 vorwärtsfährt. Ebenso kann eine Tenderlok ohne weiters mit dem Tender vorne vorwärtsfahren. Bei der Richtung in LUA ist die Richtung relativ zum Gleis ausschlaggebend.


    Ich empfehle vor Festlegung der neuen Geschwindigkeit die wahre LUA Richtung abzufragen. Ist die Geschwindigkeit negativ auch mit negativ weitermachen, oder beim Richtungswechsel mit -1 multiplizieren.


    Hoffe das dies weiterhilft.

    Beste Grüße Corinthiano Hans

    (Sind beim Libertadores Cup 2022 dabei)

    Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz, 16GB RAM, Windows 10 (64 bit), Radeon RX550/550 Series

    EEP 5, EEP 13.2, EEP 14.1, EEP 15.1, EEP 16.4, EEP 17.1

    Home-Nostruktor 13.0, 14.0, 15.0, 16.0, 17.0, Der Finder, EEP-Bodentextur Tool, EEP-Modellkatalog

  • Betriebsystemname: Microsoft Windows 10 Pro Education

    Prozessor: AMD Ryzen 5 1600 Six-Core Processor, 3200 MHz, 6 Kern(e), 12 logische(r) Prozessor(en)

    PC:RAM 16 GB, Grafik Karte: Name NVIDIA GeForce GTX 1060 6GB


    EEP 16 mit allen Plug ins und Patches, EEP 17. Plug In 1

    Modelkonverter, Home-Nostruktor 16.0, Modellkatalog, Bodentextur Tool



  • Ich habe das auch in meiner Anlage realisert. Du musst leider zwei getrennte Schleifen berücksichtigen und vorher mit EEPGetTrainSpeed das Vorzeichern erfragen.

    PC1:

    Betriebssystem: Windows 10 Enterprise 64 Bit

    Arbeitsspeicher: 64 GB RAM DDR4

    Prozessor: AMD Ryzen 5600X 4.1 GHz

    Grafikkarte - Asus Geforce GTX 1660 super - 6GB

    EEP 17.1 Plugin 1 Patch 1


    PC2:

    Betriebssystem: Windows 7 64 Bit Ultimate

    Arbeitsspeicher: 32 GB RAM DDR3

    Prozessor: Intel I5 2. Gen. 3 GHz

    Grafikkarte - Zotac Geforce GTX 1050 ti - 4GB

    EEP 17.0 Patch 3

  • Vielen Dank!

    Das sind z.T. Lösungen, die ich auch gefunden habe, finde sie aber alle recht aufwändig für so ein einfaches Problem. Das wäre doch vielleicht für die Entwickler ein Ansporn, zumal es im PK Fahrzeug ja funktioniert. Vielleicht: EEPSetTrainSpeedAbs oder so???


    Ich danke Euch für die raschen Reaktionen und guten Anregungen.

    Ein Hoch auf das Forum!


    mfG

    Joachim

    Der Gleiser

    Joachim


    IntelCore i7; 8700K CPU; 3,7GHz; 32 GB RAM; x64Prozessor


    EEP V3-V15; EEP17; St.Gotthard; Modell-Explorer; AnlagenverbinderEEP 14& 17;

    12408667256859_SET013; Rollfeld_V10FRP10003; BonuspaketEEP14_V14N_TREND_1410; Berliner SBahn; FahrkartenA2015_PA1; Gleisübergänge_PA1; V10NDV10004 HBFFreiburg; V12NDA10009_Upd; V14N_TREND_1410; V15GSP2OPAC; V15GSP2OPAC; V15GSP2OPACGM; V15KEG10027-Nordseeinsel; V15NDU10102; V70NFZ1103; V70RG2_201200; V70RG2_201201; V80NFZ11003; V90_Mpak;

  • Ach ja,

    meine derzeitige Lösung:


    function VZug(Zugname)

    ok,aktGes=EEPGetTrainSpeed(Zugname)

    if aktGes>0 then

        ZNV = string.sub(Zugname,1,2)

         if ZNV=="#G" then

            EEPSetTrainSpeed(Zugname, 60)

         elseif ZNV=="#N" then

            EEPSetTrainSpeed(Zugname, 80)

         elseif ZNV=="#F" then

            EEPSetTrainSpeed(Zugname, 100)

         end

    end

    if aktGes<0 then

        ZNV = string.sub(Zugname,1,2)

         if ZNV=="#G" then

            EEPSetTrainSpeed(Zugname, -60)

         elseif ZNV=="#N" then

            EEPSetTrainSpeed(Zugname, -80)

         elseif ZNV=="#F" then

            EEPSetTrainSpeed(Zugname, -100)

         end

    end

    end

    Der Gleiser

    Joachim


    IntelCore i7; 8700K CPU; 3,7GHz; 32 GB RAM; x64Prozessor


    EEP V3-V15; EEP17; St.Gotthard; Modell-Explorer; AnlagenverbinderEEP 14& 17;

    12408667256859_SET013; Rollfeld_V10FRP10003; BonuspaketEEP14_V14N_TREND_1410; Berliner SBahn; FahrkartenA2015_PA1; Gleisübergänge_PA1; V10NDV10004 HBFFreiburg; V12NDA10009_Upd; V14N_TREND_1410; V15GSP2OPAC; V15GSP2OPAC; V15GSP2OPACGM; V15KEG10027-Nordseeinsel; V15NDU10102; V70NFZ1103; V70RG2_201200; V70RG2_201201; V80NFZ11003; V90_Mpak;

  • Genau, so hab ichs auch gemacht. Ist ja auch kein Problem. Wenns läuft dann läufts. Man an so eine Funktion später nie wieder dran

    PC1:

    Betriebssystem: Windows 10 Enterprise 64 Bit

    Arbeitsspeicher: 64 GB RAM DDR4

    Prozessor: AMD Ryzen 5600X 4.1 GHz

    Grafikkarte - Asus Geforce GTX 1660 super - 6GB

    EEP 17.1 Plugin 1 Patch 1


    PC2:

    Betriebssystem: Windows 7 64 Bit Ultimate

    Arbeitsspeicher: 32 GB RAM DDR3

    Prozessor: Intel I5 2. Gen. 3 GHz

    Grafikkarte - Zotac Geforce GTX 1050 ti - 4GB

    EEP 17.0 Patch 3

  • Oder auch so:

    Folgende Dinge habe ich im Sinne eines besseren Programmierstils geändert:

    1. "Separation of concerns", also die Trennung von einzelnen Aufgaben
      Zuerst wird die Soll-Geschwindigkeit anhand des Zugnamens ermittelt (und zwar nur einmal!).
      Dann wird die aktuelle Richtung ermittelt und bei Bedarf das Vorzeichen gewechselt.
      Und schließlich wird die Geschwindigkeit gesetzt, aber nur, wenn das möglich ist.
      Daran könnte noch eine Fehlerbehandlung gehängt werden, denn EEPSetTrainSpeed gibt zurück, ob es geklappt hat.
    2. else-Zweig, damit die Variable sollGes in allen Fällen einen Wert hat.
    3. lokale Variablen
      Diese existieren nur innerhalb der Prozedur. Das vermeidet Probleme mit anderen Lua-Prozeduren, die vielleicht dieselben Variablennamen verwenden.
    4. Und außerdem habe ich die vorgesehene Darstellung für mehrzeiligen Lua-Code (</> in der Menüzeile) verwendet.

    Gruß

    Christopher

    PC: Intel i7-7700K; 64bit; 4,2 GHz; 32GB RAM; GeForce GTX 1080 (8 GB); Win 10; EEP 6, 15 (Dev), 17 (Dev); HomeNOS 14 (Dev)
    Laptop: Intel i5 3230M; 64bit; 2,6 GHz; 8GB RAM; GeForce GT740M (1 GB); Win 8.1; EEP 6, 13.2 Plugins 1+2; HomeNOS 13 (User)

  • Danke Christopher,

    das gefällt mir und Deine Erklärung leuchtet mir sehr ein, und erfaßt auch die V=0, obwohl das ja auf der Strecke quatsch ist! Aber ohne das "else" gehts halt nicht...

    DANKE!!!!

    Mein erster Programmierkurs war 1974 als Gasthörer in Mathe und die Sprache hieß "ALGOL", dann hab ich 1980 Programme fürs Pfarramt in Basic geschrieben (Kassenverwaltung und liturgische Kalender) und spätert html für die Webseitenprogrammierung gelernt. Jetzt versuch ich mich in Lua.

    mfG

    Joachim

    Der Gleiser

    Joachim


    IntelCore i7; 8700K CPU; 3,7GHz; 32 GB RAM; x64Prozessor


    EEP V3-V15; EEP17; St.Gotthard; Modell-Explorer; AnlagenverbinderEEP 14& 17;

    12408667256859_SET013; Rollfeld_V10FRP10003; BonuspaketEEP14_V14N_TREND_1410; Berliner SBahn; FahrkartenA2015_PA1; Gleisübergänge_PA1; V10NDV10004 HBFFreiburg; V12NDA10009_Upd; V14N_TREND_1410; V15GSP2OPAC; V15GSP2OPAC; V15GSP2OPACGM; V15KEG10027-Nordseeinsel; V15NDU10102; V70NFZ1103; V70RG2_201200; V70RG2_201201; V80NFZ11003; V90_Mpak;

  • Hallo Christopher,


    noch mehr Vereinfachung:
    in Zeile 2 kann gleich local SollGes = 40 stehen. Spart dann das else :-)


    Viele Grüße und ein schönes WE


    Martin

    Win 10x64, AMD Ryzen 9, 32GB RAM, NVIDIA GeForce RTX 3070


    EEP 17.0 Expert