![]() |
FSBUS: Tastenkommando mit Rotary-Switch
Zitat:
Die oben beschriebene Funktion scheint im aktuellen Router (2.4.1.1) nicht mehr zu funktionieren. Gibt es eine andere Möglichkeit, um mit einem Rotary-Switch ja nach Drehrichtung zwei unterschiedliche Tastenkommandos zu schicken? Danke für Eure Hilfe!! |
Hallo DLH1234,
geht über FSUIPC und sogenannte virtual buttons, die man in der FSIF.ini einträgt. Schalter über FSUIPC erkennen lassen und dann in FSUIPC ein Tastenkommando zuordnen. Beispiel FSIF. ini: ........ 1, "JS67 Virtual joybuttons", 510, 0, 0x334c, I32,,RWT ,10,1,1, 2, "JS67button 0", 511, 0, 0, BIT, 0, RW ,10,1,1, 2, "JS67button 1", 512, 0, 0, BIT, 1, RW ,10,1,1, 2, "JS67button 2", 513, 0, 0, BIT, 2, RW ,10,1,1, 2, "JS67button 3", 514, 0, 0, BIT, 3, RW ,10,1,1, 2, "JS67button 4", 515, 0, 0, BIT, 4, RW ,10,1,1, 2, "JS67button 5", 516, 0, 0, BIT, 5, RW ,10,1,1, 2, "JS67button 6", 517, 0, 0, BIT, 6, RW ,10,1,1, 2, "JS67button 7", 518, 0, 0, BIT, 7, RW ,10,1,1, 2, "JS67button 8", 519, 0, 0, BIT, 8, RW ,10,1,1, 2, "JS67button 9", 520, 0, 0, BIT, 9, RW ,10,1,1, 2, "JS67button 10", 521, 0, 0, BIT, 10, RW ,10,1,1, 2, "JS67button 11", 522, 0, 0, BIT, 11, RW ,10,1,1, 2, "JS67button 12", 523, 0, 0, BIT, 12, RW ,10,1,1, 2, "JS67button 13", 524, 0, 0, BIT, 13, RW ,10,1,1, 2, "JS67button 14", 525, 0, 0, BIT, 14, RW ,10,1,1, 2, "JS67button 15", 526, 0, 0, BIT, 15, RW ,10,1,1, 2, "JS67button 16", 527, 0, 0, BIT, 16, RW ,10,1,1, 2, "JS67button 17", 528, 0, 0, BIT, 17, RW ,10,1,1, 2, "JS67button 18", 529, 0, 0, BIT, 18, RW ,10,1,1, 2, "JS67button 19", 530, 0, 0, BIT, 19, RW ,10,1,1, 2, "JS67button 20", 531, 0, 0, BIT, 20, RW ,10,1,1, 2, "JS67button 21", 532, 0, 0, BIT, 21, RW ,10,1,1, 2, "JS67button 22", 533, 0, 0, BIT, 22, RW ,10,1,1, 2, "JS67button 23", 534, 0, 0, BIT, 23, RW ,10,1,1, 2, "JS67button 24", 535, 0, 0, BIT, 24, RW ,10,1,1, 2, "JS67button 25", 536, 0, 0, BIT, 25, RW ,10,1,1, 2, "JS67button 26", 537, 0, 0, BIT, 26, RW ,10,1,1, 2, "JS67button 27", 538, 0, 0, BIT, 27, RW ,10,1,1, 2, "JS67button 28", 539, 0, 0, BIT, 28, RW ,10,1,1, 2, "JS67button 29", 540, 0, 0, BIT, 29, RW ,10,1,1, 2, "JS67button 30", 541, 0, 0, BIT, 30, RW ,10,1,1, 2, "JS67button 31", 542, 0, 0, BIT, 31, RW ,10,1,1, ....... Die Reihe kann bis zu 288 vituelle Buttons fortgesetzt werden. Darauf achten, dass die Nummerierung der Einträge in der FSIF nicht doppelt auftreten, also schön am Schluß Deiner FSIF.ini anhängen. Hoffe das hilft Dir weiter. Gruß Peter |
hier bin ich nochmal. Was ich noch sagen wollte: Warum steuerst Du nicht direkt die entsprechenden offsets an? Mit den Tastaturkommandos muss man immer sehr auf Doppelbelegung aufpassen.
Im Übrigen: FSUIPC kennt 9 virtuelle Joysticks mit je 32 Tasten. Also die Reihe beginnt mit Joystick Nummer 67. Gruß Peter |
Hi Peter!
Danke erstmal für die schnelle Antwort. Natürlich würde ich die Steuerung auch lieber über Offsets vornehmen. Das verwendete AddOn unterstützt das aber nicht richtig. Daher muss ich hier mit Tastatur-Befehlen arbeiten. Deine Beschreibung klingt gut. Was ich allerdings noch nicht ganz verstanden habe...woher weiß FSUIPC dann, ob ich rechts oder links herum gedreht habe? Ich würde ja den "JS67button 0" einem Drehknopf als FS-Destination zuordnen. Der Datentyp BIT kann ja aber nur 0 und 1 annehmen. Oder verstehe ich gerade etwas falsch? Danke auf jeden Fall schon mal für Deine Hilfe!! ;-) |
Hallo,
also das mit den vituellen Joysticks geht folgendermassen: Durch die Ergänzung in der FSIF.ini (siehe meine erste Antwort) bekommst Du die Möglichkeit Deine(m)n Schalter(n) jeweils einen Button zuzuordnen. Zunächst was grundsätzliches. Wenn Du über Rotary sprichst meinst Du da etwa einen gemeinen Drehschalter mit 2 oder mehr Schaltstellungen, oder wirklich einen Rotary switch, der ja zwei unabhängige Taster besitzt, die, je nach Drehrichtung, Impulse abgeben (nie gleichzeitig, wie bei Rotary encodern die mit der Phasenverschiebung arbeiten, sondern entweder der Eine oder der Andere)? Z.B. Knitter und auch ALPS sind diese Rotary switches, die man direkt an FSBus oder sogar eine Tastatur anschliessen kann. Bei denen mit der Phasenverschiebung brauchst Du eine Interfaceschaltung (z.B. REDEC Decoder), die aus der Phasenverschiebung der Pulse zueinander die Drehrichtung ableitet. Nehmen wir an Du nimmst einen Knitter oder Alps rotary (3 Anschlüsse -> Mitte ist der Gemeinsame und je einer für links bzw. rechts), da hast Du also 2 unabhängige Taster, die je nach Drehrichtung ihre Pulse abgeben. Also ordnest Du dem einen den Befehl der z.B. bei Drehrichtung links erzeugt werden soll zu und dem Anderen den Befehl für Drehrichtung nach rechts. Diese Bits in der FSIF sind nichts weiteres, als dass diese die Wertigkeit der Bits der beiden Doppelbytes hex 334C bis 334F darstellen, also 2x16 Bit = 32 Bit. Also Bit 0 = Wertigkeit 1, Bit 1 = 2, Bit 2 = 4, usw.....siehe FSIF.ini. Aber das muss Dich eigentlich gar nicht interessieren, denn Du ordnest jedem Bit einen Schalter zu und der hat ja nur 0 oder 1, womit er das Bit bedient. Beispiel: Schalter links = Joystick 67 Button 0; Schalter rechts Joystick 67 Button 1. In FSUIPC dann auf die Button page gehen und den Schalter betätigen. FSUIPC erkennt ihn als Joystickbutton und Du kannst ihm dann ein Tastaturkommando zuweisen. Ebenso verfährst Du mit den anderen Schaltern, falls vorhanden. Huh, das war aber etwas langatmig. Hoffe es ist Dir jetzt ein bisschen klarer wie das Ganze läuft. Gruß Peter |
Hi!
Danke für die ausführliche Erklärung. Also meine Situation ist folgende: Ich habe einen Drehschalter (einen 12-Stage Rotary Encoder) den ich gemäß der Anleitung in FSBUS umgebaut habe, sodass ich ihn an die I/O-Platine anschließen kann. Also der funktioniert auch tadellos und liefert im FSBUS-Router einen Wert von +1 oder -1. Das heißt aber, dass ich NICHT zwei getrennte Schalter für jede Drehrichtung habe (so wie es bei dem Knitter ist) sondern, dass FSBUS das direkt in einen Wert umsetzt - auf der Platine. Ich verwende hier die neuen Platinen, mit dem Atmel Controller. Im Router verwende ich jetzt das Objekt "Digital Input Rotary" und dort würde ich als Destination einen der Dummy-Joystick-Knöpfe angeben. Jetzt kann der Router da aber nur den Wert +1 oder -1 reinschreiben. Und genau das ist mein Problem. Ich müsste das ja getrennt haben -> +1 führt zu Key 1 und -1 zu Key 2. Wie könnte das gehen...? |
Hallo,
OK jetzt verstehe ich Dein Problem. Am besten Du steigst auf ALPS um. Diese Dinger gibt es hier in München das Stück zu etwa 1 Euro. Und der hat sogar noch einen Push Taster in der Achse. Sonst habe ich leider auch keine weiteren Ratschläge. Einzig Dirk könnte da Hilfe leisten. Gruß Peter |
Hallo zusammen,
wo in Muenchen kriege ich denn die ALPS Encoder fuer 1Euro das Stueck? Verstehe ich das richtig dass ich fuer diese Rotarys keine Zwischenschaltung brauche um sie an mein FSBUS-System anzuschliessen? |
Hallo Hamun,
zu 1.) bei "MIR", einem Surplusladen in der Landwehrstrasse / Ecke Schillerstrasse. Ich weiß allerdings nicht wieviele da noch zu haben sind, war ein Sonderposten. zu 2.) Richtig, diese ALPS Rotaries sind vom Prinzip her genau wie die Knitter nur sind sie im Alugehäuse und haben auch noch einen achsialen Push Schalter. Also direkt anschliessen und sich freuen. Gruß Peter |
Hallo Hamun,
hat es Dir vor lauter Freude die Sprache verschlagen? Wieviele von den Dingern brauchst Du? Falls Du möchtest, könnte ich Dir gerne bei der Beschaffung helfen. Muss am 9.3. gesch. nach EDDF. Gruß Peter |
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag