DerJantob / TSW2_Controller

Control TSW2 with a joystick or other controllers
25 stars 4 forks source link

Kombihebel für die BR423 #15

Closed medic89 closed 2 years ago

medic89 commented 2 years ago

Hi Janik,

deine App ist super, endlich kann man den Joystick benutzen oder andere Hardware. Allerdings funktioniert das bei mir auf der BR423 nicht so recht. Ich habe den Kombihebel eingerichtet und von der Mittelstellung bis volle Leistung funktioniert alles super, aber in die andere Richtung reagiert der Kombihebel nicht. Anbei der EIntrag in der Config Datei:

BR423,Kombi,1,JoyY,1,0,[-100|-95=-100][-15|-8=-10][-7|7=0][8|15=10],Kombihebel,,Stufenlos,,[Notbremse=-100][Minimale Bremse=-10][0=0][Minimale Leistung=10][100=100],55|85,[-100|-94:500][-16|-10:500][-10|0:500][0|10:500][10|16:500]

DerJantob commented 2 years ago

Vielen Dank für dein Feedback!

Kann es vielleicht sein, dass du mit deinem Joystick nur im positiven Bereich bleibst? Der Kombihebel benötigt für den Bremsbereich einen negativen Joystick-Wert, wie hier im Bild zu sehen: grafik

medic89 commented 2 years ago

Moin Janik,

ich habe einen X-55 Rhino Throttle und hab inverted axis aktiviert, damit der Bremsbereich im negativen Bereich angezeigt wird, aber das scheint zu funktionieren, auf der Anzeige bewegt sich die Axe von -100 bis 100

DerJantob commented 2 years ago

Also wenn du mit deinem Joystick in den Bremsbereich gehst, dann bewegt sich der Regler der S-Bahn gar nicht? Also auch kein Zucken? Versuch einmal während das Programm läuft in ein Textfeld auf deinem PC zu klicken und guck mal nach, ob Buchstaben erscheinen, wenn du den Joystick im Bremsbereich hin und her bewegst.

medic89 commented 2 years ago

Hab mal de Editor laufen lassen, komischerweise sendet das Programm im Sekundentakt ein "d", egal wo der Hebel steht.

DerJantob commented 2 years ago

Das ist normal. Wenn das Programm den Wert für den Schub (oder Bremse) sucht, aber nicht findet, dann drückt es die Taste "Leistung verringern" (sodass der Text im Simulator wieder erscheint), bis es den gesuchten Wert findet. Es sollte aber so sein, dass wenn du dann den Hebel langsam bewegst, "d" oder "a" häufiger gedrückt wird.

medic89 commented 2 years ago

also ein d sehe ich im bremsbereich nicht, also nicht mehr als das d einmal pro Sekunde. Habe ich evtl. bei den Einstellungen ein Fenster davor was falsches eingestellt? Ich habe bei Schub/Bremse in beiden Feldern jeweils Kombihebel eingefügt und bei Kombihebel Leistung im Bereich Schubbereich und Bremsleistung im Bereich Bremsbereich.

DerJantob commented 2 years ago

An sich dürfe es kein Unterschied machen, aber unter Schub/Bremse->Bremse ist "Kombihebel" falsch. Versuch das mal zu entfernen. Ich glaube, ich habe das etwas undeutlich beschriftet ^^

medic89 commented 2 years ago

Hab jetzt mal alle Textindikatoren zurückgesetzt, hier ein Ausschnitt von meiner Programmierung der Achse, im Schubbereich funktioniert alles super, aber wenn Joystick und Hebel im Sim in Neutralstellung sind, passiert garnichts, aber nach ein paar Sekunden setzt das Einmal pro Sekunde "d" ein.

grafik

medic89 commented 2 years ago

Hab das Programm jetzt mal neu installiert, jetzt funktioniert es einigermaßen, das Problem ist nur, dass der Kombihebel der 423 leider nicht symmetrisch ist, der Bremsbereich geht von 1-100% und dann noch die Notbremsstellung, während der Leistungsbereich von 10 bis 100 geht.

Gibt es eine Möglichkeit, alle Stellungen des Joysticks in eine bestimmte Reglerposition zu "übersetzen", und nach jeder Änderung stellt das Programm den Wert auf den entsprechenden Wert ein?

DerJantob commented 2 years ago

Ich verstehe nicht ganz, was du damit meinst. Also das Joy umrechnen übersetzt ja quasi einen Joystick Bereich zu einer Zahl. Bei deinem Beitrag vorher steht ja "-100|-92=-100", was ja so viel bedeutet wie: Wenn sich der Joystick zwischen -100 und -92 befindet, interpretiert das Programm es als -100. Aufgrund dessen habe ich bei mir bei der BR423 Joy umrechnen 1|10=10 -10|-1=-10 stehen

Das Problem ist, glaube ich, dass du mit dem Kombihebel auch in die Notbremsstellung kommen möchtest. Da ich das Programm eigentlich nur für mich geschrieben hatte, und ich nicht aus Versehen die Notbremse auslösen wollte, habe ich das Programm halt auch so optimiert, dass das nicht so schnell passiert.

Für die Notbremse könntest du vielleicht einen Button hinzufügen. Du könntest es aber auch mal alternativ mit Joy umrechnen: 1|10=10 -10|-1=-10 -100|-98=-100 Sonderfälle umrechnen: Minimale_Leistung=10 Minimale_Bremse=-10 100_%_Bremsleistung=-98 99_%_Bremsleistung=-98 Notbremse=-100 Länger drücken: 0|10:270 -10|0:270 -100|-99:500 versuchen, nur leider ist in den Versionen 1.0.0 und 1.0.1 noch der Fehler, dass das Programm bei den Sonderfällen das %-Zeichen immer ersetzt hat. Schreibe also erstmal stattdessen 100__Bremsleistung=-98 99__Bremsleistung=-98. In der nächsten Version sollte es also möglich sein, das obere zu nutzen. Vielleicht hilft dir das aber auch so schon

Quasi wird -100 und -99 beim Joystick und im Spiel als -98 interpretiert und Notbremse als -100. Die Lücke von 2% ist wichtig, da das Programm immer +-1% Toleranz zulässt.

medic89 commented 2 years ago

Ich meinte damit die Sonderfälle. Dass ich also sage der Joystick Bereich 10-12=11 und die 11 entsprechen einer Schubleistung von 11% am Throttle im Sim. So kann ich die Ungenaugikeiten meines Joysticks etwas "ausbügeln".

Was mir außerdem aufgefallen ist: Man darf keinesfalls CTRL+F1 drücken, denn dann verschwinden die Anzeigen über die Stellung des Throtthles am Schirm und das Ganze funktioniert nicht mehr.

PS: Hast du dein Programm schonmal mit den Leistungs- und Bremshebel von https://www.fahrpult.com/Fahrpulte-Plug-and-Play/ ausprobiert?

DerJantob commented 2 years ago

Ja, die HUD muss leider sichtbar bleiben. Das mit dem ausbügeln da kannst du theoretisch dann wie du es geschrieben hast schreiben: 10|12=11 13|15=14 16|18=17 ...

fahrpult.com Hebel habe ich leider keine. Die liegen ein bisschen außerhalb meines Budgets :)

medic89 commented 2 years ago

Jetzt habe ich es etwas hingebogen, es funktioniert prima, nur der Kombihebel springt zb bei 100% Leistung plötzlich immer wieder mal auf 10 zurück und im Bremsbereich wackelt er auch, kannst du bei meinen Werten sehen, woran das liegt?

Notbremse=-100 100Bremsleistung=-76 96Bremsleistung=-73 92Bremsleistung=-70 88Bremsleistung=-67 84Bremsleistung=-64 80Bremsleistung=-61 76Bremsleistung=-58 72Bremsleistung=-55 68Bremsleistung=-52 64Bremsleistung=-49 60Bremsleistung=-46 56Bremsleistung=-43 52Bremsleistung=-40 48Bremsleistung=-37 44Bremsleistung=-34 40Bremsleistung=-31 36Bremsleistung=-28 32Bremsleistung=-25 28Bremsleistung=-22 24Bremsleistung=-19 20Bremsleistung=-16 16Bremsleistung=-13 12Bremsleistung=-10 8Bremsleistung=-7 4Bremsleistung=-4 MinimaleBremse=-1 0=0 MinimaleLeistung=10 12Leistung=12 15Leistung=15 18Leistung=18 21Leistung=21 24Leistung=24 27Leistung=27 30Leistung=30 33Leistung=33 36Leistung=36 39Leistung=39 42Leistung=42 45Leistung=45 48Leistung=48 51Leistung=51 54Leistung=54 57Leistung=57 60Leistung=60 63Leistung=63 66Leistung=66 69Leistung=69 72Leistung=72 75Leistung=75 78Leistung=78 81Leistung=81 84Leistung=84 87Leistung=87 90Leistung=90 93Leistung=93 96Leistung=96 100__Leistung=100

DerJantob commented 2 years ago

An sich fällt mir kein Fehler auf. Du könntest dir jedoch manche Einträge sparen. 0=0 12Leistung=12 15Leistung=15 ... =... 100__Leistung=100

Durch die Textindexe erkennt das Programm das Wort "Kombihebel" und "Leistung" automatisch und dürfte dann auch keine Probleme haben, den entsprechenden Prozentwert zu lesen. Bei den Sonderfällen trägst du eigentlich nur etwas ein, wenn der Simulator keine Zahl anzeigt, oder du eine Zahl zu einer anderen machen möchtest.

Das Problem mit dem Hebel werde ich mir wohl die Tage nochmal genauer anschauen. Ich muss aber auch sagen, dass sich die BR123 auch bei mir nicht optimal steuern lässt.

Ich werde in der nächsten Version verbesserte Debug-Informationen/log Dateien hinzufügen. Ich hoffe, dass ich dann besser helfen kann.

medic89 commented 2 years ago

Hast du an deinem Joystick auch einen Rotating Switch mit einer Mittelraste? Ich habe diesen bei mir mal für den Kombihebel ausprobiert und das ganze funktioniert eigentlich ziemlich gut mit folgenden Einstellungen, lediglich das "Überwinden" der Mittelraste des Kombihebels im Sim der BR423 ist manchmal verschoben:

Joy Umrechnen:

-100|-87=-100 -86|-84=-76 -83|-81=-73 -80|-78=-70 -77|-75=-67 -74|-72=-64 -71|-69=-61 -68|-66=-58 -65|-63=-55 -62|-60=-52 -59|-57=-49 -56|-54=-46 -53|-51=-43 -50|-48=-40 -47|-45=-37 -44|-42=-34 -41|-39=-31 -38|-36=-28 -35|-33=-25 -32|-30=-22 -29|-27=-19 -26|-24=-16 -23|-21=-13 -20|-18=-10 -17|-15=-7 -14|-11=-4 -10|-8=-1 -7|7=0 8|10=10 11|13=12 14|16=15 17|19=18 20|22=21 23|25=24 26|28=27 29|31=30 32|34=33 35|37=36 38|40=39 41|43=42 44|46=45 47|49=48 50|52=51 53|55=54 56|58=57 59|61=60 62|64=63 65|67=66 68|70=69 71|73=72 74|76=75 77|79=78 80|82=81 83|85=84 86|88=87 89|91=90 92|94=93 95|97=96 98|100=100

Sonderfälle Umrechnen:

Notbremse=-100 100Bremsleistung=-76 96Bremsleistung=-73 92Bremsleistung=-70 88Bremsleistung=-67 84Bremsleistung=-64 80Bremsleistung=-61 76Bremsleistung=-58 72Bremsleistung=-55 68Bremsleistung=-52 64Bremsleistung=-49 60Bremsleistung=-46 56Bremsleistung=-43 52Bremsleistung=-40 48Bremsleistung=-37 44Bremsleistung=-34 40Bremsleistung=-31 36Bremsleistung=-28 32Bremsleistung=-25 28Bremsleistung=-22 24Bremsleistung=-19 20Bremsleistung=-16 16Bremsleistung=-13 12Bremsleistung=-10 8Bremsleistung=-7 4Bremsleistung=-4 MinimaleBremse=-1 Minimale__Leistung=10

Zeitfaktor:

45|110

Länger Drücken:

-100|-76:500 -1|0:500 0|10:500

Hast du noch Verbesserungsvorschläge?

DerJantob commented 2 years ago

Das Problem der Mittelstellung solltest du mit der folgenden Änderung beheben können: Minimale__Bremse=-1 Minimale__Leistung=10 Minimale_Bremse=-1 Minimale_Leistung=10

Es befindet sich nur ein Leerzeichen zwischen diesen beiden Wörtern. Bei den anderen Einträgen ist das mit dem doppelten Unterstrich nur ein Workaround, weil sich eigentlich zwischen den beiden Einträgen noch das %-Zeichen befinden würde. In der nächsten Version muss also 50_Bremsleitung zu 50%_Bremsleistung geändert werden.

LG Jannik

medic89 commented 2 years ago

kann man dich irgendwie privat erreichen?

DerJantob commented 2 years ago

Da ich aktuell recht beschäftigt bin, würde ich erstmal noch bevorzugen, Probleme usw. hier über GitHub zu klären. In Zukunft könnte ich mir aber auch vorstellen über Discord zu helfen.

DerJantob commented 2 years ago

Hi, Ich habe soeben einen kleinen Bugfix (v1.0.2) veröffentlicht. Jemand hatte mich darauf aufmerksam gemacht, dass wenn man Knöpfe hinzufügt, der Kombihebel im Bremsbereich nicht mehr reagiert. Du hattest ja anfangs auch so ein Problem mit dem Kombihebel, vielleicht läuft es jetzt auch für dich besser.

LG Jannik

medic89 commented 2 years ago

Moin Jannik,

super, das probiere ich gleich mal aus. Mit meinen Werten habe ich leider das Problem, dass im Bremsbereich der virtuelle Kombihebel zwar auf den entsprechenden Bereich geht, aber dann auf eine andere Position springt, und beim erhöhen der Bremsleistung springt der Regler kurze Zeit später wieder auf einen geringeren Wert, wenn ich dann mit dem Joystick noch mehr bremse, bin ich plötzlich bei 100% Bremsleistung und dann auch in der Notbremsraste. Weißt du, woran das liegen könnte?

DerJantob commented 2 years ago

Ich vermute mal, dass das Programm irgendwie nicht den richtigen Prozentwert lesen kann. Du hast mittlerweile recht viel in deiner Config stehen, vielleicht ist da irgendwo ein Fehler, oder ein Textindikator fehlt. Du kannst mir die Config vielleicht nochmal schicken und dann gucke ich mir das genauer an. Oder du probierst das hier mal aus: BR423,Kombi,1,JoyY,1,0,[1|10=10][-100|-98=-100],Kombihebel,,Stufenlos,,[Minimale Leistung=10][Minimale Bremse=-1][100 Bremsleistung=-98][99 Bremsleistung=-98][Notbremse=-100],55|83,[0|10:700][-1|0:700][-100|-99:500] Mit dieser Config funktioniert es für mich eigentlich ganz gut.

medic89 commented 2 years ago

Ich hab da leider immernoch ziemliche Sprünge drin, ich denke das liegt am Zeitfaktor, wenn ich einen Wert einstelle, hat TSWC entweder zu viel oder zu wenig gedrückt, und nach ein paar sekunden stellt sich der richtige Wert ein. Gibt es eine Möglichkeit, die Frequenz mit der TSWC prüft, ob die Stellung des physischen Reglers mit dem virtuellen übereinstimmt zu erhöhen?

DerJantob commented 2 years ago

Das Problem ist, dass das Auslesen des Bildschirms mit OCR kurz Zeit in Anspruch nimmt. Sobald du aber deinen Joystick wieder bewegst, muss das Programm erneut den Wert auslesen und so weiter. Ich habe schon versucht das Überprüfen so oft wie möglich zu machen, aber es ist halt leider nicht schnell genug. Ich habe für mich aber festgestellt, dass bei manchen Zügen, langsame Joystick Bewegungen ungenau werden. Wenn ich den Joystick allerdings schnell bewege, ist er wieder genau. Ist das vielleicht für dich auch der Fall?

medic89 commented 2 years ago

Ich hab da leider immernoch ziemliche Sprünge drin, ich denke das liegt am Zeitfaktor, wenn ich einen Wert einstelle, hat TSWC entweder zu viel oder zu wenig gedrückt, und nach ein paar sekunden stellt sich der richtige Wert ein. Gibt es eine Möglichkeit, die Frequenz mit der TSWC prüft, ob die Stellung des physischen Reglers mit dem virtuellen übereinstimmt zu erhöhen?

DerJantob commented 2 years ago

Ähm, du hast die gleiche Nachricht nochmal geschrieben?

DerJantob commented 2 years ago

Um nochmal auf meine Frage zurückzukommen, ist es für dich denn auch so, dass wenn du deinen Joystick langsam bewegst, der Regler im Simulator sehr ungenau wird. Zumindest habe ich für mich festgestellt, dass der Regler im Simulator dann immer viel zu weit kommt.

medic89 commented 2 years ago

Hm also ich finde, die Schwankungen betreffen vor allem den Bremsbereich, wenn ich den Regler hier auf einen bestimmten Wert einstelle, überschießt der virtuelle Regler die Position und wandert wieder zurück, und dann gibt es aber abermals noch Schwankungen. Alles unabhängig davon, wie schnell ich den Joystick bewege.

DerJantob commented 2 years ago

Hm ok, danke dir. Ich muss mal gucken wie ich das verbessern kann

DerJantob commented 2 years ago

Hey, Ich habe nun Version 2.0.0 (jetzt sogar 2.0.1) veröffentlicht. Da ich sehr viel verändert und verbessert habe, kann es gut sein, dass es jetzt auch für dich besser funktioniert. LG Jannik

medic89 commented 1 year ago

Moin Jannik,

super, das probiere ich gleich mal aus. Mit meinen Werten habe ich leider das Problem, dass im Bremsbereich der virtuelle Kombihebel zwar auf den entsprechenden Bereich geht, aber dann auf eine andere Position springt, und beim erhöhen der Bremsleistung springt der Regler kurze Zeit später wieder auf einen geringeren Wert, wenn ich dann mit dem Joystick noch mehr bremse, bin ich plötzlich bei 100% Bremsleistung und dann auch in der Notbremsraste. Weißt du, woran das liegen könnte?

Von: DerJantob @.> Gesendet: Dienstag, 15. März 2022 23:25 An: DerJantob/TSW2_Controller @.> Cc: medic89 @.>; Author @.> Betreff: Re: [DerJantob/TSW2_Controller] Kombihebel für die BR423 (Issue #15)

Hi, Ich habe soeben einen kleinen Bugfix (v1.0.2) veröffentlicht. Jemand hatte mich darauf aufmerksam gemacht, dass wenn man Knöpfe hinzufügt, der Kombihebel im Bremsbereich nicht mehr reagiert. Du hattest ja anfangs auch so ein Problem mit dem Kombihebel, vielleicht läuft es jetzt auch für dich besser.

LG Jannik

— Reply to this email directly, view it on GitHub https://github.com/DerJantob/TSW2_Controller/issues/15#issuecomment-1068525980 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AHGKI43ROTXUK2VI6HSF47DVAEE3BANCNFSM5P75XH2Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub . You are receiving this because you authored the thread.Message ID: @.***>