HOTAS Cougar Control Panel (CCP) Manual
Transcrição
HOTAS Cougar Control Panel (CCP) Manual
THRUSTMASTER HOTAS COUGAR REFERENZ-BUCH THRUSTMASTER ZUR ÜBERSETZUNG Geschafft! Das folgende Referenz-Buch ist eine 1:1-Übersetzung des englischen Originals. Ich habe versucht, die meisten englischen Begriffe so gut es eben geht mit zu übersetzen; dies mag mitunter gewöhnungsbedürftig erscheinen (Was ist ein „Button“ – ein Knopf, ein Schalter, eine Joystick-Taste? Mal so, mal so, je nach Zusammenhang... und ein „Toggle“ ist auch ein Schalter – was nun? Ein „Flag“ ist natürlich keine „Fahne“, aber „Marker“ klingt irgendwie... krumm, und eigentlich verhält es sich ja – hoppla – auch wie ein Schalter... Wo ist übrigens der „Aus“-Schalter?!), schien mir aber zum besseren Verständnis sinnvoll (für all’ jene, die ihr Englisch nicht von Shakespear, sondern von Hugh Hefner ! gelernt haben...). Wenn also von „ich“ und „wir“ die Rede ist, ist damit der Verfasser des jeweiligen Kapitels bzw. das Cougar-Team gemeint, nicht meine Wenigkeit (den Pluralis Majestatis würde ich mir auch nicht anmaßen), es sei denn, es handelt sich um eine der wenigen speziell gekennzeichneten Anmerkungen des Übersetzers. Im Allgemeinen habe ich allerdings auf jegliche Kommentierung verzichtet, auch wenn vielleicht der eine oder andere Punkt etwas anders oder einfacher oder genauer hätte erklärt werden können; insgesamt ist dieses Referenz-Buch schlicht und einfach das umfangreichste und ausführlichste, was jemals mit einem Joystick ausgeliefert wurde – wie eben der Cougar die absolute Referenz und den Maßstab des technisch Möglichen darstellt, weit jenseits dessen, was für andere Hersteller üblich oder machbar ist. Als langjähriger Thrustmaster-Veteran ! spreche ich aus Erfahrung: mein mittlerweile über 8 Jahre alter, aller erster Thrustmaster-Joystick, ein F-16 FLCS (mit Bob Church’s digitalem Chipsatz aufgerüstet, also nun ein SWF22) mit der Schubkontrolle TQS und den großen RCS-Ruderpedalen, funktioniert wie am ersten Tag (...mal ehrlich: wie viele Generationen von anderen Joysticks habt Ihr seitdem das Zeitliche segnen sehen?) – aus Plastik, wohlgemerkt, und der HOTAS Cougar ist komplett aus Metall: was Ihr feuchten Auges in Händen haltet, könnte sich zum echten Familienerbstück entwickeln... Also, keine Angst: dieses Referenz-Buch ist nicht deshalb so umfangreich, weil der Cougar so kompliziert zu bedienen wäre, sondern im Gegenteil:: um Euch auch wirklich jede denkbare Frage zum Cougar leicht verständlich und doch ausführlich zu beantworten, und zwar nicht als reine Funktions-Übersicht, sondern eher als „Lehrbuch“ (allerdings überhaupt nicht „trocken“). HOTAS Cougar Reference Book 2 THRUSTMASTER DANKE also an alle Beteiligten, die diesen – nicht nur ihren, auch meinen und Euren – Traum haben wahr werden lassen: die Auferstehung einer – der – Legende, strahlender als jemals zuvor! Im speziellen natürlich an Guillaume „Dimebug“ Lelevé, der ganz unschuldig anfragte, ob ich „vielleicht Interesse an der Übersetzung der CougarHandbücher ins Deutsche haben könnte“, und James „Nutty“ Hallows, der nach Jahren unermüdlicher „ehrenamtlicher“ Arbeit zugunsten DOS-geschädigter Schubmeister ! dem Kätzchen eine ebenbürtige Benutzeroberfläche auf den Leib geschneidert hat, sowie Mark „The Moon“ Mooney und David „The Block“ Block, die die undankbare Aufgabe, die Träumereien der oben genannten Phantasten in die Wirklichkeit umzusetzen, mit Bravour gemeistert haben – ich hatte seit Mai genügend Zeit, wirklich zu glauben, was Ihr in diesem Referenz-Buch finden werdet... Also, krault das Kätzchen und lasst es schnurren – und zeigt allen anderen seine Krallen... Muckelangelo’s „Creati HOTAS“ ©2001-2002 Ulf „Don ULFonso“ Muckel http://www.Thrustmaster-X-Files.de/ April 2002 HOTAS Cougar Referenz – Buch 3 THRUSTMASTER EINLEITUNG Willkommen! Nun, zu aller erst, GRATULATION und DANKE für die Investition in den Thrustmaster HOTAS Cougar! Der massive, leistungsfähige und präzise Controller, den Du nun in Händen hältst, ist das stolze Resultat einer vollen zweijährigen Entwicklungszeit voller engagierter, zielgerichteter Studien und Forschung, geleitet vom schlichten Wunsch, einen – den – innovativen Simulations-Spielcontroller zu schaffen, der allen Erwartungen selbst der forderndsten Spieler gerecht würde. Und hier ist er – der stolze Erbe der FLCS and F-22 PRO Serie! Und wenn schon die Herausforderung, einen solchen würdigen Nachfolger der bisherigen Serie zu entwickeln, allen Beteiligten viel Spaß bereitete, war die erfolgreiche Umsetzung der Wiedergeburt einer Legende wesentlich mehr als... ähem, herausfordernd – und das ist noch untertrieben! Als dieses verrückte Projekt begann, fand sich Thrustmaster vor zwei Möglichkeiten: die existierenden Sticks einfach zu modernisieren und ihre bestehenden Funktionen zu bewahren und zu erweitern, oder komplett neu zu beginnen und ein vollkommen verbessertes Produkt zu entwickeln. Offensichtlich hat Thrustmaster durch die Wahl der letzteren Möglichkeit auch beschlossen, den denkbar härtesten möglichen Weg zu gehen. Aus welchen unvorstellbaren Gründen? Ganz einfach – wann immer Thrustmaster zuvor beschlossen hatte, einen neuen HOTAS Controller erscheinen zu lassen, sollte dieser Joystick immer auch die Qualität erneut auf ein höheres Niveau heben und jede Meßlatte weit jenseits dessen ansiedeln, was die jeweils derzeitigen Standards zu bieten hatten – kurz, mit dem HOTAS Cougar war die Zeit einfach reif für eine Neudefinition dessen, was ein wirklicher Spitzenklasse-Joystick sei. Das Resultat von endlosen Sitzungen und schlaflosen Nächten ist nun dieser hochrealistische, unglaublich vielseitige und anpassungsfähige und höchst leistungsfähige Controller – mit seiner erstaunlichen Vielfalt bislang unerreichter Funktionen, wie austauschbare Griffe, fortschrittlicher (und trotzdem einfacher) Programmierung, kinderleichtem Plug’n’Play-Anschluß, der Anzahl (und dem Gewicht) der Metallteile, die den HOTAS Cougar ohne jeden Zweifel zu einer lohnenden Anschaffung für viele kommende Jahre machen. Es ist darüber hinaus auch ein Erfolg für die gesamte Simulationen liebende Spielergemeinschaft – dieses Meisterwerk ist kein billiger, einfacher, leichtgewichtiger Joystick für die alten Arcade-Automaten, sondern ein außergewöhnlicher, hochmoderner Nachbau der Flugkontrollen der F-16, für alle die, die nichts als das Beste verlangen – in der Tat der ultimative Spitzenklasse-Flugsteuerknüppel, der nicht nur gegnerische, sondern alle Spieler wünschen lassen wird, sie hätten sich doch vielleicht besser zum Bodenpersonal gemeldet! HOTAS Cougar Referenz – Buch 4 THRUSTMASTER Natürlich hätte diese Bestie niemals das Tageslicht erblickt, ohne all die Unterstützung und Ermutigung, die wir von allen möglichen Leuten bekamen, die wir auf Ausstellungen trafen, die mit uns in den Foren und per E-Mail diskutiert haben – daher, an Euch alle da draußen, danke für Eure Unterstützung! Und lasst uns nicht diejenigen Leute vergessen, die in der Tat unseren besonderen Dank verdienen; zu aller erst die Angestellten von Thrustmaster/Guillemot, die an diesem Projekt gearbeitet haben, und die Beta-Tester, die großartige Arbeit geleistet haben, alle diese Fehler auszumerzen, und unter Gefahr für Leib und Leben mit diesem gefährlichen Gerät herum experimentiert haben … Außerdem, danke an unsere Freunde und Familien, die die ganze Zeit mit uns gefiebert haben! OK, genug der Sentimentalitäten, zurück zur Wirklichkeit! Falls Ihr mit den bisherigen Produkten der Thrustmaster Flugsimulations-Controller bereits vertraut seid, werdet Ihr ob der Fähigkeiten des HOTAS Cougar erstaunt sein – und Euch gleichzeitig auch wieder zu Hause fühlen. Tatsächlich mögen einige Funktionen bekannt erscheinen, aber lasst Euch nicht auf den Holzweg führen – es ist alles neu, und als erfahrene Flugsimulations-Fans werdet Ihr, besser als irgendwer sonst, diejenigen sein, die unsere harte Arbeit und die unerhörten neuen Möglichkeiten wirklich zu würdigen wissen. Mit dieser Neuerscheinung haben wir alle Punkte überarbeitet und verbessert – die Mechanik, die Elektrik, und die Software. Während es nicht weiter schwierig war, die immerhin sieben Jahre alte Bedienerführung Benutzer-freundlicher zu gestalten, haben wir beschlossen, jedem Spieler da draußen, auch Anfängern, eine Möglichkeit zu bieten, auch wirklich alles aus diesen umfangreichen Möglichkeiten zu holen. Tatsächlich hat erst Microsoft Windows HID-konforme Controller ermöglicht – Plug’n’Play Joysticks, die keinerlei spezielle Konfiguration benötigen, um zu funktionieren. Nun, das ist genau, was der HOTAS Cougar zu bieten hat – einfach anschließen und loslegen … es ist tatsächlich so einfach. Tja, tolle Neuigkeiten – allerdings erwarten eine Menge von Euch, die den HOTAS Cougar eben wegen seiner versprochenen fortschrittlichen ProgrammierungsMöglichkeiten erworben haben, eine Menge mehr von uns als lediglich einen großartigen Controller. Ohren und Augen auf – hier kommt’s! Zusätzlich zur unerreichten Präzision bietet der HOTAS Cougar die gleichen ProgrammierFunktionen wie schon der F-22… und viele, viele mehr, wie Ihr beim Lesen dieses Referenz-Buchs feststellen werdet. Diese Programmier-Möglichkeiten, die im folgenden erklärt werden, sind in der Tat so mächtig und umfassend, dass sie Euch ermöglichen werden, nicht nur jedes Eurer Programme dahingehend zu optimieren, das Beste aus jedem Spiel zu machen, sondern sogar Fehler oder fehlende Funktionen in einer Simulation zu korrigieren. Also, der beste Weg, diese Möglichkeiten zu entdecken und zu lernen (ohne starke Migräne oder durch Code verursachte Albträume, natürlich), ist, sich sorgfältig und aufmerksam durch dieses literarische Meisterwerk zu schmökern und sich die nötige Zeit zu nehmen und sich zu fragen “OK, was soll ich also jetzt wohl damit anfangen?” HOTAS Cougar Referenz – Buch 5 THRUSTMASTER Wie bereits erklärt, betrachten wir diese Dokumentation eher als „Referenz-Buch“ denn als schlichtes „Handbuch“. Jeder, der noch die alten Handbücher für F-16 FLCS, TQS und F-22 PRO in Erinnerung hat, wird den Unterschied begrüßen. Es enthält alles, was man wissen muss, vom Anschluss der Controller über die Einrichtung mittels des CCP bis zur Programmierung, angefangen bei den Grundlagen bis hin zu detaillierten Informationen zu jedem Aspekt der Programmierbefehle, die den HOTAS Cougar deutlich von anderen programmierbaren Joysticks abheben. Zur Unterstützung dieses ReferenzBuchs und Vertiefung finden sich ausführliche Hilfe-Dateien, Assistenten, Schulungen und andere nützliche und intuitive Anwendungen innerhalb der Programme zum HOTAS Cougar. Dies ist unserer Meinung nach die bisher umfassendste und umfangreichste Dokumentation, die jemals mit einem Controller ausgeliefert wurde. Macht Euch allerdings keine falschen Vorstellungen hinsichtlich des HOTAS Cougar und seines Referenz-Buchs – dies ist ein echter Spitzenklasse-Controller. Und dieses Referenz-Buch hat Abschnitte und Themen, die Ihr mehr als einmal lesen werdet. Doch einer der Gründe für den Umfang dieses Handbuchs ist eben die Erkenntnis, dass die bisherigen Handbücher für die älteren TM Joysticks als zu kurz empfunden wurden und der Start daher als zu schwierig. Gerade deshalb soll diese Handbuch sehr einfach zu lesen sein und alles langsam und einfach einführen. Es ist übersichtlich für alle, die lediglich einen groben Überblick über eine Funktion oder einen Befehl erhalten wollen, und bietet vertiefende und ausführliche Informationen für die, die eben das wünschen. Wie weit fortgeschritten Ihr auch sein mögt (oder noch nicht ;-) ), Ihr werdet genau das finden, was Ihr sucht und braucht. Sollte dies also Euer erster TM Joystick sein, empfehlen wir, sich die Zeit zu nehmen und die ersten Kapitel dieses Buches durchzulesen, sonst werdet Ihr wahrscheinlich niemals in der Lage sein, wirklich alles aus dem HOTAS Cougar herauszuholen. Dieser ist in der Tat äußerst flexibel in seiner Programmierung und bietet verschiedene Wege und Methoden, zu ein und demselben Ziel zu gelangen – aber Obacht, es läuft nichtsdestotrotz auf Programmierung hinaus, und dafür gilt vor allem: je logischer und methodischer Ihr vorgeht, desto besser und einfacher. Genug der Worte – jetzt seid Ihr an der Reihe! Lest (und lernt) weiter, nutzt diesen ultimativen Controller und zeigt Euren Gegnern die Krallen Eurer Raubkatze! Die spanische Übersetzung dieses Buchs gibt es auf: http://www.escuadron111.com Die französische Übersetzung dieses Buchs gibt es auf: http://www.checksix-fr.com/ Die holländische Übersetzung dieses Buchs gibt es auf: http://thrustmaster.vanree.net/ Die deutsche Übersetzung dieses Buchs gibt es auf: http://www.thrustmaster-x-files.de/ Die russische Übersetzung dieses Buchs gibt es auf: http://www.hotas.ru HOTAS Cougar Referenz – Buch 6 THRUSTMASTER DANKSAGUNG Unser tiefster Dank geht an die folgenden Leute und Web-Seiten für ihre Hilfe und Unterstützung im Laufe dieses umfangreichen Projektes – Danke Euch allen! ! Beta-Tester Olivier „Red Dog" Beaumont Robin „Emacs" Breyl Jan-Albert „Anvil" van Ree James „Nutty" Hallows Firmen und Verbaende Mark „Frugal” Bush & frugalsworld.com Wingmen-alliance.com Combatsim.com Escuadron 111.com Ubi Soft Microsimulateur Checksix-fr.com SimHQ.com Dogfighter.com Sim-arena.com Desktopsims.com Aimsworth Coproration Gamekult.com Fast Jet Flight Simulation (a.k.a. HAM technologies) Spezieller Dank Len „Viking1" Hjalmarson Matt Wagner James R Campisi Flavien „Vox" Duhamel François Pimenta David „Micro" Vely Philippe „Twech" Dezeure Philippe „Jag" Dubois Lew/+Silat Rob Coppock Laurent Espinasse Fernando Oscar Garcia Minguillán HOTAS Cougar Referenz – Buch Guillaume „Ghostrider" Houdayer Oleg Maddox Jim Staud Jean-Dominique „Bing" Belin Emmanuel „Judy" Durant Thomas „Doloop" Coulomb Denis „Dugin" Blary David „Zip" Pierron Ulf „DonULFonso” Muckel Hal Bryman Jose „Oso" Benito Stanislav „huMMer" Vartanian 7 THRUSTMASTER HOTAS COUGAR CONTROL PANEL (CCP) REFERENZ-BUCH THRUSTMASTER EINFÜHRUNG...............................................................................................................10 ACHSEN-PROFILE.......................................................................................................11 VOREINSTELLUNG (DEFAULT) ..............................................................................9 SICHERN (SAVE) ....................................................................................................11 LADEN (LOAD) .......................................................................................................11 LÖSCHEN (DELETE) ..............................................................................................11 JOYSTICK-BETRIEBSARTEN.....................................................................................12 ACHSEN-EMPFINDLICHKEIT ................................................................................12 ACHSEN-EINSTELLUNGEN........................................................................................13 ACHSEN-PARAMETER SCHALTFLÄCHEN .........................................................13 Anwenden (Apply)............................................................................................................. 13 Wiederherstellen (Retrieve) .............................................................................................. 13 ACHSEN-EINRICHTUNG ........................................................................................14 Änderung der Achsen-Zuweisungen ................................................................................ 14 Umkehr der Richtung einer Achse.................................................................................... 17 Sperren einer Achse ......................................................................................................... 17 Änderung einer Windows-Achse ...................................................................................... 18 VORHANDENE ANGESCHLOSSENEN ACHSEN.................................................19 WINDOWS-ACHSEN...............................................................................................20 ACHSEN-VERLAUF ................................................................................................20 Toleranz-Zone................................................................................................................... 21 Kalibrierungs-Zentrierung ................................................................................................. 23 Achsen-Trimmung............................................................................................................. 23 Kurven-Faktor ................................................................................................................... 25 EINRICHTUNG & KALIBRIERUNG ........................................................................27 Einrichtungs-Optionen ...................................................................................................... 27 Kalibrierung....................................................................................................................... 28 Manuelle Kalibrierung ....................................................................................................... 30 AKTIONEN UND WEITERE OPTIONEN......................................................................31 GERÄT ZURÜCKSETZEN ......................................................................................31 TASTEN- & ACHSEN-EMULATION .......................................................................31 IN DEN JOYSTICK LADEN.....................................................................................31 ABFRAGE-OPTION (POLL DEVICE) .....................................................................33 CCP MINIMIEREN / TASKBAR-SYMBOLE............................................................33 HOTAS Cougar Referenz - Buch 9 THRUSTMASTER Einführung Der HOTAS Cougar ist eine virtuelle, treiberlose Joystick-Lösung, welche keinerlei Hintergrundprogramme benötigt, um die verschiedensten Achsen-Einstellungen oder –Emulationen jeglicher Art umzusetzen. Dazu ist es notwendig, dass der Joystick selbst alle Änderungen bezüglich der Achsen-Einstellungen kennt und regelt, weshalb andere Anwendungen, wie z.B. „CTFJ“ (Bob Churchs „Centering Tool For Joysticks“), und selbst die Windows-eigene Kalibrierung, nicht verwendet werden sollten – andernfalls würden viele fortschrittliche Funktionen bezüglich der AchsenEinstellungen abweichende Ergebnisse liefern. ACHTUNG: ZUR KALIBRIERUNG DES HOTAS COUGAR AUSSCHLIESSLICH DAS „HOTAS COUGAR CONTROL PANEL” VERWENDEN, NICHT DIE WINDOWS-EIGENE KALIBRIERUNGS-ROUTINE! Die HOTAS Cougar Control Panel (CCP) Anwendung dient der Veränderung verschiedener Einstellungen des HOTAS Cougar, von der Zuordnung der Achsen bis hin zu den verschiedenen Betriebsarten des Joysticks (Emulation, Windowskonform…). Was in diesem Referenz-Buch folgt, ist eine Schritt-für-Schritt Erklärung ihrer Schaltflächen, und der Art und Weise, wie diese die Funktionsweise des Joysticks beeinflussen. Um die derzeitigen, aktiven Einstellungen des Joysticks anzuzeigen, öffne das HOTAS CCP, während der Joystick angeschlossen ist. Abbildung 1: HOTAS Cougar Control Panel mit den Voreinstellungen HOTAS Cougar Referenz - Buch 10 THRUSTMASTER Achsen-Profile Profile dienen dem schnellen Zugriff auf bereits erstellte Konfigurationen durch Laden in das HOTAS CCP und den Joystick. Im „Profile”-Abschnitt des HOTAS CCP finden sich vier Schaltflächen: „Default (Voreinstellung)”, „Load (Laden)”, „Save (Sichern)” und „Delete (Löschen)”, welche im folgenden erklärt werden. Voreinstellung (Default) Durch einen Mausklick auf die Voreinstellungs-Schaltfläche werden die Grundeinstellungen des Joysticks im „Windows”-Modus angezeigt. Diese beinhalten eine DirectX-gemäße Achsen-Zuweisung mit den meisten Achsen in üblicher positiver Richtung, oberer und unterer Toleranz-Zone von 5% und zentraler Toleranz-Zone von 7%, linearer Kurveneinstellung von 0 mit zentrierter Basis, und gesperrter „Windows Achsen an/aus”-Auswahl. Falls der Joystick angeschlossen ist, die Bildschirmanzeige jedoch keinen Sinn zu machen scheint, ist das einfachste, die Schaltfläche „Voreinstellung” anzuklicken und dann erst (oder wieder) Änderungen vorzunehmen. Sichern (Save) Die Schaltfläche „Sichern” sichert die aktuelle Konfiguration, die in dem Abschnitt „Achsen-Einstellungen” vorgenommen wurde, in das Verzeichnis /HOTAS/Profiles, mit der Datei-Erweiterung „.TMC“ (Thrustmaster Configuration). Falls eine Kalibrierung durchgeführt wurde, wird diese ebenfalls in dieser Datei mitgespeichert. Auf diese Weise kann man verschiede Achsen-Einstellungen für verschiedene Spiele abspeichern (und später einfach wieder laden). Laden (Load) Die Schaltfläche „Laden” lädt ein zuvor gespeichertes Konfigurations-Profil in die grafische Anzeige des CCP. Dies lädt diese Daten jedoch noch nicht in den Joystick; dies erfordert noch die Anwahl der „Anwenden”-Schaltfläche, die weiter unten noch beschrieben wird. Loeschen (Delete) Diese Schaltfläche löscht ein Profil (von der Festplatte: die gesamte Profil-Datei, nicht nur die Bildschirm-Anzeige)! HOTAS Cougar Referenz - Buch 11 THRUSTMASTER Joystick-Betriebsarten Das HOTAS CCP ermöglicht verschiedene Joystick-Betriebsarten, basierend auf den Achsen-Einstellungen und Kalibrierungs-Daten, sowie verschiedener Emulationen. Um diese Modi einzustellen ist keine Anwahl der „Anwenden”Schaltfläche nötig, da jegliche Änderung bezüglich der Achsen den Joystick automatisch in den entsprechenden Modus versetzt. AchsenAchsen-Empfindlichkeit Als Voreinstellung benutzt der Joystick die Grundeinstellungen für die Achsen und ihr Verhalten. Diese Daten werden immer in den angeschlossenen Joystick geladen und verwendet – mit Ausnahme der nummerierten Achsen, falls im letzten Download der „sichtbare Status” angewählt wurde (dieser wird weiter unten im Kapitel „Änderung von Windows-Achsen” erklärt). Wenn das AchsenVerhalten im Anwender-definierten Modus ist, benutzt der Joystick die folgenden Daten, soweit vom Anwender angegeben: • • • • • • • Achsen-Zuweisung Umkehr von Achsen Sperrung von Achsen Kurven-Informationen Kurven-Basis Toleranz-Zone Achsen-Trimmung Für Informationen bezüglich der Kalibrierungs-Optionen und der EmulationsModi, siehe die entsprechenden Kapitel. HOTAS Cougar Referenz - Buch 12 THRUSTMASTER Achsen-Einstellungen Die HOTAS CCP Anwendung besteht aus drei Reitern: „Achsen-Einstellungen“, „Achsen-Verhalten“, und „Start & Kalibrierung“. Änderungen in jedem dieser Bereiche führen noch nicht direkt zur Übernahme durch den Joystick; zuvor muss jegliche Änderung von Einstellungen übernommen werden, und das AchsenVerhalten muss auf „Anwender-Modus“ gestellt werden, bevor der Joystick diese geänderten Einstellungen übernimmt. Um den Erklärungen besser folgen zu können, öffnet zunächst das HOTAS CCP, und klickt auf die Schaltfläche „Default (Voreinstellung)“. SchaltflAEchen AchsenAchsen-Einstellungen Außer den zuvor erwähnten Reitern enthält dieser Bereich zwei Schaltflächen: „Wiederherstellen (Retrieve)” und „Anwenden/Übernehmen (Apply)”. Ihre Funktion und Verwendung werden in den folgenden Abschnitten erklärt. Anwenden (Apply) Die Schaltfläche „Anwenden“ lädt die in den Achsen-Einstellungen beschriebenen Konfigurations-Einstellungen in den Joystick. Bevor diese Aktion durchgeführt wird, nimmt der Joystick keinerlei Kenntnis von jeglichen Änderungen auf den beiden Reitern; erst die „Anwenden“-Schaltfläche lädt die derzeitig angezeigten und definierten Änderungen in den Joystick. Damit der Joystick diese Informationen auch nutzen kann, muss er auf den „Anwender“Modus umgestellt werden, was mit dem Klick auf „Anwenden“ automatisch geschieht. Wiederherstellen (Retrieve) Diese Schaltfläche lädt die derzeitige Konfiguration des Joysticks in das CCP. Falls irgendwelche Einstellungen im „Emulations“-Modus geändert werden, lässt sich dies nach einer „Wiederherstellen“-Operation in den entsprechenden Bereichen überprüfen. Die HOTAS CCP Anwendung führt beim Start automatisch eine solche „Wiederherstellen“-Operation aus und zeigt die derzeitige Konfiguration des Joysticks an; falls der Joystick nicht angeschlossen ist, wird eine Fehlermeldung angezeigt und stattdessen die Voreinstellung angezeigt. Durch Anwahl der „Wiederherstellen“-Schaltfläche kann man sich also auch die derzeitigen Einstellungen des Joysticks anzeigen lassen. HOTAS Cougar Referenz - Buch 13 THRUSTMASTER Reiter AchsenAchsen-Einrichtung (Achsen Setup) Verschiedene Funktionen sind auf dem Reiter „Achsen-Einrichtung” verfügbar, und ihr Zweck lässt sich folgendermaßen zusammenfassen: • • • • Ändern der Achsen-Einrichtung Umkehr der Richtung einer Achse Sperrung der Werte einer Achse Änderungen bezüglich der von Windows erkannten Achsen Diese Funktionen werden in den entsprechenden Abschnitten ausführlich erklärt. Aenderung der Achsen-Zuweisung Falls eine bestimmte Achse für eine spezielle Konfiguration eigentlich eine andere Achse kontrollieren soll, ist der einfachste Weg, dies zu bewerkstelligen, die Achsen-Zuweisung zu verändern. Für den Standardfall nur mit angeschlossener TQS (Schubkontrolle) sieht die Achsen-Zuweisung wie folgt aus: Abbildung 2: Achsen-Zuweisung der Standard-Konfiguration HOTAS Cougar Referenz - Buch 14 THRUSTMASTER Die verschiedenen Felder des Reiters „Achsen-Zuweisung” zeigen die derzeitige Konfiguration der Achsen und ihrer Zuweisung an; hiernach ist die X-Achse die erste Achse, die Y-Achse die zweite, die Schubkontrolle die dritte, usw. … Falls wir möchten, dass die zweite Achse (die DirectX Y-Achse) statt dessen mittels der Schubkontrolle kontrolliert werden soll (z.B. für Rennspiele), brauchen wir nur auf die entsprechende „Schubkontrolle”-Reihe in der zweiten Spalte zu klicken, woraufhin die Anzeige sich ändert und folgendermaßen aussieht: Abbildung 3: Achsen-Zuweisung mit Schubkontrolle als Y-Achse Wie man sieht, ist nun die Schubkontrolle der zweiten Position zugewiesen, und die Y-Achse hat den Platz der Schubkontrolle als dritte Achse eingenommen. Alle Achsen-Wechsel können auf diese Weise durchgeführt werden, und obwohl Windows die Achsen mit ihrer geänderten Zuweisung „sieht”, bleibt jegliche Joystick-interne Achsen-Programmierung – inklusive jeglicher eventuellen Richtungsumkehrung, Änderungen des Kurvenverhaltens oder der ToleranzZone, oder Emulationen - davon unberührt; falls also die Schubkontrolle in der Programmdatei dahingehend programmiert wird, ein spezielles Kurvenverhalten zu zeigen, und dann im CCP mit der Y-Achse getauscht wird, wird die Schubkontrolle nun die Y-Achse in genau derselben Weise kontrollieren, wie sie es für ihre eigene Achse getan hätte. HOTAS Cougar Referenz - Buch 15 THRUSTMASTER Zu beachten ist, dass der Hintergrund der Schalter in der sechsten bis achten Spalte ausgegraut sind, im Gegensatz zu den anderen (welche hellblau sind). Dies ist der Fall, da in dieser Konfiguration keinerlei Ruderpedale angeschlossen sind. Die hellblau hinterlegten Schalter zeigen die tatsächlich angeschlossenen Achsen an. Würden z.B. die X- und die Y-Achse vom Microstick kontrolliert werden, sähe der Reiter folgendermaßen aus: Abbildung 4: Reiter „Achsen-Zuweisung” mit dem Microstick zugewiesenen X- und Y-Achsen HOTAS Cougar Referenz - Buch 16 THRUSTMASTER Umkehr der Richtung einer Achse Um die Richtung einer Achse umzukehren, genügt ein Klick auf das „Plus” (oder „Minus”)-Zeichen der entsprechenden Achse. Für den Fall, dass die Richtung der Y-Achse umgekehrt werden soll, sähe die Anzeige folgendermaßen aus: Abbildung 5: Reiter „Achsen-Zuweisung” mit umgekehrten X- und YAchsen Sperren einer Achse Rechts von jeder Achsen-Bezeichnung findet sich ein Schloss-Symbol. Ist ein solches Schloss offen und grün, so ist diese Achse „offen” und verhält sich normal. Ist ein Schloss geschlossen und rot, so ist diese Achse „gesperrt” und ihre Werte können nicht mehr verändert werden. Um den Zustand eines Schlosses zu ändern, genügt ein Klick zum Hin- und Herschalten zischen beiden eben erklärten Möglichkeiten. HOTAS Cougar Referenz - Buch 17 THRUSTMASTER Aenderung einer Windows-Achse Diese Überschrift mag der folgenden Funktion nicht ganz gerecht werden, ist jedoch, ohne allzu technisch zu werden, die beste Umschreibung. Zu beachten ist, dass oberhalb jeder Spalte ein nummerierter Knopf zu finden ist, wobei in der Voreinstellung ein rotes „Nicht”-Zeichen über den Zahlen 9 und 10 steht – diese Schalter sind hier abgebildet: Abbildung 6: Die „nummerierten Achsen-Schalter" des Reiters „AchsenZuweisung” Jede dieser Nummern steht für eine der DirectX-Achsen: Achsen-Nummer 1 2 3 4 5 6 7 8 9 10 DirectX Achsen-Name X-Achse Y-Achse Z-Achse drehbare X-Achse Schieber 0 drehbare Z-Achse Schieber 1 drehbare Y-Achse <nicht verfügbar> <nicht verfügbar> Tabelle 1: Achsen-Nummern und ihre DirectX-Namen Zusätzlich zum Umstand, dass die neunte und zehnte Achse nicht angewählt werden können, ist es ebenfalls unmöglich, die erste und zweite Achse auszuschalten, da die Programmierung jedes Joystick-Treibers zumindest diese beiden Achsen voraussetzt. Beim Klick auf jede der Nummern von drei bis acht wird das rote „Nicht”-Symbol an- und wieder ausgeschaltet. Wenn der Joystick angeschlossen ist, ergeben sich die Nummern der Achsen wie auch die Anzahl der von Windows „gesehenen” Achsen auf eine von zwei möglichen Weisen: 1. Die tatsächlich „physikalisch“ angeschlossenen Joysticks 2. Der Status dieser „nummerierten Schalter” Die Erklärung dieser zwei Punkte folgt auf der nächsten Seite. HOTAS Cougar Referenz - Buch 18 THRUSTMASTER Vorhandene angeschlossenen Achsen Was heißt „vorhandene angeschlossenen Achsen” eines Joysticks? Nichts weiter, als welche anderen Controller (wie z.B. Schubkontrolle, Ruderpedale) an den Joystick angeschlossen sind, wodurch sich die Anzahl der von Windows am Cougar zu erkennenden Achsen ergibt. Sechs „physikalische Setups” sind für den HOTAS Cougar möglich: 1. 2. 3. 4. 5. 6. der Joystick ist alleine angeschlossen der Joystick ist mit angehängter TQS angeschlossen der Joystick ist mit den regulären 1-achsigen RCS angeschlossen der Joystick ist mit den neuen 3-achsigen RCS angeschlossen der Joystick ist mit der TQS und den regulären RCS angeschlossen der Joystick ist mit der TQS und den neuen RCS angeschlossen Jede dieser Möglichkeiten führt zu verschiedenen Kombinationen von Achsen unter Windows. Die folgende Tabelle zeigt alle sechs Möglichkeiten, und welche Achsen für jede einzelne vorhanden sind. Konfiguration ACHSENACHSEN-NAMEN 1 2 3 4 5 6 X Y • • • • • • • • • • • • Z Rx SL0 • • • • • HOTAS Cougar Referenz - Buch • • • • Rz • • • • SL1 Ry • • • • 19 THRUSTMASTER Achsen unter "Ermoegliche WindowsWindows-Achsen Status" Mittels der nummerierten Schalter lässt sich festlegen, welche Achsen von Windows erkannt werden können. Das Vorgehen zur Nutzung dieser Schalter ist wie folgt: 1. 2. 3. 4. Auswahl der Achsen, die von Windows „gesehen” werden sollen, durch Ein- oder Ausschalten der entsprechenden nummerierten Schalter, bis die gewünschte Konfiguration erreicht ist. Markierung des „Übernahme der sichtbaren/unsichtbaren WindowsAchsen”-Kontrollkästchens. Laden der Konfiguration in den Joystick durch Klick auf die „Anwenden“Schaltfläche und anschließender Neustart des Joysticks mittels „OK“. Nun wird der Joystick von Windows neu erkannt und mit den angegebenen Achsen „gesehen“. Der Punkt ist, dass selbst wenn eigentlich keinerlei Ruderpedale angeschlossen sind, DirectX auf diese Weise vorgegaukelt werden kann, dass welche vorhanden wären, um dann deren Verhalten mittels einer anderen der tatsächlich vorhandenen Achsen zu kontrollieren, oder auch durch eine Emulationsdatei. Zu beachten ist dabei, dass der Joystick sich immer im Anwender-definierten „Ermögliche Windows-Achsen Status”-Modus befindet, solange die letzte (also aktuelle) geladene Datei dieses „Übernahme der sichtbaren/unsichtbaren WindowsAchsen”-Kontrollkästchen aktiviert hat. Reiter AchsenAchsen-Verlauf Der Reiter „Achsen-Verlauf” enthält Einstellungen zur Veränderung eher fortgeschrittener Joystick-Funktionen, und ermöglicht eine individuelle Anpassung jeder Achse an die Bedürfnisse des Anwenders. Das „zu verändernde Achse”Kästchen wählt die gewünschte Achse aus den zehn möglichen zur weiteren Bearbeitung aus. Nachdem eine Einstellung geändert wurde, wird diese grafisch in der Anzeige rechts der Liste der verschiedenen Parameter angezeigt. Änderungen werden aktualisiert durch einen Wechsel der Einstellungs-Kategorie, oder durch die Schaltfläche „Auffrischen” oben rechts. Die verschiedenen einstellbaren Werte sind: • • • • • • obere Toleranz-Zone (UDZ) untere Toleranz-Zone (LDZ) mittlere Toleranz-Zone (CDZ) Kalibrierungs-Mitte Achsen-Trimmung Kurven-Einstellungen (Faktor und Basis) Die hier aufgeführten Parameter können mittels verschiedener Joystick-Betriebsarten aktiviert werden. HOTAS Cougar Referenz - Buch 20 THRUSTMASTER Toleranz-Zone Durch Veränderung der Toleranz-Zone (UDZ: obere, LDZ: untere, CDZ: mittlere Toleranz-Zone) kann der inaktive Bereich jeder Achse eingestellt werden. Die Auswirkung von Veränderungen wird dabei in der Anzeige rechts von den Schiebereglern als hellroter Bereiche hervorgehoben. Alle Werte besitzen einen Höchstwert von 100%, wobei diese 100% ungefähr 30% der tatsächlichen AchsenBewegung des Joysticks entsprechen. So verwendet z.B. der Joystick als Voreinstellung jeweils 1% für die einzelnen Toleranz-Zonen, im Gesamten also 3% der kompletten Achsen-Bewegung. Die folgende Abbildung zeigt diesen Reiter: Abbildung 7: Reiter „Achsen-Verlauf” laut Voreinstellung Auf dieser Abbildung sieht man diese hell-roten Bereiche an jeder Seite und in der Mitte der Anzeige. Diese zeigen das Verhältnis zwischen der Position der JoystickBewegungsachse und der von Windows verwendeten Werte, welche für Spiele benutzt werden. Zur Orientierung steht die waagerechte Achse der Anzeige für die vom Joystick gelesenen Werte der Achse, links beginnend mit dem kleinsten Wert. Die senkrechte Achse steht für die vom Joystick an Windows übergebenen Werte, startend mit dem kleinsten Wert unten. Zu beachten ist, dass der Graph im Bereich der Toleranz-Zonen als waagerechte Linie verläuft, was bedeutet, dass sich die Werte, welche vom Joystick an Windows weitergegeben werden, innerhalb dieses Bereichs nicht verändern. Die untere Toleranz-Zone befindet sich dabei am linken Rand der Anzeige, die obere am rechten; beide verlaufen ebenfalls als waagerechte Linien. HOTAS Cougar Referenz - Buch 21 THRUSTMASTER Die nächste Abbildung zeigt, was bei einer Vergrößerung der mittleren ToleranzZone geschieht: Abbildung 8: Reiter „Achsen-Verlauf” mit vergrößerter CDZ der Y-Achse Abbildung 8 zeigt deutlich, dass eine Vergrößerung der mittleren Toleranz-Zone (CDZ) von 7% auf 25% den hellrot hervorgehobenen Bereich der waagerechten Achse in gleichem Maße vergrößert hat, wie auch aus der entsprechend verlängerten weißen Linie, die den Bereich der Achse, in welchem eine Veränderung der Position des Joysticks keinerlei Änderung der an Windows weitergegebenen Werte bewirkt, ersichtlich ist. Die obere und untere ToleranzZone verhalten sich entsprechend. HOTAS Cougar Referenz - Buch 22 THRUSTMASTER Kalibrierungs-Mitte Dieser Wert gibt an, welche Stellung des Joysticks als „zentriert”, also als Mittelpunkt der Ruhestellung, betrachtet wird. Wenn die angegebene Mittelstellung niedriger als die tatsächliche Mittelstellung des Joystick-Griffes ist, wird diese Achse einen höheren Wert ausgeben, wenn der Joystick in Ruhestellung ist. Ein ähnliches Ergebnis könnte auch erzielt werden, indem die Trimmung des Joysticks entsprechend verändert wird, um die Werte, die der Joystick ausgibt, auf der Bewegungsachse zu verschieben; der Hauptvorteil der Trimmungs-Funktion gegenüber einer Verstellung der Mittelposition ist, dass eine Trimmung jederzeit während einer Emulation verändert werden kann. Achsen-Trimmung Die Trimmungs-Funktion wird verwendet, um den derzeitigen physikalischen Wert einer Achse um einen bestimmten Betrag zu versetzen. Wenn sich also der Joystick auf einer physikalischen Position entlang seiner Bewegungsachse von z.B. 30% befindet, die Trimmung aber auf –20% gestellt wurde, wird diese Position vom Computer als 10% angenommen. Die höchstmögliche Trimmungs-Einstellung ist +/50%; d.h. dass durch entsprechende Trimmungs-Einstellungen eine komplette Achse von der Mittelstellung ausgehend definiert werden kann. Dies wird in der folgenden Abbildung gezeigt. Abbildung 9: Trimmung mit Maximalwerten HOTAS Cougar Referenz - Buch 23 THRUSTMASTER Die Auswirkungen einer solchen Trimmung der Y-Achse sind offensichtlich. Befindet sich die Achse in ihrer physikalischen Mittelstellung (horizontal), erhält Windows ihre Höchstwerte. Wird die Y-Achse in eine Richtung bewegt, die ihre physikalischen Werte erhöht (nach oben), ändern sich die Werte für Windows nicht weiter; wird die Y-Achse nach unten bis zu ihrem unteren Anschlag bewegt, verringern sich die Werte für Windows, bis sie ihren geringsten Wert erreichen, welcher der normalen ungetrimmten Mittelstellung dieser Achse entspricht. Würden wir die Trimmung auf ihre Minimalwerte reduzieren, sähe der Graph wie folgt aus: Abbildung 10: Trimmung mit Minimalwerten Mit dieser Einstellung würde die Achse als minimal interpretiert, wenn sie physikalisch zentriert ist, und als zentriert, wenn sie sich physikalisch in Maximalstellung befindet. HOTAS Cougar Referenz - Buch 24 THRUSTMASTER Kurven-Faktor Diese Einstellung kann die Achse veranlassen, sich eher exponentiell zu verhalten, d.h. „kurvig”, anstelle des regulären linearen Verlaufs. Der Kurvenfaktor kann einen Wert zwischen -32 und 32 haben; allerdings kann eine Einstellung von mehreren Achsen gleichzeitig auf solch hohe Werte die Funktion des Joysticks merklich verlangsamen. Außerdem sind Werte über 20 oder unter -20 in der Regel wenig sinnvoll, und die Änderung des Kurvenverlaufs ist zu unwesentlich, um solche Werte überhaupt zu rechtfertigen. Betrachten wir zunächst Kurven mit zentrierter Basis – was mag der Unterschied zwischen einem positiven und einem negativen Verlauf sein? Laßt uns einen Blick auf das Verhalten einer Kurve mit jeweils einem positiven und einem negativen Wert werfen. Die Abbildung links zeigt eine Achse mit einem Kurven-Faktor von -10 (negativ); wie man sieht, ändert sich wenig rund um die Mittelstellung – beinahe so, als wäre die mittlere Toleranz-Zone vergrößert worden. Die Werte steigen dann immer schneller an, bis die Kurve beinahe senkrecht verläuft. Das bedeutet, dass der Joystick in den Endbereichen dieser Achse immer empfindlicher reagiert. Die Abbildung rechts zeigt das Verhalten einer Achse mit einem Kurven-Faktor von 10 (positiv), welche beinahe eine Umkehrung der vorigen Einstellung zu sein schein; die Achse ist nun wesentlich empfindlicher rund um ihre physikalische Mittelstellung, wohingegen die Empfindlichkeit zu den Randbereichen immer mehr abnimmt – beinahe so, als wären die obere und untere Toleranz-Zone vergrößert worden. HOTAS Cougar Referenz - Buch 25 THRUSTMASTER Die Idee hinter dem “Kurvenbasis”-Schalter ist, dass obwohl die Empfindlichkeit z.B. der Joystick- und Microstick-Achsen kurvig verlaufen sollten, wie wir im letzten Beispiel gesehen haben, ein Anstieg über den gesamten Bereich andererseits für andere Achsen, wie z.B. die Schubkontrolle oder die Einzelpedale, eher sinnvoll sein kann. Es folgen die Graphen für einen KurvenFaktor von jeweils positiven und negativen 5 (als sinnvolle Werte, 10 wäre übertrieben), allerdings mit der Kurvenbasis auf dem Null-Wert. Die Abbildung links zeigt das Verhalten einer Achse mit einem Kurven-Faktor von -5 (negativ) – beachtet, wie ähnlich es sich verhält zum oberen rechten Bereich des Verlaufs für einen Kurven-Faktor von -10 mit zentrierter Kurvenbasis. Der Joystick wird nun am unteren Ende seiner Bewegungsachse nur sehr langsam reagieren, so als ob eine zusätzliche untere Toleranz-Zone zur Achse hinzugekommen wäre, mit zunehmender Empfindlichkeit zum oberen Ende der Joystickbewegung hin. Rechts davon beträgt der Kurven-Faktor 5 (positiv), mit der Kurven-Basis auf 0. Wiederum lässt sich eine Ähnlichkeit des gesamten Kurvenverlaufs dieser Null-basierten Kurve zum oberen rechten Bereich der Mittelpunkt-basierten Kurve beobachten. Die Empfindlichkeit nimmt zum physikalischen unteren Ende der Bewegungsachse hin zu, und nimmt zum oberen Ende hin ab. HOTAS Cougar Referenz - Buch 26 THRUSTMASTER Reiter Einrichtung & Kalibrierung Dieser Reiter enthält Angaben darüber, wie sich der Joystick beim Hochfahren des Rechners verhält, sowie Kalibrierungs-Daten. Der Reiter ist in zwei Bereiche unterteilt, mit den Einrichtungs-Optionen oben und der Kalibrierungs-Konfiguration unten. Jeder dieser Bereiche wird im folgenden beschrieben. Abbildung 11: Reiter „Einrichtung & Kalibrierung” Einrichtungs-Optionen Es gibt drei Möglichkeiten, den Joystick beim Hochfahren einzurichten. Diese Möglichkeiten sind das Achsen-Verhalten, der Kalibrierungs-Modus, und das Hochladen einer Profil-Datei in den Joystick. Standardmäßig befindet sich der Joystick im voreingestellten Achsen-Verhalten-Modus und im Auto-Kalibrierungs-Modus, mit der letzten in den Joystick hochgeladenen Profil-Datei. Diese Grundeinstellungen können durch einen Klick auf die gewünschte Option und anschließend auf „Sichern” geändert werden. Um eine Profil-Datei auszuwählen, klickt in das zugehörige Kontrollkästchen und dann auf die „…”-Schaltfläche, oder gebt den Namen des Profils direkt in die Zeile rechts des Kästchens ein. Bitte beachtet dabei, dass dieses Profil auch tatsächlich im Profile-Unterverzeichnis des HOTAS-Verzeichnisses vorhanden sein muss. Zum Zurücksetzen der Einrichtungs-Einstellungen genügt ein Klick auf die Schaltfläche „Voreinstellung” HOTAS Cougar Referenz - Buch 27 THRUSTMASTER Kalibrierung Der Bereich zur Kalibrierung enthält Möglichkeiten zur Einstellung des Kalibrierungs-Modus’ und zur eigentlichen Kalibrierung des Joysticks selbst, zur Wiederherstellung der Auto-Kalibrierungs-Daten, und zur Einrichtung der Mittelpunkte der Achsen in Ruhestellung. Die Wahl von automatischer oder manueller Kalibrierung unter dem Punkt „Kalibrierungs-Modus” schaltet den Joystick automatisch in den entsprechenden Modus. Zu beachten ist dabei, dass es dabei nicht nötig ist, auf die Schaltfläche „Anwenden” zu klicken – dies geschieht automatisch. Im manuellen Kalibrierungs-Modus werden die zuletzt nach einer manuellen Kalibrierung in den Joystick geladenen Daten verwendet. Diese Daten werden automatisch geladen, einschließlich der derzeitigen Achsen-Einstellungen, zur weiteren Verwendung nach jeglicher Kalibrierungs-Durchführung. Auto-Kalibrierungs-Modus bedeutet, dass der Joystick alle Achsen und ihre maximale Ausdehnung während der Bewegung dieser Achsen bis an alle Anschläge ermittelt. Manueller Kalibrierungs-Modus bedeutet, dass der Joystick die durch die Durchführung einer manuellen Kalibrierung, wie sie weiter unten erklärt wird, ermittelten Daten verwendet. Zu beachten ist dabei, dass der Joystick nicht in diesen manuellen Kalibrierungs-Modus geschaltet werden kann, wenn keine manuelle Kalibrierung durchgeführt wurde. Wird der Joystick zurückgesetzt (durch Wiederanschluss oder Anklicken der „Zurücksetzen”Schaltfläche), während er sich im Auto-Kalibrierungs-Modus befindet, ist es erforderlich, alle Achsen (Joystick, Schubkontrolle, Reichweiten-Ring, AntennenDrehregler, Microstick, etc.) zu ihren maximalen und minimalen Anschlägen zu bewegen und dort jeweils für ca. 3 Sekunden zu halten. Dies ermöglicht der AutoKalibrierung, die genauen Daten dieser Achsen zu sammeln und sie korrekt einzuordnen. Ein Klick auf die Schaltfläche „Ermittle Auto-Kalibrierung” vor Umschalten des „Kalibrierungs-Modus” von „Auto” auf „Manuell” kopiert die Daten aus der AutoKalibrierung in das derzeitige Profil. Nun kann dieses Profil übernommen und gesichert werden, ohne dass seine Daten in Zukunft verändert werden. Die Schaltfläche „Mittelposition einstellen” dient der Sicherung einer speziellen Position als neue angenommene Mittelposition jeder Achse. Wird gewünscht, dass z.B. die Joystick-Achsen und die des Reichweiten-Rings von den durch die Auto-Kalibrierung ermittelten Mittelpositionen abweichende Positionen haben sollen, können nach einem Klick auf diese Schaltfläche die gewünschten Achsen angegeben werden, wie aus der nächsten Abbildung ersichtlich. HOTAS Cougar Referenz - Buch 28 THRUSTMASTER Abbildung 12: Sichern der Joystick- und Reichweiten-Ring-Mittelpositionen Nach Anwahl der „Sichern”-Schaltfläche erscheint eine Aufforderung, die angegebenen Achsen zur gewünschten Mittelstellung zu bewegen und mit „OK” zu bestätigen. Dies weist den angegebenen Achsen die neuen Mittelpositionen zu. HOTAS Cougar Referenz - Buch 29 THRUSTMASTER Manuelle Kalibrierung Die Schaltfläche „Manuelle Kalibrierung” öffnet die folgende Anzeige für den Kalibrierungs-Vorgang: Abbildung 13: Anzeige der manuellen Kalibrierung Folgt einfach den gegebenen Anweisungen und klickt auf die „Weiter”Schaltfläche, wenn die Achse die in diesem Schritt zu sichernde Position erreicht hat. Wenn Ihr z.B. im zweiten Schritt die Y-Achse an ihren vorderen Anschlag bewegt und auf „Weiter” klickt, so wird der Joystick genau die Position speichern, an der er sich zum Zeitpunkt des Klicks befindet. Wenn Ihr mit der Kalibrierung fertig seid, überträgt die Anwendung automatisch alle Daten an den Joystick, einschließlich aller derzeitigen Daten des „Achsen-Einstellungen”-Bereiches. Diese Kalibrierungs-Daten werden gespeichert und können zur weiteren Verwendung in ein Profil gesichert werden. Zu beachten ist dabei, dass alle Achsen, die nicht angeschlossen sind, ausgegraut angezeigt werden. Während der Kalibrierung werden diese Achsen übersprungen. Der „Fortschritt”-Balken unten links zeigt dabei die „Roh-Werte” der jeweiligen Achse an – es kann durchaus vorkommen, dass es unmöglich ist, die minimalen oder maximalen Positionen dieses Balkens zu erreichen. Er dient als Hilfe, indem er die richtige Achse und ihre Richtung anzeigt. HOTAS Cougar Referenz - Buch 30 THRUSTMASTER „Aktionen“ und andere Optionen Im Abschnitt „Aktionen“ gibt es drei Schaltflächen: „Neustart“, „Tasten- & AchsenEmulation“ und „Hochladen“. Außerdem gibt es Optionen für die automatische Abfrage des Joysticks (Polling), und die Schaltfläche „Minimieren“. Alle diese „Aktionen“ und Optionen werden im folgenden erklärt. Neustart (Restart Device) Die Schaltfläche „Neustart“ veranlasst den Joystick, sozusagen den Stecker zu ziehen, vergleichbar mit dem Ziehen und Wiedereinsteckens des USB-Steckers. Diese Funktion ist nützlich wann immer eine Änderung bezüglich der WindowsAchsen gewünscht wird. In diesem Falle wäre es nötig, den Joystick aus- und wieder einzustöpseln (wie im Abschnitt „Änderung der Windows-Achsen“ beschrieben), welches auch einfacher durch einen Klick auf die „Neustart“Schaltfläche geht. Außerdem werden ja mittels der Auto-Kalibrierung während des Hochfahrens die Mittelpositionen aller Achsen gemessen (X-, Y-, Ruder-, Microstick-Achse); um diese manuell zu verändern, kann man auch auf „Neustart“ klicken, während man die Achsen an den gewünschten Positionen hält. TastenTasten- & AchsenAchsen-Emulation Wenn die „Tasten- & Achsen-Emulation“ AN ist (grüner Hintergrund), verwendet der Joystick die zuletzt hochgeladene Emulations-Datei. Diese Emulations-Datei ist eine Datei, die die Tastatur- und Maus-Emulation steuert, sowie weitere Änderungen der Achsen-Einstellungen beinhaltet. Genauere Angaben zu diesem Thema finden sich im Referenz-Buch weiter unten. Wenn die „Tasten- & Achsen-Emulation“ AUS ist (roter Hintergrund), verhält sich der Joystick wie ein einfacher DirectX-Joystick unter Windows. Hochladen (Download to device) Diese Schaltfläche öffnet das HOTAS Cougar Lade-Programm, welches dem Hochladen einer Joystick-Datei (Thrustmaster Joystick Files „.TMJ“) in den Joystick dient. Weitergehende Informationen bezüglich der Struktur einer Emulations(=Joystick-)-Datei finden sich im Referenz-Buch weiter unten. Auf der nächsten Seite findet sich eine Abbildung dieser Download-Applikation. HOTAS Cougar Referenz - Buch 31 THRUSTMASTER Abbildung 14: HOTAS Cougar Loader zum Hochladen von Joystick-Dateien Im Hauptfenster des HOTAS Cougar Lade-Programms finden sich zwei Schaltflächen und ein Kontrollkästchen. „Prüfen“ überprüft das Joystick-Programm auf Fehler. Dies lädt nicht die Datei in den Joystick. „Hochladen“ überprüft die Datei erst und lädt sie dann in den Joystick, wenn sie keine Fehler enthält. Der Abschnitt unter „Eigenschaften der derzeitig geladenen Datei“ zeigt den Namen der aktuell geladenen Datei und das Datum ihres Downloads an. Das Kontrollkästchen für „Aktivierung des Emulations-Modus’ nach Download“ aktiviert den Emulations-Modus nach Hochladen einer Datei in den Joystick. Nachdem eine Joystick-Datei geladen wurde, muss der Emulations-Modus aktiviert werden, damit der Joystick die in dieser Datei gespeicherten Joystick-Tasten und Achsen emulieren kann. Dies kann auch mittels der Schaltfläche „Tasten- & Achsen-Emulation“ des HOTAS CCP geschehen. Siehe dazu den gleichnamigen Abschnitt weiter oben. Während eine Jostick-Datei überprüft oder hochgeladen wird, erscheint die folgende Anzeige. Abbildung 15: HOTAS Cougar Kompilierer zur Prüfung einer Joystick-Datei HOTAS Cougar Referenz - Buch 32 THRUSTMASTER JoystickJoystick-Abfrage (Poll device) Dieses Kontrollkästchen wird vom HOTAS CCP zur Abfrage des derzeitigen Status’ des Joysticks benötigt. Diese Abfrage überprüft, ob der Joystick angeschlossen ist und in welchem Modus er sich befindet. Die Häufigkeit dieser Abfrage wird in der Zeile unter diesem Kästchen festgelegt. CCP minimieren / TaskbarTaskbar-Symbole Das HOTAS CCP kann als Hintergrund-Prozess laufen, während es lediglich ein Symbol in der Taskbar zeigt. Ein Klick auf die „Verbergen”-Schaltfläche minimiert das HOTAS CCP. Zu beachten ist, dass diese Funktion nur mit aktivierter Abfrage-Funktion genutzt werden kann. Um das HOTAS CCP nach einer Minimierung wieder anzuzeigen, genügt ein Linksklick auf das Symbol und Wahl von „Öffne HOTAS Cougar Control Panel…“ im erscheinenden Menü. Die anderen Punkte dieses Menüs dienen zum Verlassen des HOTAS CCP und zum Öffnen des HOTAS Cougar Ladeprogramms. Der Emulations-Modus des Joysticks kann durch Rechtsklick auf das Taskbar-Symbol an- und ausgeschaltet werden. Die Farben des Symbols werden sich daraufhin entsprechend folgender Übersicht ändern: Icon Farb-Code Beschreibung grüner Jäger auf gelbem Grund Emulations-Modus ist AN, Achsen-Verhalten ist im Anwender-Modus roter Jäger auf gelbem Grund Emulations-Modus ist AUS, Achsen-Verhalten ist im Anwender-Modus grüner Jäger auf grauem Grund Emulations-Modus ist AN, Achsen-Verhalten ist im Windows-Modus roter Jäger auf grauem Grund Emulations-Modus ist AUS, Achsen-Verhalten ist im Windows-Modus Tabelle 2: Taskbar-Symbole HOTAS Cougar Referenz - Buch 33 THRUSTMASTER HOTAS COUGAR BENUTZERHANDBUCH REFERENZ-BUCH THRUSTMASTER INHALT 1. WAS WIR FÜR EUCH AUF LAGER HABEN!......................................................40 1.1 EINFÜHRUNG...................................................................................................40 1.2 ANSCHLUSS DER CONTROLLER..................................................................40 1.3 MIT DEM REFERENZ-BUCH VERTRAUT MACHEN ..............................................41 2. GRUNDLAGEN-VERSTÄNDNIS ..........................................................................45 2.1 GRUNDLAGEN DER THRUSTMASTER PROGRAMMIERUNG.......................45 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3. Einführung .............................................................................................................. 45 Das Konzept von HOTAS....................................................................................... 45 Wie erreichen wir HOTAS für unsere Flugsimulationen und andere Spiele? ........ 46 Vorstellung der Joystick-Datei – Grundlagen der Programmierung ....................... 46 Vorstellung von Makros und der Makro-Datei – Grundlagen der Programmierung 47 Woher weiß die Joystick-Datei, welche Makro-Datei ihre Makros enthält? ........... 48 Zusammenfassung des bisher Gelernten … .......................................................... 49 Eine Joystick-Datei in den Joystick laden............................................................... 50 Struktur vonJoystick- und Makro-Dateien............................................................... 51 TASTEN-BEFEHLE UND MAKROS.....................................................................53 3.1 TASTEN-BEFEHLE UND TMJOYSTICK-TASTEN-VERWENDUNG ..............53 3.2 THRUSTMASTERS TASTATUR-SYNTAX ......................................................56 3.3 MAKROS UND MAKRO-REGELN ...................................................................58 3.4 BEFEHLS-MODIFIZIERER ...............................................................................61 3.5 SCHRÄGSTRICH (SLASH) MODIFIZIERER ...................................................62 3.5.1 Erhöhung der Anzahl programmierbarer Positionen: ............................................. 63 3.5.1.1 /U, /M, /D - Up, Middle, Down.................................................................... 64 3.5.1.2 /I, /O - In, Out............................................................................................. 64 3.5.2 Unterteilung von Makros für eine Joystick-Taste.................................................... 67 3.5.2.1 /T – Wechselschalter (Toggle) .................................................................. 67 3.5.2.2 Zurücksetzen eines Wechselschalters...................................................... 69 3.5.2.3 Umkehren der Verarbeitungsrichtung eines Wechselschalters ................ 70 3.5.2.4 /P, /R – Drücken, Loslassen einer Joystick-Taste (Press, Release)......... 71 3.5.3 wiederholte und nicht-wiederholende Ausgabe...................................................... 74 3.5.3.1 Nicht-wiederholende Ausgabe .................................................................. 74 3.5.3.2 /A - Auto-Wiederholung ............................................................................. 74 3.5.3.3 /H - Halten ................................................................................................. 75 3.5.4 Schrägstrich-Kürzel – Regeln und Reihenfolge...................................................... 77 3.5.4.1 Schrägstrich-Kürzel - Regeln .................................................................... 77 3.5.4.2 Schrägstrich-Kürzel - Reihenfolge............................................................. 77 HOTAS Cougar Referenz - Buch 35 THRUSTMASTER 3.6 VERZÖGERUNG UND WIEDERHOLUNG.......................................................79 3.6.1 DLY( ) – Verzögerung (Delay) ................................................................................ 79 3.6.2 RPT( ) – Wiederholung (Repeat)............................................................................ 81 3.7 ZUSAMMENFASSUNG UND GRUPPIERUNG DURCH KLAMMERN............82 3.7.1 ( ) Klammern ........................................................................................................... 83 3.7.2 { } geschweifte Klammern ....................................................................................... 84 3.7.3 < > Winkel-Klammern ............................................................................................. 85 3.8 ARBEIT MIT UND DEFINITION VON DIRECTX (DIRECT INPUT) TASTEN ..87 3.8.1 USE ALL_DIRECTX_BUTTONS ........................................................................... 88 3.9 VERWENDUNG VON KD, KU UND USB KÜRZELN.......................................91 3.9.1 KD, KU.................................................................................................................... 91 3.9.2 USB Programmierung............................................................................................. 92 4. HÜTCHEN-PROGRAMMIERUNG ........................................................................93 4.1 PROGRAMMIERUNG DER JOYSTICK-HÜTCHEN.........................................93 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 5. Programmierbare Positionen eines Hütchens ........................................................ 93 4-wege oder 8-wege Hütchen: USE Hütchen-ID FORCED_CORNERS ............... 94 Steuerung der Maus durch ein HÜTCHEN............................................................. 95 Einrichtung eines HÜTCHENs als „Blickwinkel“ (Point Of View=POV) HÜTCHEN 96 Verwendung eines HÜTCHENs zur Emulation der Pfeil-Tasten ............................ 97 Verwendung eines HÜTCHENs zur Emulation des Ziffernblocks .......................... 98 Wie der Kompilierer USE Hütchen-ID AS Befehle umwandelt ............................. 100 KONFIGURATIONS-BEFEHLE ..........................................................................103 5.1 EINFÜHRUNG.................................................................................................103 5.2 MDEF – MAKRODEFINITIONS-DATEI ..........................................................104 5.3 RATE ...............................................................................................................105 5.4 S3_LOCK UND S3_UNLOCK (VER-/ENTRIEGELN) ....................................106 5.5 ZUWEISUNG EINER ANDEREN JOYSTICK-TASTE ALS SHIFTBTN /I, /O 107 5.6 EMPFINDLICHKEIT DER HÜTCHEN UND DER ECKPOSITIONEN USE HAT SENSITIVITY - HAT CORNER SENSITIVITY................................108 5.7 EMPFINDLICHKEIT DES MICROSTICKS - USE T1 SENSITIVITY...............109 5.8 VERWEISE AUF ZU LADENDE ERLÄUTERUNGEN IN BILD ODER TEXT – USE FOXY GRAPHIC / README ..................................................................110 5.9 NULLCHR ^ ....................................................................................................110 5.10 TASTATUR-SCHEMA (AZERTY, QWERTY) .............................................113 5.11 VERWENDUNG VON PROFILEN DES CCP - USE PROFILE...............................114 5.11.1 Noch ein paar Punkte zu den Profilen ................................................................. 114 5.12 SONSTIGE KONFIGURATIONS-BEFEHLE .............................................116 HOTAS Cougar Referenz - Buch 36 THRUSTMASTER 6. ACHSEN-PROGRAMMIERUNG.........................................................................117 6.1 GRUNDSÄTZLICHES.....................................................................................117 6.1.1 Den Unterschied zwischen analog und digital verstehen ...................................... 117 6.1.2 Die Achsen des Cougar......................................................................................... 118 6.2 DIGITALE TYPEN...........................................................................................120 6.2.1 Typ 1: wiederholende Zeichen, richtungsabhängig .............................................. 120 6.2.1.1 Den - FORCE_MACROS Modifizierer verstehen.................................... 122 6.2.1.2 Wichtige Überlegungen zum Gebrauch von FORCE_MACROS................. 124 6.2.2 Typ 2: Zeichenfolge, feste Regionen .................................................................... 127 6.2.2.1 Den - FORCE_MACROS Modifizierer verstehen.................................... 128 6.2.3 Typ 3: gehaltene Zeichen ..................................................................................... 130 6.2.4 Typ 4: pulsierende Zeichen .................................................................................. 131 6.2.5 Typ 5: Zeichenfolge, variable Regionen ............................................................... 132 6.2.5.1 Den - FORCE_MACROS Modifizierer verstehen.................................... 133 6.2.6 Type 6: wiederholende Zeichen, variable Regionen ............................................ 134 6.2.6.1 Den - FORCE_MACROS Modifizierer verstehen ................................... 134 6.2.7 Achsen-Richtungen: analoge Werte und digitale Befehle ..................................... 135 6.2.7.1 Analoge Achsen: Werte............................................................................135 6.2.7.2 Typ 1 Digitale Achse................................................................................ 136 6.2.7.3 Typ 2 Digitale Achse................................................................................ 137 6.2.7.4 Typ 3 Digitale Achse................................................................................ 138 6.2.7.5 Typ 4 Digitale Achse................................................................................ 139 6.2.7.6 Typ 5 Digitale Achse................................................................................ 140 6.2.7.7 Typ 6 Digitale Achse................................................................................ 141 6.3 EMPFINDLICHKEITS-KURVEN (CURVE) .....................................................142 6.4 ACHSEN-TRIMMUNG (TRIM) ........................................................................146 6.5 DEAKTIVIERUNG VON ACHSEN ..................................................................151 6.5.1 Ver-/Entriegelung von Achsen im Spiel mittels LOCK, UNLOCK......................... 152 6.6 ACHSEN-ZUWEISUNG (SWAP) ....................................................................154 6.7 RICHTUNGS-UMKEHR VON ACHSEN (REVERSE, FORWARD) ................157 6.8 DER USE AXES_CONFIG KONFIGURATIONS-BEFEHL.............................158 HOTAS Cougar Referenz - Buch 37 THRUSTMASTER 7. MAUS-PROGRAMMIERUNG ................................................................................161 7.1 DIE MAUS-STEUERUNG UND DER MICROSTICK ......................................161 7.2 USE MTYPE – DER EINFACHSTE WEG, DIE MAUS DEM MICROSTICK ZUZUWEISEN .................................................................................................163 7.3 USE MICROSTICK AS MOUSE ......................................................................165 7.3.1 Zuweisung anderer Achsen zu Maus-Achsen ....................................................... 169 7.4 BENUTZER-DEFINIERTE MAUS & MICROSTICK ........................................171 7.5 USE ZERO_MOUSE........................................................................................177 7.6 PROGRAMMIERUNG MIT MAUS-TASTEN ...................................................178 7.7 STANDARD-ZUWEISUNG DER MAUS AUF DEN MICROSTICK AUSSCHALTEN .............................................................................................179 7.8 FORTGESCHTITTENE MAUSBEWEGUNGS-BEFEHLE..............................180 7.8.1 7.8.2 7.8.3 7.8.4 Angabe der Bildschirm-Auflösung ........................................................................ 180 Bewegung zu einer genauen Bildschirm-Position ................................................ 181 Bewegung der Maus relativ zu ihrer derzeitigen Position..................................... 182 Drehbewegung/polygonale Bewegung ................................................................. 184 8. LOGISCHE PROGRAMMIERUNG ........................................................................188 8.1 LOGISCHE PROGRAMMIERUNG – DIE GRUNDLAGEN .................................. 8.1.1 Logische Schalter (Flags) verstehen .................................................................... 188 8.2 8.3 8.4 8.5 DEFINITION VON LOGISCHEN SCHALTERN UND ADDRESSIERUNG.....189 LOGISCHE VERGLEICHE..............................................................................191 DER LOGISCHE SCHALTER-STATUS .........................................................193 LOGISCHE VERZÖGERUNG (DELAY) UND PULSE FUNKTIONEN......................194 8.5.1 Die DELAY Funktion ............................................................................................. 194 8.5.2 Die PULSE Funktion ............................................................................................. 195 8.6 LOGISCHE PROGRAMMIERUNG: BEISPIELE ............................................196 8.6.1 Einen Typ 4 Befehl an und aus schalten ............................................................... 196 8.6.2 Eine langsame Trimm-Funktion............................................................................ 197 9. FEHLERBEHEBUNG.............................................................................................198 9.1 ZURÜCKSETZEN DER CONTROLLER ........................................................198 9.1.1 In einem Spiel: EMPTY_BUFFERS und STICK_OFF ......................................... 198 9.1.2 Unter Windows...................................................................................................... 200 HOTAS Cougar Referenz - Buch 38 THRUSTMASTER 10. ANHÄNGE ...........................................................................................................201 ANHANG 1. ZUSAMMENFASSUNG VON THRUSTMASTER-BEFEHLEN...201 Tasten-Befehle und Befehls-Modifizierer........................................................................ 201 Schrägstrich-Modifizierer und Befehls-Modifizierer ........................................................ 202 Konfigurations-Befehle.................................................................................................... 203 Achsen-Befehle............................................................................................................... 204 Fortgeschtittene Maus-Befehle....................................................................................... 204 Logische Befehle ............................................................................................................ 205 Hardware-Befehle ........................................................................................................... 205 ANHANG 2. ANHANG 3. ANHANG 4. THRUSTMASTER TASTATUR-SCHEMA ..................................206 USB KEYDOWN UND KEYUP KÜRZEL....................................207 UNTERSCHIEDE ZWISCHEN ORIGINAL TM F22 UND COUGAR DATEIEN ....................................................................211 1. Änderungen von Tasten-Bezeichnungen ................................................................... 211 2. Änderungen bei Schrägstrich-Modifizierern................................................................ 212 3. nicht länger unterstützte Befehle ................................................................................ 212 4. Datei-Endungen und -Namen ..................................................................................... 212 5. Voreinstellungen ......................................................................................................... 213 6. Digitale und analoge Achsen ...................................................................................... 214 7. Typ 1 Digitaler Befehl.................................................................................................. 214 8. Schubkontrolle nicht angeschlossen .......................................................................... 214 9. Makros – nicht zulässige Zeichen............................................................................... 214 10. RPT........................................................................................................................... 215 11. Das // Kommentar-Zeichen....................................................................................... 215 HOTAS Cougar Referenz - Buch 39 THRUSTMASTER 1. Was wir für Euch auf Lager haben! 1.1 Einfuehrung Willkommen zur nächsten Generation von Thrustmaster Spitzenklasse-Kontrollern dem HOTAS Cougar. Versiegelt in der Hülle dieses merklich voll-metallenen Flugsteuerknüppels findet sich der Kontroller selbst, plus eine CD-ROM mit einer ganzen Ladung von Anwendungen und Zugaben, plus dieses monolithische Referenz-Buch, und die mittlerweile traditionelle Schnellstart-Anleitung. Unter den auf der CD-ROM enthaltenen Bonbons findet Ihr alle Anwendungen, die nötig sind, den HOTAS Cougar in Betrieb zu nehmen und das Kätzchen schnurren zu lassen: das HOTAS Cougar Control Panel (ausführlich beschrieben in den vorherigen Abschnitten), wie auch die „Foxy“ genannte Sammlung von Anwendungen, die die Haupt-Programme, die Foxy HOTAS Cougar Edition, mit allen ihren Bestandteilen (wie z.B. dem Composer und Korgy) und ihren unterstützenden Anwendungen, wie z.B. die Foxy GUI (Bediener-Oberfläche), dem Launcher (Schnellstart), usw. Mit Rücksicht auf das HOTAS Cougar Control Panel wird an dieser Stelle nicht näher darauf eingegangen – für Tonnen von Informationen, lest einfach weiter! Foxy und Foxy GUI werden in diesem Referenz-Buch allerdings nicht behandelt. Alle nötigen Erläuterungen zu deren Nutzung finden sich in der Online-Hilfe der Anwendung. Foxy ist der Schlüssel zur Programmierung aller Funktionen Eures Joysticks, der Erstellung mächtiger und komplexer Joystick- und Makrodefinitions-Dateien mit unerreichter Leichtigkeit. Die Foxy GUI (Bediener-Oberfläche) ermöglicht Euch, mit wenigen Maus-Klicks eine Flut von Tastatur-Kommandos auf eine einzelne Joystick-Taste oder eine Bewegung Eures HOTAS Cougar zu legen, wodurch Ihr in der Lage seid, auch ohne jede Kenntnis der eigentlichen Thrustmaster Programmier-Befehle Tastatur-Befehle den verschiedenen (und vielen!) Joystick-Tasten des Joysticks zuzuweisen. Nachdem soweit alles gesagt wäre, schiebt Eure Lieblings-CD in Eure HiFi-Anlage, mixt Euch einen grooooßen Drink, und bereitet Euch darauf vor, die nächsten Tage (und Nächte) in den vielversprechenden Tiefen dieses Referenz-Buchs vertieft zu verbringen! 1.2 Anschluss und Einrichtung der Controller Bitte entnehmt dies der Schnellstart-Anweisung des HOTAS Cougar. HOTAS Cougar Referenz - Buch 40 THRUSTMASTER 1.3 MIT DEM REFERENZREFERENZ-BUCH VERTRAUT MACHEN Offensichtlich benötigt ein Spitzenklasse-Controller wie der HOTAS Cougar eine umfassende Hilfe und Unterstützung, gleichwertig mit seinen unvergleichlichen Fähigkeiten. Daher werdet Ihr Euch, nachdem Ihr Euren Cougar angeschlossen und alle Programme von der CD installiert und Euch sowohl im Cougar Control Panel (CCP), als auch unter den Einstellungen von Windows’ Spiel-Optionen überzeugt habt, ob alles zu funktionieren scheint, ohne Zweifel wundern, wo Ihr denn nun überhaupt anfangen sollt. Hoffnungsvoll habt Ihr auch Foxy installiert und gestartet (nachdem Ihr zuerst das CCP geöffnet hattet – das ist wichtig), und Euch mit Panik in den Augen gefragt: „Aha, und wo fange ich denn mit alldem eigentlich an?“. Also, um mit den absoluten Grundlagen anzufangen und sich dann weiter vor zu arbeiten, erfahrt Ihr nun, wie Ihr Euch mit dem Cougar vertraut machen könnt. Stufe 1: mit Kindersicherung Tja, es wird Euch freuen, dass Ihr eigentlich überhaupt nichts weiter tun müsst, um mit dem Cougar loszulegen. Ihr solltet lediglich zunächst alle Achsen bis an ihre Anschläge bewegen und sie dort für einige Sekunden halten, damit die AutoKalibrierung korrekt vorgenommen werden kann. Danach könnt Ihr alle eventuell laufenden Cougar-Anwendungen beenden, Euer Spiel starten und Euren Cougar benutzen. Falls das Spiel die direkte Zuweisung von Funktionen für die Hütchen und Joystick-Tasten unterstützt, könnt Ihr diese aus dem Spiel heraus programmieren. Das Spiel wird Joystick und Schubkontrolle als eben solche erkennen und ihnen die vorgesehenen Flugfunktionen zuweisen, vielleicht sogar die zusätzlichen Achsen, wie die von Reichweiten- und Antennen-Regler, und auch ihnen die vom Spiel vorgesehenen Funktionen zuweisen. Und das war’s. Benutzt Euren Cougar „einfach so“. Der Cougar befindet sich im Windows- oder DirectX-Modus – dieser Ausdruck bedeutet schlicht, dass die Joystick-Tasten und Hütchen nicht programmiert werden, sondern ihre Funktionen vom Spiel selbst zugewiesen bekommen. Stufe 2: die erste Raubtier-Fütterung Die nächste Stufe, die Ihr wahrscheinlich nutzen werden wollt, wäre, den Cougar mit den von uns vorbereiteten und mit dem Cougar mitgelieferten programmierten Funktionen zu füttern. Wir haben für Euch Dateien für 30 verschiedene Spiele entwickelt, mit denen der Cougar wesentlich mehr machen kann, als dies aus dem jeweiligen Spiel heraus möglich wäre. Diese Dateien findet Ihr auf der CD, und sie können mittels des Cougar Control Panels in den Joystick geladen werden. Aber es gibt noch einen einfacheren Weg, bzw. zwei, um genau zu sein, und zwar mittels Foxy oder FoxyGUI. HOTAS Cougar Referenz - Buch 41 THRUSTMASTER Foxy: Geht in das Favoriten-Menü des Editors und klickt auf das Spiel, für welches Ihr Euren Cougar einrichten wollt. Dies öffnet zwei Dateien in Foxy, die Joystick-Datei links und im Vordergrund, und die Makro-Datei rechts. Im Moment braucht Ihr sonst nichts weiter zu machen. Nun geht in das Download-Menü und ladet diese Dateien in Euren Joystick. Dies programmiert Euren Cougar mit den soeben geöffneten Dateien. Das war’s! Ihr könnt loslegen. Euer Cougar ist für das Spiel eingerichtet. Ihr könnt auch auf die Schaltflächen Graphische Übersicht und/oder Zeige ReadMe der Toolbar (die zweite unten) klicken, um zu sehen, was der Entwickler dieser Dateien über ihre Verwendung zu sagen hat, sei es als Bild oder Text. FoxyGUI: Noch einfacher. Folgt einfach den Anweisungen von FoxyGUI. Wie zuvor wählt Ihr das Spiel, welches Ihr spielen möchtet, klickt auf „Download“, und verlasst FoxyGUI anschließend, um Euer Spiel zu genießen. Auch hier könnt Ihr Euch ein Bild oder einen Text zur gewählten Datei anzeigen lassen, indem Ihr die entsprechenden Schaltflächen anklickt. Tipp vom Übersetzer: Im Internet gibt es Unmengen von Dateien zum Download, zumindest für die letzten Generationen von Thrustmaster Joysticks. Für den HOTAS Cougar wird natürlich Cougar World die richtige Anlaufstelle sein, daher meine Aufforderung: bedient Euch, und teilt auch Eure Dateien mit den anderen Katzen-Liebhabern! Stufe 3: die Zähmung der Bestie Es gibt eine Fülle von Hilfen, die wir entwickelt haben, um Euch die Programmierung des Cougars beizubringen – sucht Euch aus, was Euch am besten passt. 1. Sowohl der nächste Teil dieses Handbuchs (2.1 – Grundlagen der Thrustmaster Programmierung), wie auch Foxy's Hilfe-Datei, stellen Euch die Grundlagen der Programmierung des Cougar vor, und sie lassen sich sehr einfach lesen und verstehen. 2. Probiert einfach mal die in Foxy's Wizards-Menü zu findenden MakroAssistenten, gefolgt vom Joystick-Assistenten, aus. Viele Leute haben nur durch diese beiden sehr einfachen Assistenten die Programmierung ihrer TMController erlernt. 3. Im angesprochenen Wizards-Menü finden sich auch Tutorials, welche Schulungsdateien in Foxy öffnen, die Euch diese Grundlagen und alles weitere erklären und beibringen. Ihr könnt diese Dateien laden und dann verändern, um die Auswirkungen zu sehen – ein großartiger Weg, die Programmierung zu lernen. HOTAS Cougar Referenz - Buch 42 THRUSTMASTER 4. FoxyGUI ist eine einfache Möglichkeit, Euren Cougar zu programmieren, und erklärt auch, wie die Dateien aussähen, wenn Ihr sie mittels Foxy erstellt hättet. Irgendwann werdet Ihr wahrscheinlich ganz zu Foxy wechseln wollen, wenn Ihr vorher nur FoxyGUI benutzt habt, da es mehr Möglichkeiten bietet und auch schneller zu benutzen ist, wenn die Grundlagen einmal verstanden sind. 5. In Foxy könnt Ihr jederzeit F1 drücken, um die Online-Hilfe angezeigt zu bekommen, oder nach Markierung eines Wortes in Eurer Joystick-Datei eine Direkt-Hilfe zu diesem Begriff. Die Hilfe-Datei ist umfangreich, voller nützlicher Informationen, und behandelt ausführlich alle in diesem Handbuch erklärten Themen. 6. Macht Euch mit dem Composer und Korgy aus Foxy's Einfügen-Menü vertraut… mit diesen beiden Bestandteilen von Foxy werdet Ihr das Handbuch eher selten benötigen. Einen Punkt kann ich allerdings gar nicht oft genug wiederholen: die Programmierung des Cougars ist sehr, sehr einfach. Gönnt Euch ab und zu einen Blick in die umfangreiche Hilfe, die wir Euch anbieten, und Ihr werdet die Früchte in kürzester Zeit ernten können. Und seid Ihr erst einmal vertraut mit dem Textbasierten Ansatz dieser Programmierung, mit allen ihren Vorteilen, so werdet Ihr niemals wieder zur reinen graphischen Zuweisung von Funktionen einfacherer Controller zurück wollen. Anmerkung des Übersetzers: Stufe X: der Lauf der Evolution Erst dieser Text-basierte Ansatz ermöglicht es überhaupt, wirklich anspruchsvolle Programme zu schreiben. Ich rede natürlich von meinem eigenen Steckenpferd, dem Zen (oder Kamasutra, sucht es Euch aus) der Joystick-Programmierung (und diesmal meine ich wirklich „Programmierung“): den von mir entwickelten variablen Joystick-Dateien, die ihre Programmierung je nach Situation automatisch den derzeitigen Erfordernissen anpassen. Da diese Techniken nicht Cougar-spezifisch sind – allerdings auch für diesen gelten – möchte ich in diesem Referenz-Buch nicht weiter darauf eingehen; solche Dateien für die älteren (SW)F22 finden sich auf meiner Homepage Thrustmaster X-Files; entsprechende Dateien für den Cougar werden folgen, wie auch eine umfassende Dokumentation zu diesem zwar komplexen, aber vor allem faszinierenden Thema. An einem kurzen Beispiel möchte ich Euch allerdings schon vorab eine Idee von den unglaublichen (im wahrsten Sinne des Wortes) Möglichkeiten vermitteln: Beide Teile der Hubschrauber-Simulation „Enemy Engaged“ bieten die üblichen Zielerfassungs-Systeme mit den entsprechenden MFD-Seiten: die TADS-Seite ist für alle elektro-optischen System, wie FLIR, DTV bzw. LLLTV und DVO, HOTAS Cougar Referenz - Buch 43 THRUSTMASTER zuständig, und für die Radar-Systeme des FCR gibt es zwei weitere Seiten, jeweils für das Luft-Luft- und das Luft-Boden-Radar. Das „übliche“ Vorgehen zur Zielerfassung ist also, zunächst mittels der mit dieser Funktion belegten Joystick-Taste in die MFD-Ansicht zu wechseln, mittels einer anderen Joystick-Taste das gewünschte Zielerfassungs-System auszuwählen, danach die entsprechende MFD-Seite aufzurufen, um schließlich wiederholt die für die Zielauswahl zuständige Joystick-Taste zu drücken, bis ein geeignetes Ziel aufgeschaltet werden kann – ohne auch nur ein einziges Mal die Hände vom Joystick nehmen zu müssen (eben HOTAS) oder den Blick vom Monitor abzuwenden: Dank und durch Thrustmaster ist dies möglich seit 1992, also nunmehr immerhin 10 Jahren! Was könntet Ihr mehr wollen? Wie wär’s damit: Ihr drückt die Zielauswahl-Taste. Punkt. Sonst nichts. Häh? Genau! Egal, in welchem Blick oder in welcher Kamera Ihr Euch gerade befindet, beim Benutzen dieser einzigen Joystick-Taste aktiviert der Joystick automatisch die MFD-Ansicht, prüft, welches Zielerfassungs-System Ihr zuletzt aktiviert habt, ruft die entsprechende Seite auf (Tusch: das Spiel selbst hat keine solche „aktuelles Zielerfassungs-System“-Seite!), und schaltet in einem bestimmten Intervall, z.B. jede Sekunde, solange durch alle möglichen Ziele, bis Ihr ein geeignetes Ziel aufgeschaltet habt – und das ist noch längst nicht alles: sobald Ihr bei Erreichen des gewünschten Ziels die Joystick-Taste wieder los lasst, wird automatisch wieder in genau den Blick oder die Kamera zurückgeschaltet, der vorher aktiv war! Der Joystick weiß, welches Euer derzeitig aktives Zielerfassungs-System ist, und kann daher je nach Situation flexibel entscheiden, welche MFD-Seite sinnvollerweise aufzurufen ist, genauso wie er weiß, ob Ihr Euch in diesem Moment im Cockpit umseht oder eine – sogar welche – externe Kamera-Sicht verwendet! Neugierig? Vielleicht ein zusätzlicher Anreiz, sich eingehender mit Eurem neuen Spielzeug zu befassen – und Ihr werdet schnell feststellen, dass der HOTAS Cougar alles ist, nur genau das nicht! Doch egal, auf welcher Stufe Ihr Euch auch befindet: schon die Tatsache, dass Ihr diese Übersetzung lest, qualifiziert Euch, den HOTAS Cougar voll und ganz zu nutzen: genauso, wie zum Erwerb des Führerscheins eine KFZ-MechanikerLehre nicht nötig ist, sondern es jedem selbst überlassen bleibt, ob er gerne selber schraubt oder schrauben lässt, ist es vollkommen Wurscht, ob Ihr jetzt oder später selbst programmieren lernt, oder Euch einfach im Internet mit den nötigen Dateien für Eure Spiele versorgt! (Genau so haben wir „alten Säcke“ schließlich auch einmal angefangen – damals, als die Dinosaurier noch... ich schweife ab: muss daran liegen, dass ich diese Zeilen nur einen Steinwurf vom Neandertal entfernt tippe...) HOTAS Cougar Referenz - Buch 44 THRUSTMASTER 2. GRUNDLAGENVERSTÄNDNIS 2.1 Grundlagen der TmTm-Programmierung 2.1.1 Einfuehrung Wenn es um Programmierbarkeit geht, haben Thrustmaster Flugsteuerknüppel und Schubkontrollen schon immer die Meßlatten, an denen sich andere Controller messen lassen mussten, vorgegeben. Unglücklicherweise hatten sie auch den Ruf, schwierig zu programmieren zu sein, wahrscheinlich aufgrund der Tatsache, dass die mitgelieferte Software auf DOS basierte, und weil die Anwender einfach nicht darauf vorbereitet waren, sich die nötige Zeit für die „Hausaufgaben“ für das Verständnis dieser Controller nehmen zu müssen. Seid daher versichert, dass die Programmierung dieser Controller diesmal wesentlich einfacher sein wird, als das Erlernen der heutigen, komplexen Flugsimulationen. Im folgenden werden wir mit den Grundlagen beginnen, davon ausgehend, dass Ihr bisher noch keine Erfahrung mit Thrustmaster-Joysticks und ihrer Programmierung hattet. Es mag etwas unglücklich sein, den Ausdruck „Programmierung“ zu verwenden – ein Begriff, der normalerweise eher mit der Entwicklung von Software und komplexen Programmier-Sprachen in Verbindung gebracht wird. Was wir tatsächlich mit der Thrustmaster-„Programmierung“ machen werden, ist die Erstellung von Dateien, die den Joystick-Tasten von Joystick und Schubkontrolle TastaturKommandos zuweisen. 2.1.2 Das Konzept von HOTAS Man könnte für jede Flugsimulation alle Waffen, Ansichten, usw. komplett nur über die Tastatur steuern. Um dies etwas realistischer zu gestalten, könnten wir einen Joystick und eine Schubkontrolle, vielleicht sogar noch Ruderpedale hinzufügen, gemeinhin unter dem englischen Sammelbegriff „controller" zusammengefasst. Leider müsstet Ihr allerdings immer noch den Blick vom Monitor abwenden, um die verschiedensten Tasten auf Eurer Tastatur zu drücken. Aber was wäre denn, wenn wir noch ein paar Joystick-Tasten und Hütchen auf den Joystick packen würden, die, wenn sie gedrückt werden, genau das Gleiche machten, als wenn Ihr eine Taste auf Eurer Tastatur drückt? Dann bräuchtet Ihr Eure Hände niemals vom Joystick zu nehmen, denn Ihr würdet Eure Tastatur eigentlich gar nicht mehr brauchen, sondern könntet Euch ganz auf’s Fliegen konzentrieren, die Auswahl der Waffen, usw. Das ist das „HOTAS“Konzept, ein eingetragenes Warenzeichen von Thrustmaster, welches Euch ermöglicht, Eure Hände jederzeit auf Joystick und Schubkontrolle zu belassen, auf englisch: Hands On Throttle And Stick. HOTAS Cougar Referenz - Buch 45 THRUSTMASTER 2.1.3 Wie erreichen wir HOTAS fuer unsere Spiele? Ziemlich einfach – wir Programmieren unsere Controller so, dass sie die Tastatur und die Tasten, die in einer Flugsimulation gedrückt werden müssen, imitieren. Dies erreichen wir durch zwei Dateien, die Joystick-Datei, welche bestimmt, welche Joystick-Tasten und Hütchen Ihr mit Tastatur-Kommandos belegen wollt, und die Makro-Datei, welche „Makros“ enthält, welche nichts anderes sind, als einfache Beschreibungen dessen, was die Tastatur-Tasten in einer bestimmten Flugsimulation zu tun haben. Fangen wir also mit der Vorstellung dieser beiden Dateien an. 2.1.4 Vorstellung der Joystick-Datei - Grundlagen der Programmierung Wie bereits angesprochen, dient die Joystick-Datei der Zuweisung von Tastatur-Kommandos für die verschiedenen Joystick-Taste und Hütchen auf Euren Controllern. Nun, irgendwie führt diese Bezeichnung als “Joystick”-Datei ein wenig in die Irre. Sie programmiert nicht nur den Joystick. Die JoystickDatei programmiert alle Eure Controller – d.h. Euren Joystick und die Schubkontrolle, und auch die Ruderpedale, falls Ihr welche habt. Die Tasten und Hütchen auf Eurem Joystick und der Schubkontrolle haben spezielle Namen, um sie auseinander zuhalten, wenn wir sie programmieren wollen. Ich will Euch jetzt nicht direkt mit einer kompletten Auflisten verschrecken. Tatsächlich werdet Ihr sie gar nicht direkt lernen müssen, da dies Foxy mit seinem Composer für Euch erledigen wird. Allerdings werde ich Euch einige wenige dieser Namen vorstellen, während ich Euch in die Grundlagen der Programmierung einführe. Also los! Angenommen, wir wollten die Joystick-Taste S2 mit der “Autopilot”-Funktion belegen. Auf der Abbildung könnt Ihr sehen, welche Joystick-Taste S2 ist. Es handelt sich um den obersten roten Knopf auf dem Kopf des Joysticks, direkt links vom großen Hütchen mit der Bezeichnung Hütchen 1. Um wieder auf die Joystick-Taste S2 zurückzukommen, wollen wir diese also so programmieren, dass sie den Autopiloten steuert. Lasst uns also festhalten, dass Ihr normalerweise die Taste „a“ auf Eurer Tastatur drücken müsstet, um den Autopiloten an- bzw. wieder auszuschalten – dies ist in den meisten Flugsimulation so üblich. Wir müssen also den Joystick veranlassen, diese Tastatur-Taste “a” jedes mal, wenn wir die Joystick-Taste S2 drücken, auszugeben. Nun, in der Joystick-Datei, welche nur eine einfache Text-Datei ist, werden alle Joystick-Tasten, also die Tasten und Hütchen, durch den Ausdruck „BTN" angesprochen, und in diesem Falle beziehen wir uns auf die Joystick-Taste S2. Wir möchten, dass BTN S2 ein „a" sendet. Hier ist also der Befehl, den wir in unsere Joystick-Datei eingeben müssen, um die Joystick-Taste S2 so zu programmieren, dass sie ein „a“ ausgibt, wenn sie gedrückt wird: BTN S2 a HOTAS Cougar Referenz - Buch 46 THRUSTMASTER Einfach, oder? Lasst uns nun eines der Hütchen so programmieren, dass es an seiner oberen Position, also wenn es nach vorne gedrückt wird, die Funktionstaste F1 der Tastatur emuliert. In vielen Flugsimulationen ist das die Taste für „Blick vorwärts“. Tatsächlich sind alle Hütchen eigentlich auch nur Tasten, mit je einem Schalter für jede mögliche Position, so dass wir sie wie zuvor mit einem Joystick-Tasten-Befehl (BTN) programmieren können. „HÜTCHEN 1 Hoch (Up)” wird abgekürzt mit H1U, so dass der gesuchte Befehl der folgende wäre: BTN H1U F1 Diese Befehle sind also die Grundlage jeder Thrustmaster-Programmierung. Nun gibt es in den heutigen, modernen Flugsimulationen teilweise über 100 verschiedene Tasten-Kombinationen zur Steuerung. Diese alle zu behalten kann leicht ein Albtraum werden. Nun, wir könnten eine Anmerkung (Remark) (REM) als kleine Erinnerung, was jede Joystick-Taste bewirkt, anfügen. So zum Beispiel: BTN S2 a REM schaltet Autopilot an und aus BTN H1U F1 REM Blick vorwärts Es gibt allerdings eine bessere Möglichkeit, die Verwendung von sogenannten “Makros” und einer Makro-Datei. Bevor wir mit diesen weiter machen, sei noch angemerkt, dass der REM-Befehl überall in einer Datei verwendet werden kann, und dass alles, was ihm in der gleichen Zeile folgt, vom Joystick ignoriert wird. Er wird häufig am Anfang von Dateien für den Titel, allgemeine Beschreibungen und Kommentare, usw. benutzt. Lasst uns also weiter machen... „zur Unendlichkeit und weiter!“ Na ja… zumindest mit der Makro-Datei! 2.1.5 Vorstellung der Makro-Datei – Grundlagen der Programmierung Ehe wir uns genauer mit der Makro-Datei befassen, lasst uns erst einmal festhalten, was ein Makro überhaupt ist. Im vorangegangenen Kapitel haben wir uns mit der Joystick-Datei beschäftigt, was uns zu zwei Befehlen (Statements) führte: BTN S2 a REM schaltet Autopilot an und aus BTN H1U F1 REM Blick vorwärts Also, ein Makro ist eine Bezeichnung, die wir zur einfacheren Erinnerung dessen, was eine einzelne oder mehrere Tastatur-Taste(n) eigentlich in einer Flugsimulation machen, vergeben. So zum Beispiel: Autopilot = a Blick_vorwaerts = F1 HOTAS Cougar Referenz - Buch 47 THRUSTMASTER Dadurch können wir die Befehle in unserer Joystick-Datei folgendermaßen ändern: BTN S2 Autopilot BTN H1U Blick_vorwaerts Auf den ersten Blick ist vielleicht nicht offensichtlich, warum dieser Weg der bessere ist, aber glaubt mir: wenn Ihr eine Joystick-Datei mit über 100 verschiedenen Befehlen habt, ist es auf diese Weise wesentlich einfacher, die Datei durchzugehen und zu verstehen. Und wohin stecken wir denn nun diese Makros? Nun, sie stehen in einer eigenen Datei, eben der „Makro”-Datei. Also enthält die Makro-Datei alle für eine Flugsimulation nötigen Makros, die beschreiben, was jede Taste oder Tasten-Kombination eigentlich bewirkt, und in der Joystick-Datei werden diese Makros dann den gewünschten Tasten und Hütchen des Joysticks und der Schubkontrolle zugewiesen. Daher werdet Ihr normalerweise Thrustmaster-Dateien immer paarweise vorfinden, bestehend aus eben einer Joystick- und ihrer Makro-Datei für ein spezielles Spiel. Deshalb ist das Hauptfenster von Foxy der Editor, in welchem die Joystick- und die Makro-Datei auf getrennten Reitern angezeigt werden. Angenommen, unser kleines Beispiel wäre für die Flugsimulation Falcon 4 gedacht, dann könnten wir die Joystickdatei als Falcon 4.tmj und die Makro-Datei als Falcon 4.tmm (tmj = Thrustmaster Joystick-Datei, tmm = Thrustmaster Makro-Datei) abspeichern. 2.1.6 Woher weiss die Joystick-Datei, welche Makro-Datei ihre Makros enthaelt? Also, wir haben nun die Grundlagen von Joystick- und Makro-Dateien behandelt, und hoffentlich habt Ihr gesehen, dass sie überhaupt nicht schwierig zu verstehen oder zu erstellen sind. Wenn Ihr also wie ich so um die 30 Flugsimulationen habt, dann heißt das natürlich auch, dass Ihr 30 Joystick- und 30 Makro-Dateien habt, alle in Foxy’s Dateien-Verzeichnis. Wie also schon die Überschrift dieses Kapitels fragt: “Woher weiß die Joystick-Datei, welche Makro-Datei ihre Makros enthält?“ Nun, im Moment tut sie es nicht. Wir müssen ihr angeben, welche Makro-Datei sie verwenden soll. Um also unsere einfache Joystick-Datei zu vervollständigen, müssen wir ihr jetzt sagen, welche MakroDatei die zu verwendenden Makro-DEFinitionen (MDEF) enthält. Immerhin könnte in der einen Makro-Datei die Taste „w“ für die Rad-Bremsen (wheelbrakes) zuständig sein, in einer anderen aber vielleicht das “b” (wheelbrakes). Dies erreichen wir mittels eines Befehls in der Joystick-Datei, welcher festlegt, welche Makro-Datei von eben dieser speziellen Joystick-Datei verwendet werden soll, wie z.B. auf der folgenden Seite: HOTAS Cougar Referenz - Buch 48 THRUSTMASTER USE MDEF Falcon 4.tmm Dann liest Foxy die USE MDEF Zeile (use = benutze/verwende) beim Öffnen der Joystick-Datei, sucht sich die entsprechende Makro-Datei, in diesem Beispiel Falcon 4.tmm, und verwendet die dort enthaltenen Makros zur Programmierung dieser Joystick-Datei. 2.1.7 Zusammenfassung des bisher Gelernten … Lasst uns also mal schauen, wie unsere Joystick- und Makro-Datei langsam Gestalt annehmen. Joystick-Datei (Falcon 4.tmj) REM ---------------------------------------------REM Falcon 4.tmj REM Falcon 4 joystick file REM REM Rem-Befehle machen gar nichts. REM Wir nutzen sie, um Kommetare REM einzufügen. REM ----------------------------------------------REM Wir sagen der Joystick-Datei, REM welche Makro-Datei die Makros REM enthält Makro-Datei (Falcon 4.tmm) REM ---------------------------------------------REM Falcon 4.tmm REM REM Falcon 4 Makro file REM ---------------------------------------------REM Makros machen es uns wesentlich REM einfacher, uns zu erinnern, REM welche Tastatur-Tasten für welche REM Funktionen in unserer FlugREM Simulation zuständig sind. REM Makro-Definitionen beginnen hier USE MDEF Falcon 4.tmm REM Jetzt beginnen wir mit der REM Zuweisung von Makros aus der REM angegebenen Makro-Datei REM für die Joystick-Tasten und REM Hütchen Autopilot = a Blick_vorwearts = F1 BTN S2 Autopilot BTN H1U Blick_vorwaerts Ja, ich weiß, dass diese Makros für Falkon 4 nicht stimmen – ich versuche lediglich, das Prinzip zu zeigen! HOTAS Cougar Referenz - Buch 49 THRUSTMASTER Also gut, wir haben bisher gelernt, dass: 1. 2. 3. 4. 5. Makro-Dateien Makros enthalten, welche schlicht beschreiben, was eine Taste der Tastatur in einem Spiel bewirkt; Joystick-Dateien diese Makros aus der mit ihnen verknüpften Makro-Datei den Tasten und Hütchen von Joystick und Schubkontrolle zuweisen, und zwar durch den BTN-Befehl; die Joystick-Datei weiß, aus welcher Makro-Datei sie die Makros verwenden soll, durch den USE MDEF Befehl; REM Befehle eine einfache Möglichkeit zum Einfügen von Anmerkungen sind; Joystick- und Makro-Dateien ziemlich einfache Text-Dateien mit den DateiEndungen .tmj und .tmm sind, die sich im gleichen Verzeichnis Eurer Festplatte befinden müssen. Als Voreinstellung ist dies Foxy’s DateienVerzeichnis. 2.1.8 Eine Joystick-Datei in den Joystick laden Großartig! Wir haben die Grundlagen der Erstellung von Dateien für Eure Controller behandelt. Bleibt die brennende Frage: “Wie bekommen wir unsere Dateien in unsere Controller?” Der einfachste Weg führt über die Schaltfläche “Download" in Foxy's Toolbar, oder Ihr könntet auch einfach dir Funktionstaste „F12" auf Eurer Tastatur drücken. Innerhalb kürzester Zeit wird die Datei zu Euren Controllern übertragen, oder, um die Download gebräuchliche Bezeichnung zu verwenden, Icon „gedownloaded". Und das war’s – Ihr seid bereit, loszufliegen, mit allen Joystick-Tasten genau so programmiert, wie in Eurer Joystick-Datei festgelegt. Einfach! Bevor wir dieses Thema verlassen, lasst mich kurz näher darauf eingehen, was beim Download einer Joystick-Datei in Eure Controller eigentlich geschieht. Was passiert ist folgendes: die Joystick-Datei wird an eine der ThrustmasterAnwendungen weitergereicht, den Kompilierer (Kompilierer). Dieser hat die Aufgabe, die Joystick-Datei unter Berücksichtigung der Makro-Datei aus ihrem reinen Text-Format in ein Format zu übertragen, welches die Controller verstehen. Diese Umwandlung wird „Kompilierung“ genannt, und wenn diese kompilierte Datei keine Fehler enthält, wird sie in die Controller übertragen. Der Kompilierer benachrichtigt dann Foxy, meldet, dass alles sauber über die Bühne gegangen ist und er die Controller in die richtige Betriebsart versetzt hat, in der die Joystick-Tasten und Hütchen die programmierten Tastatur-Kommandos produzieren, wenn sie gedrückt werden, und nachdem seine Arbeit damit erledigt wäre, verabschiedet er sich und übergibt das Kommando wieder an Foxy. HOTAS Cougar Referenz - Buch 50 THRUSTMASTER 2.1.9 Struktur von Joystick- und Makro-Datei Ehe wir diesen einleitenden Teil verlassen und weiter gehen, sollten wir einen kurzen Blick auf einige allgemeine Regeln der Struktur von Joystick- und MakroDateien werfen. Die folgenden Beispiele sollen dies einmal verdeutlichen. Sorgt Euch im Moment noch nicht darum, zu verstehen, was jede Zeile genau macht. Es geht erst einmal nur darum, überhaupt eine Vorstellung davon zu bekommen, was eigentlich in einer Joystick-, und was in einer Makro-Datei zu finden sein kann, und wie diese aufgebaut sind. Ich möchte lediglich darauf hinweisen, dass die Joystick-Datei einen Bereich für Konfigurations-Befehle hat, welches später behandelt werden wird. Anmerkung des Übersetzers: Die Makros der folgenden Beispiele habe ich nicht mit übersetzt, aus mehreren Gründen: 1. Viele englische Funktions-Bezeichnungen sind allgemein bekannt und vor allem gebräuchlich. 2. Sie lassen sich oftmals nicht eindeutig und sinnvoll übersetzen, zumindest nicht, ohne unfreiwillige Lacher zu produzieren. 3. Sie sind in der Regel wesentlich kürzer und eindeutiger als ihre deutschen Entsprechungen. 4. Die den Spielen beigegebenen Joystick-Setups zur einfachen Verwendung liegen jeweils nur in englisch vor. 5. Englisch ist halt einfach die Sprache des Internets und damit auch der Flugsimulations- und Thrustmaster-Gemeinde. Abschnitt Titel Nicht nötig, aber eine gute Idee. KonfigurationsBefehle (nur in der Joystick-Datei!) Joystick-Datei (Falcon 4.tmj) Makro-Datei (Falcon 4.tmm) Rem -----------------------------------Rem Falcon 4.tmj Rem Rem Falcon 4 Joystick-Datei Rem Rem letzte Änderung 02.02.02 Rem Rem -----------------------------------Rem Rem Konfigurations-Befehle Rem Rem -----------------------------------Rem Falcon 4.tmm Rem Rem Falcon 4 Makro file Rem Rem letzte Änderung 02.02.02 Rem Rem -----------------------------------Rem Rem Konfigurations-Befehle Rem gehören nicht in die Rem Makro-Datei! Rem Rem Hier beginnen die Rem Makro-Definitionen… USE MDEF Falcon 4 USE RATE (60) USE TG1 AS DX1 USE S2 AS DX2 (Fortsetzung siehe nächste Seite!) HOTAS Cougar Referenz - Buch 51 THRUSTMASTER Rem -----------------------------------Rem Joystick-TastenZuweisungen Rem ------------------------------------ Command syntax BTN H1U View_up BTN H1D View_Down BTN H1L View_Left BTN H1R View_Right Joystick-Datei BTN S1 Cycle_MSL_hardpt TastenZuweisungen, BTN S2 Pickle_weapon Achsen-Befehle, Logische Programmierung. Makro-Datei BTN S3 /U Cycle_RDRsubmode /M Ground_Map_FOV /D Cycle_RDRsubmode BTN S4 /T Padlock_view /T 2-D_cockpit Rem -----------------------------------Rem Throttle Rem ------------------------------------ Makro-Definitionen BTN T2 /T Virtual_Cockpit /T 2-D_cockpit BTN T3 Look_Closer BTN T4 Padlock_Next BTN T5 Padlock_Prev BTN T6 Uncage Rem -----------------------------------Rem View control Rem -----------------------------------View_up = KP8 View_Down = KP2 View_Left = KP4 View_Right = KP6 Rem -----------------------------------Rem Weapons Rem -----------------------------------Cycle_MSL_hardpt = SHF / Pickle_weapon = SPC Rem -----------------------------------Rem Miscellaneous Rem -----------------------------------Cycle_RDRsubmode = F8 Ground_Map_FOV = F9 Padlock_view = 4 2-D_cockpit = 2 Virtual_Cockpit = 3 Look_Closer = l Padlock_Next = KP+ Padlock_Prev = KPUncage = u Das war also eine kurze Einführung in die Grundlagen der Programmierung. Nun ist es an der Zeit, einen genaueren Blick auf die einzelnen Befehle, die sich in einer Joystick-Datei finden können, zu werfen. Wir beginnen mit genau dort, wo wir angefangen haben – dem Joystick-Tasten-Befehl (BTN), den Namen der Joystick-Tasten und Hütchen, und anschließend einer etwas tiefer gehenden Diskussion der Makro-Datei. HOTAS Cougar Referenz - Buch 52 THRUSTMASTER 3. Tasten-Befehle und Makros 3.1 JoystickJoystick-TastenTasten-Befehle und -Verwendung Der HOTAS Cougar besteht hauptsächlich aus mehreren Achsen und einer Anzahl von Tasten, also Joystick-Tasten, Hütchen und Abzug, usw. Alles, was keine Achse ist, kann durch einen Joystick-Tasten-Befehl (button statement) folgendermaßen programmiert werden: Befehl und Verwendung BTN Joystick-Taste Tastatur-Taste/ -Kombin./ -Sequenz und/ oder Makro(s) Wobei Joystick-Taste die zu programmierende Joystick-Taste (Taste oder HütchenPosition) benennt: Die Schubkontrolle hat: 10 Tasten: T1 bis T10 Der Joystick hat: 4 Hütchen: 4 Tasten: 2-stufiger Abzug: H1 bis H4 S1 bis S4 TG1 und TG2 HOTAS Cougar Referenz - Buch 53 THRUSTMASTER Beispiele: BTN T3 y BTN S2 Eject BTN T4 Chaff Flare BTN S4 h e l l o Jedes Hütchen Positionen: hat Rem “Verstanden, alles klar, so sei es - Amen" Rem Guten Flug… Rem Zeit für Ausweich-Manöver Rem Beachtet die Leerzeichen – das ist kein Makro! 9 programmierbare Im Allgemeinen werden meist nur die 4 HauptPositionen programmiert. Für HÜTCHEN 1 wären das z.B.: BTN H1U BTN H1R BTN H1D BTN H1L Look_up Look_right Look_down Look_left Doch die Zwischen-/Eck-Positionen können auch programmiert werden: z.B. BTN H1UL View_UL und die mittlere Position: BTN H1M View_forward ANMERKUNGEN 1. Der BTN Befehl muss nicht unbedingt direkt am Anfang einer Zeile stehen, allerdings ist nur ein BTN Befehl pro Zeile zulässig, und eine Joystick-Taste kann nicht öfter als einmal on einer Datei belegt werden. Falls Ihr also folgendes habt: BTN S2 a b c BTN S3 d e f Dann sind diese Befehle vollkommen in Ordnung, doch wenn Ihr dann noch irgendwo weiter unten in Eurer Datei diesen Befehl stehen habt: BTN S3 g h I wird der Kompilierer einen Fehler produzieren und Euch informieren, dass Ihr eine doppelt bzw. mehrfach vergebene Joystick-Taste habt. HOTAS Cougar Referenz - Buch 54 THRUSTMASTER 2. Zwischen dem Befehl BTN und seinem angegebenen Joystick-TastenNamen muss ein Leerzeichen stehen, dieses hier: BTNS2 würde einen Fehler produzieren. 3. Ein Leerzeichen muss außerdem hinter dem Joystick-Tasten-Namen stehen, also würde auch: BTN S2a b c einen Kompilier-Fehler nach sich ziehen. 4. Eine Tastatur-Taste oder ein Makro wird nur ein einziges Mal beim Drücken der programmierten Joystick-Taste produziert, unabhängig davon, ob die Joystick-Taste weiterhin gedrückt gehalten wird oder nicht. Soll es wiederholt werden, könnt Ihr entweder den /H „Halten”-Modifizierer (hold) oder den /A „Auto-Wiederholen”-Modifizierer verwenden. Dies hat sich, verglichen mit den alten, originalen TM-Dateien geändert, und soll auch so sein. Die Modifizierer werden später behandelt. FORTGESCHRITTENE ANMERKUNGEN Ich werde hier mal ein wenig abschweifen, um die mittlere Position der Hütchen zu erklären. Ich erwarte nicht, dass Ihr jetzt schon versucht, alles zu verstehen, erinnert Euch lediglich an das, was nun folgt, falls es eines Tages in einer Eurer Dateien mal auftauchen sollte. Die Mitte jedes Hütchens kann programmiert werden, indem man dem Hütchen ein M anfügt, wie in obigem Beispiel. Beachtet auch, dass, wenn Ihr eine /P, /R Modifikation (siehe auch die später folgenden Anmerkungen zu den Schrägstrich-Modifizierern) in Verbindung mit einer der Hütchen-Positionen verwendet, die /R Tastatur-Kommandos zur gleichen Zeit wie die der M-Position gesendet werden. D.h., dass: BTN H1U /P 1 /R 2 BTN H1M a folgendes senden würde, wenn HÜTCHEN 1 nach oben gedrückt und dann wieder losgelassen würde: „1”, dann „a” und „2” zur gleichen Zeit. Um sicherzustellen, dass der Befehl für H1M erst nach H1U /R ausgeführt wird, könnte man für diesen Befehl H1M eine Verzögerung einbauen (siehe spätere Anmerkungen): BTN H1M DLY(60) a HOTAS Cougar Referenz - Buch 55 THRUSTMASTER 3.2 Thrustmaster Tastatur Tastaturstatur-Schema Um auf die Verwendung unserer Befehle zurückzukommen: Befehls-Syntax (Verwendung/Schreibweise) BTN Tasten-Name Tastatur-Sequenz und/oder Makro(s) Lasst uns den letzten Teil genauer betrachten – Tastatur-Sequenz (Abfolge). Wenn wir Tastatur-Tasten zuweisen wollen, sei es in Makros oder in JoystickBefehlen, muss man verstehen, dass es eine Thrustmaster-Art gibt, jede Tastatur-Taste eindeutig zu benennen, die Thrustmaster Tastatur-Syntax. Der Grund dafür ist, dass die Taste „5” in der Zahlenreihe auf der Haupttastatur in einer Simulation eine vollkommen andere Funktion als die „5” auf dem Ziffernblock recht auf der Tastatur haben kann. Wir müssen sie also voneinander unterscheiden können, wie z.B. durch eine '5' und eine 'KP5'. Das also ist dann die Thrustmaster-Syntax für Tastatur-Tasten: ESC F1 ` 1 TAB q CAPS LSHF a LCTL F2 F3 F4 2 3 4 5 w e s z r d x F6 7 t f c F5 6 y g v LALT F8 F9 F10 9 0 = i j n o k m SCRLCK BRK INS HOME PGUP DEL END PGDN UARROW DARROW RARROW p l , SPC PRNTSCRN LARROW u h b F7 8 [ ; . ’ / RALT NUML KP/ F11 F12 BSP ] ENT RSHF RCTL KP* KP7 KP8 KP9 KP4 KP5 KP6 KP1 KP2 KP3 KP0 KP. \ KPKP+ KPENT Der einfachste Weg, sicherzugehen, dass diese korrekt ausgewählt werden, ist die Verwendung von Korgy, der virtuellen Tastatur von Foxy. Diese Informationen können auch über den Eintrag "Tastatur-Syntax" aus dem “Hilfe”-Menü des Foxy Editors angezeigt werden. HOTAS Cougar Referenz - Buch 56 THRUSTMASTER ANMERKUNGEN 1. Die Schreibweise für Tasten-Kombinationen, für die Ihr Shift, ALT oder CTRL gedrückt halten müsst, ist SHF a, ALT b, CTL c. Dies ist nicht das gleiche wie die Verwendung von LSHF a, LALT b oder LCTL c. LSHF a ist nämlich das gleiche, als würde man die linke Umschalt-Taste drücken und wieder loslassen, und erst dann die „a” drücken und wieder loslassen. Der Kompilierer benutzt stets die linke Umschalten-, ALT-, oder CTRL-Taste für diese im Englischen “chorded keys” genannten Tasten-Kombinationen. 2. Einige Zeichen sind reserviert: ( ) { } < > und müssen mittels SHF umschrieben werden: ( = SHF 9 ) = SHF 0 { = SHF [ } = SHF ] < = SHF , > = SHF . 3. Eine gute Gewohnheit, die man sich wirklich angewöhnen sollte, ist es auch, immer SHF, ALT oder CTL in Verbindung mit anderen Tasten zu verwenden, anstatt sie groß zu schreiben: BTN S1 SHF p BTN S1 P Beide sind korrekt und produzieren ein „P", doch ersteres ist irgendwie ein saubererer Stil. 4. Das TM Tastatur-Schema und ihre Syntax basiert auf der US Tastatur. Manchmal gibt es Situationen, in denen man eine länder-spezifische Taste, die nur auf speziellen Tastaturen zu finden ist, braucht. In diesem Falle könnt Ihr die direkten USB-Kürzel verwenden… dies wird später in diesem Referenz-Buch noch erklärt werden und wird wohl eher selten gebraucht werden. Da man aber ja nie wissen kann, ist diese Möglichkeit halt da! ! 5. Die Syntax hat sich etwas geändert, verglichen mit dem originalen TM F22. So entfällt z.B. das vorangestellte AUX für einige Tasten. HOTAS Cougar Referenz - Buch 57 THRUSTMASTER 3.3 Makros und MakroMakro-Regeln In der Einleitung haben wir das Konzept der Makros und die Makro-Datei vorgestellt. Ich brachte zwei Beispiele, nämlich diese: Autopilot = a Forward_view = F1 Nachdem wir nun die Syntax für alle Tasten auf der Tastatur abgehandelt haben, seid Ihr eigentlich schon in der Lage, eine Makro-Datei mit den Makros für Eure Flugsimulation zu erstellen. Foxy bietet Euch dazu verschiedene nützliche Helferlein, um Euch beim Erstellen Eurer Makros zu unterstützen und sicherzustellen, dass Eure Makros die richtige Syntax aufweisen und sich an die folgenden Regeln halten. Diese sind: der Makro-Assistent (Wizard), Speedy und Korgy. Siehe die Dokumentation zu Foxy für weitergehende Informationen zu ihnen. Ehe wir mit den Makro-Regeln weitermachen, lasst mich an dieser Stelle einen kurzen Ratschlag einwerfen. Es kann ziemlich langweilig und anstrengend sein, über der Karte mit den TastaturKommandos eines Spiels zu hängen, während man alle Makros erstellt. Wenn das Spiel eine Hilfe-Datei hat, seht zu, ob Ihr diese Tastatur-Belegung dort herauskopieren und diesen Text dann in Makros umändern könnt, die den unten aufgeführten Regeln entsprechen. Ein letzter Punkt: ich erhalte regelmäßig Dateien von Leuten, die Probleme haben, diese Dateien erfolgreich in Ihren Joystick zu laden, weil der Kompilierer Fehler-Meldungen ausgibt, deren Ursachen nicht immer sofort offensichtlich sind. Aus Erfahrung habe ich gelernt, jedes Mal, wenn ich Dateien geschickt bekomme, zuerst die Makro-Datei durchzugehen und nach falscher Syntax durchzusehen, oder nach Makros, die die unten angeführten Regeln brechen. Und ich würde sagen, dass 90% aller Kompilier-Fehler durch Fehler in der Makro-Datei entstehen. Nehmt Euch also die Zeit, Eure eigenen Makro-Dateien zu erstellen, denn dann wisst Ihr, dass sie in Ordnung sind, und sind sie erst einmal fertig, habt Ihr alle Zeit der Welt, Eure Joystick-Datei zu erstellen! Jetzt also zu den Regeln … 1. Makro-Namen dürfen keine Leerzeichen enthalten. Nehmt stattdessen einen Unterstrich (_) oder ein Minus (-). Also: Mein Makro ist = b ist nicht erlaubt, wohingegen: Mein_Makro_ist = b Mein-Makro-ist = b es sind. 2. Vergewissert Euch, dass Ihr ein Leerzeichen vor und hinter dem „=" hinter dem Makro-Namen habt. Die beiden folgenden Makro-Definitionen: Autopilot= a Autopilot =a sind falsch. HOTAS Cougar Referenz - Buch 58 THRUSTMASTER 3. Ihr könnt die folgenden Zeichen nicht für Makro-Namen verwenden: = < > { } ( ) ^ , Leerzeichen Anmerkung des Übersetzers: Zumindest < und > waren früher möglich, weshalb der Übersetzer nach Erhalt dieses Referenz-Buches in einer Nacht-und-Nebel-Aktion die Dateien, über denen er gerade brütete, entsprechend zu entrümpeln beschloss... 4. Versucht, Euch mit Großbuchstaben für Makro-Namen zurückzuhalten, z.B. nicht: RADAR_RANGE_INCREASE. Obgleich das möglich ist, ist eine Datei viel einfacher ohne zu lesen. Spart Euch die Großbuchstaben für die TM-Befehle auf (z.B. MDEF), oder eventuell nötige Abkürzungen (z.B. HUD). Anmerkung des Übersetzers: Das ist ein bisschen eine Radio-Eriwan-Aussage: „Im Prinzip schon...“, zumindest, wenn tatsächlich alles und jedes in Großbuchstaben geschrieben wird – da blickt irgendwann wirklich keiner mehr durch! Beschränkt man sich aber auf einige wenige Punkte, dienen Großbuchstaben wunderbar der Hervorhebung wichtiger Punkte und können so zur Lesbarkeit einer Datei beitragen. In mittlerweile achtjähriger TMProgrammierung habe ich mir z.B. angewöhnt, allen Makro-Namen ein Kürzel voranzustellen, da der Editor streng alphabetisch sortiert: Schiebt es auf’s Alter, aber Select_next_missile vor Select_next_waypoint zu finden, irritiert – so man denn überhaupt weiß, wo man suchen soll... Ich bevorzuge also eine Vorsortierung: NAV:’WayPoint’_+ für „NAVigation“, und WPN:’Arm’_+ für „WeaPonS“, und sinngemäß weitere Kürzel für die Haupt-„Themen“, wie „TarGeTing“, „AUTOpilot“, „CAMeras“,... 5. Bei Makro-Namen wird nicht zwischen Groß- und Kleinschreibung unterschieden: MeinMakro = a meinmakro = a sind das gleiche. Anmerkung des Übersetzers: Siehe Stichwort „Lesbarkeit“... HOTAS Cougar Referenz - Buch 59 THRUSTMASTER FORTGESCHRITTENE ANMERKUNGEN Ich erwähne dieses für die wirklich Besessenen unter Euch! Makros können verschachtelt werden, d.h. Ihr könnt ein Makro dazu benutzen, ein anderes Makro aufzurufen, z.B. so: Makro_1 = a b c Makro_2 = Makro_1 d e f Ihr könnt bis zu 20 Verschachtelungen pro Makro haben, also: Makro-1 = a Makro-2 Makro-2 = b Makro-3 Makro-3 = c Makro-4 ... etc... Makro-20 = t Aber nicht mehr als 20. Und falls Ihr so etwas versucht... Makro-1 = a Makro-1 wird der Kompilierer sich mit folgender Fehlermeldung beschweren: “MakroSchleife zu lang; zwei Makros könnten sich gegenseitig aufrufen." HOTAS Cougar Referenz - Buch 60 THRUSTMASTER 3.4 BefehlsBefehls-Modifizierer Wir haben einige einfache Befehle wie diesen betrachtet: BTN T4 a was dazu führt, dass ein einzelnes “a” ausgegeben wird, wenn dieJoystick-Taste T4 auf der Schubkontrolle gedrückt und wieder losgelassen wird. Ich möchte darauf hinweisen, dass es auch den Fall geben wird, dass Ihr nicht mehr als nur eine einzigeJoystick-Taste benötigt. Auf einer Tastatur könnt Ihr mehrereJoystickTasten drücken, um eine ganze Abfolge zu erhalten, jeweils mit einer kleinen Pause zwischen den einzelnenJoystick-Tasten, Ihr könnt eine einzelneJoystickTaste drücken und halten, Ihr könnt sie zu Gruppen zusammenfassen, usw. Die Voraussetzung eines erfolgreich(en) programmierbaren Controller ist, dass er alles das nachmachen können muss, was Ihr mit einer Tastatur machen könnt. An dieser Stelle lernen wir deshalb die Befehls-Modifizierer kennen. Wir woollen schließlich mehr, als nur einzelneJoystick-Tasten zu programmieren. Befehls-Modifizierer werden verwendet, um das Verhalten von Tastatur-Tasten, mit denen eine Joystick-Taste belegt ist, zu verändern. Es gibt sie in 5 Geschmacksrichtungen: 1. Schrägstrich (slash) Modifizierer /U, /M, /D, /I, /O, /P, /R, /T, /A, /H BTN S4 /H b Rem Bremsen BTN T3 /A c f Rem Chaff und Flares 2. Verzögerung (Delay) und Wiederholung (Repeat) DLY( ), RPT( ) BTN T6 1 DLY(60) 1 DLY (60) 2 Rem Request Vector For Recovery TAW BTN S2 RPT(6) c Rem 6 chaffs please … like right now would be good! 3. Gruppierungen – der Gebrauch von Klammern ( ), { }, < > BTN T2 (a b c) BTN T3 {a b c} BTN T4 /P <a b c> /R d 4. mit DirectX-Tasten (Direct Input) arbeiten DX USE TG1 AS DX1 BTN H2U DX1 USE ALL_DIRECTX_BUTTONS HOTAS Cougar Referenz - Buch 61 THRUSTMASTER 5. Tastatur-Taste Drücken- und Loslassen-Kürzel (KeyDown, KeyUp) und USB-Kürzel KD( ), KU( ), USB( ) BTN H4U KD(a) DLY(60) KU(a) BTN H4D /P USB (D51) /R USB (U51) Rem 'Down arrow' Wir beginnen mit den Schrägstrich-Modifizierern … 6. Ihr könnt keine reservierten TM-Bezeichnungen in Euren Makro-Namen verwenden. Dies schließt alle TM-Bezeichnung für die Tasten der Tastatur und die in den verschiedenen TM-Befehlen verwendeten Bezeichnungen mit ein. Habt Ihr also in Eurer Joystick-Datei folgendes: BTN S2 HOME und in Eurer Makro-Datei steht: HOME = k werdet Ihr eine Fehler-Meldung erhalten, wenn Ihr versucht, diese JoystickDatei zu kompilieren oder in den Controller zu laden, da die Bezeichnung "HOME" der TM-Name für die Taste HOME (POS1) auf Eurer Tastatur ist. 3.5 Schraegstrich (slash) Modifizierer Es gibt insgesamt 10 Schrägstrich-Modifizierer, welche man in 3 Hauptgruppen einteilen kann, je nach ihren Auswirkungen auf die Joystick-Tasten und ihre Befehle: Erhöhung der Anzahl der programmierbaren Positionen: /U, /M, /D unter Verwendung des “Luftkampf” (Dogfight) Schalters (T7, T8) auf der Schubkontrolle /I, /O unter Verwendung der Joystick-Taste S3 Unterteilung der Makros einer Joystick-Taste: /T Wechselschalter (Toggle) /P, /R beim Drücken, Loslassen (Press, Release) der Joystick-Taste sich wiederholende und nicht-wiederholende Tasten: /A Auto-Wiederholung (Auto-repeat) /H Halten (Hold) HOTAS Cougar Referenz - Buch 62 THRUSTMASTER Strukturen und Regeln der Schrägstrich-Modifizierer: Jetzt müßt Ihr noch verstehen, wann und wo Ihr die Schrägstrich-Modifizierer benutzen könnt und wie nicht, und in welcher Reihenfolge. 3.5.1 Erhoehung der Anzahl der programmierbaren Positionen: Der Luftkampf (Dogfight) Schalter auf der Schubkontrolle kann in 3 verschiedene Positionen bewegt werden – Hoch (eigentlich links) (Up) (/U), Mitte (/M), Runter (eigentlich rechts) (Down) (/D). Ebenso kann die Joystick-Taste S3 gedrückt (pressed in) (/I) oder nicht gedrückt (out) (/O) sein, siehe Diagramme unten. Ihr könnt auch jede mögliche Kombination verwenden, was die Anzahl der programmierbaren Positionen für eine Joystick-Taste/ Hütchen/ Achse bis zu versechsfacht. Befehls-Modifizierer /U, /M, /D für den Luftkampf-Schalter (T7, T8) auf der Schubkontrolle /I, /O für die Joystick-Taste S3 HOTAS Cougar Referenz - Buch 63 THRUSTMASTER 3.5.1.1 /U, /M, /D - Up, Middle, Down Ihr könnt die Anzahl der programmierbaren Positionen für eine Joystick-Taste, ein HÜTCHEN oder eine digitale Achse erhöhen, indem Ihr die Positionen des Luftkampf-Schalters mitbenutzt, durch die /U, /M und /D SchrägstrichModifizierer. Ein Beispiel: BTN H4U /U a /M b /D c Wenn Hütchen 4 nach oben gedrückt wird, produziert es: • • • ein „a", wenn der Luftkampf-Schalter in seiner oberen (/U) Position ist ein „b", wenn der Luftkampf-Schalter in seiner mittleren (/M) Position ist ein „c", wenn der Luftkampf-Schalter in seiner unteren (/D) Position ist Ihr müsst die /U, /M, /D Befehle in verschiedenen Zeilen stehen haben. Stehen sie in der gleichen Zeile, verursacht das einen Kompilier-Fehler. Außerdem müssen sie in genau der angegebenen Reihenfolge auftauchen. Also würde: BTN H4U /D a /M b /U c einen Kompilier-Fehler bewirken. 3.5.1.2 /I, /O - In, Out Ihr könnt die Anzahl der programmierbaren Positionen für eine Joystick-Taste, ein HÜTCHEN oder eine digitale Achse erhöhen, indem Ihr die Joystick-Taste S3 mitbenutzt, durch die /I und /O Schrägstrich-Modifizierer. Ein Beispiel: BTN H4D /I 1 /O 2 Wenn Hütchen 4 nach unten gedrückt wird, produziert es: • • eine „1", wenn gleichzeitig die Joystick-Taste S3 gedrückt ist (/I = In) eine „2", wenn die Joystick-Taste S3 nicht gedrückt ist (/O = Out) Kombination von /U, /M, /D mit /I, /O Modifizierern in Befehlen Ihr könnt diese Schrägstrich-Modifizierer auch miteinander kombinieren, wie im folgenden Beispiel: HOTAS Cougar Referenz - Buch 64 THRUSTMASTER BTN H4R /U /I /O /M /I /O /D /I /O Engage_my_target Break_right Camera_right Next_waypoint Engine_right View_right Auf diese Weise kann Hütchen 4, wenn es nun nach rechts gedrückt wird, 6 verschiedene Funktionen haben, abhängig von der Position des Luftkampf-Schalters (/U, /M, /D) und der Joystick-Taste S3 (/I, /O). ANMERKUNGEN 1. Die /U, /M, /D Modifizierer stehen immer vor eventuell vorhandenen /I, /O Modifizierern. 2. Ihr könnt die /U, /M, /D Modifizierer nicht auf den Luftkampf-Schalter selbst anwenden (Tasten T7 und T8), da sie schließlich genau diese Positionen benennen. 3. Ihr müsst die /I, /O Modifizierer in unterschiedlichen Zeilen unterbringen. Dies hat sich im Vergleich zur ursprünglichen TM HOTAS Syntax geändert. 4. Der Modifizierer /I muss immer vor dem /O Modifizierer stehen. Also: BTN H4D /I 1 /O 2 ist eine gültige Anweisung, doch diese beiden Befehle: BTN H4D /O 2 /I 1 BTN H4D /I 1 /O 2 Würden beide zu einem Kompilier-Fehler führen. Dies hat sich im Vergleich zur ursprünglichen TM HOTAS Syntax geändert. 5. Wenn Ihr die /I, /O Modifizierer auf S3 anwendet, werden normalerweise alle Anweisungen für dessen /O Position vom Kompilierer ignoriert. Ich sage deshalb normalerweise, weil Ihr durch den Befehl S3_LOCK (siehe spätere Anmerkungen) auch die /O Position von S3 nutzen könnt. Falls Ihr statt S3 eine andere JoystickTaste zum Umschalten wählt, durch den Befehl USE Taste AS SHIFTBTN (siehe spätere Anmerkungen), gilt das gleiche. 6. Falls eine Datei für Joystick und Schubkontrolle geschrieben wurde, aber nur der Joystick angeschlossen ist, verwendet der Kompilierer nur die /M Befehle für alle Joystick-Tasten/ Hütchen-Positionen, und ignoriert alle /U, /D Befehle. HOTAS Cougar Referenz - Buch 65 THRUSTMASTER FORTGESCHRITTENE ANMERKUNGEN – WIE KLEMMENDE TASTEN VERMIEDEN WERDEN Einige technische Anmerkungen für Euch über das, was passiert, wenn Ihr den Status von S3 ändert (d.h. von gedrückt zu nicht gedrückt, oder anders herum), während eine Joystick-Taste, die mit den beiden /I und /O Befehlen programmiert wurde, gedrückt gehalten wird. Wenn die Position des Luftkampf-Schalters oder der Joystick-Taste S3 sich ändert, geschieht im Controller folgendes: 1. 2. 3. 4. 5. Der Cougar bemerkt die Änderung; der Cougar überprüft, ob gerade eine Joystick-Taste gedrückt wird; der Cougar überprüft, ob die gedrückte Joystick-Taste für diese geänderte Situation anders programmiert ist. Falls das zutrifft, beendet er das Makro des vorigen Status’, indem er ein Loslassen der Joystick-Taste hinzufügt. Es werden keine TastaturKommandos ausgeführt, nur alle anderen Befehle (z.B. Befehle bezüglich der Maus, DirectX oder der Achsen); der Cougar befindet sich nun im neuen Modus. HOTAS Cougar Referenz - Buch 66 THRUSTMASTER 3.5.2 Unterteilung von Makros fuer eine Joystick-Taste: Befehls-Modifizierer /T schaltet zwischen verschiedenen Makros für eine Taste weiter (Toggle=Wechselschalter) /P, /R unterscheidet zwischen dem Drücken und dem Loslassen einer Joystick-Taste (Press, Release) 3.5.2.1 /T – Wechselschalter (Toggle) Schrägstrich-Modifizierer Die einfachste Art, zu begreifen, was ein /T Wechselschalter macht, ist, sich ein Beispiel anzusehen, und zu erklären, was er dort bewirkt: BTN S2 /T a /T b /T c Lasst uns annehmen, dass die Joystick-Taste S2 3 mal gedrückt würde. Beim ersten Drücken wird ein „a“ ausgegeben, beim nächsten Drücken ein „b“, und zum Schluss ein „c“. Wird S2 danach noch einmal gedrückt, ist es wieder ein „a”, und das ganze Spielchen geht von vorne los: dieser Kreislauf wiederholt sich, indem die Joystick-Taste durch ihre Makros weiterschaltet. Es gibt 16 mögliche Schalter-Positionen je programmierbarer Position, jeweils einschließlich ihrer /U, /M, /D, /I und /O Befehle, d.h. Ihr könntet folgendes machen: BTN S2 /U /I /O /M /I /O /D /I /O 16 Wechselschalter können hier stehen 16 Wechselschalter können hier stehen 16 Wechselschalter können hier stehen 16 Wechselschalter können hier stehen 16 Wechselschalter können hier stehen 16 Wechselschalter können hier stehen Anmerkung des Übersetzers: D.h. also maximal 96 Funktionen je Joystick-Taste/ Hütchen-Position! HOTAS Cougar Referenz - Buch 67 THRUSTMASTER ANMERKUNGEN 1. Wechselschalter-Modifizierer sind nicht zulässig nach /P oder /R Modifizierern. Hier 3 Beispiele: Beispiel 1. BTN TG1 /T /P a /R b /T c Beispiel 2. BTN TG1 /P /T a /T b /R c Beispiel 3. BTN TG1 /P a /R /T b /T c Beispiel 1 ist erlaubt, aber 2 und 3 verursachen eine Fehlermeldung des Kompilierers. 2. Ihr könnt keine /T Wechselschalter für T1 benutzen, wenn Ihr in Eurer JoystickDatei den Befehl USE T1_SENSITIVITY (siehe spätere Anmerkungen) verwendet. 3. Ihr könnt keine /T Wechselschalter für die Positionen eines Hütchens benutzen, wenn Ihr in Eurer Joystick-Datei den Befehl USE HATID_SENSITIVITY (siehe spätere Anmerkungen) verwendet. 4. Ihr könnt keine /T Wechselschalter in Verbindung mit Befehlen der digitalen Achsen (siehe spätere Anmerkungen) verwenden. 5. Ihr könnt keine /T Wechselschalter in Verbindung mit Befehlen der logischen Programmierung (siehe spätere Anmerkungen) verwenden. 6. Ein einzelner /T Wechselschalter an einer Joystick-Taste verursacht eine Fehler-Meldung des Kompilierers. Also ist: BTN T4 /T a nicht zulässig, da zum weiterschalten mehr als ein /T Wechselschalter in einem Befehl benötigt wird. 7. /T Wechselschalter können in der gleichen oder auch in verschiedenen Zeilen stehen. Also ist auch: BTN S2 /T a /T b /T c zulässig. 8. Man kann die Wechselschalter an ihren Ausgangspunkt zurücksetzen mit dem Befehl RESET_TOGGLES, und man kann die Richtung ihrer Abarbeitung umkehren mit dem Befehl REVERSE_TOGGLES, welche beide im folgenden genauer erklärt werden. HOTAS Cougar Referenz - Buch 68 THRUSTMASTER 9. Andere Schrägstrich-Modifizierer können mit dem /T Wechselschalter kombiniert werden; auch solche, mit denen das in den originalen TM-Dateien nicht möglich war. Dadurch ist auch z.B.: BTN S2 /T a /T /H b jetzt zulässig. 10. Wechselschalter können nicht für die Mittelpositionen der Hütchen benutzt werden. Daher würde dieses eine Fehlermeldung des Kompilierers verursachen: BTN H1M /T a /T b Anmerkung des Übersetzers: 11. Solltet Ihr trotzdem eine Wechselschalter-Funktion für die Mittelstellung eines Hütchens unbedingt benötigen, könnt Ihr dies nur mittels logischer Programmierung erreichen (siehe spätere Kapitel). 3.5.2.2 Zurücksetzen des Wechselschalters Wenn Ihr den Wechselschalter wieder auf die erste Position seiner Liste zurücksetzen wollt, könnt Ihr dies ganz einfach folgendermaßen erreichen: Befehls-Syntax RESET_TOGGLES Wenn Ihr also einen Befehl habt wie diesen: BTN S2 /I RESET_TOGGLES /O /T 1 /T 2 /T 3 /T 4 /T 5 /T 6 /T 7 /T 8 /T 9 /T 0 und Ihr die Joystick-Taste S2 schon mehrere Male gedrückt habt, so dass Ihr nun z.B. als nächstes die „7“ erhalten würdet, kann es vorkommen, dass Ihr eigentlich wieder die Funktion ganz am Anfang bräuchtet. Genau das erreicht Ihr, wenn Ihr einfach die Joystick-Taste S2 und gleichzeitig die Joystick-Taste S3 (die die Funktion für den /I Befehl aktiviert) drückt. Die Joystick-Taste S2 wird dabei selber keinerlei Tastatur-Tasten generieren, während S3 gedrückt gehalten wird. Nur wenn S3 nicht gedrückt ist würde die Joystick-Taste S2 dann wieder mit einer „1” beginnen. HOTAS Cougar Referenz - Buch 69 THRUSTMASTER ANMERKUNGEN 1. Dieser Befehl muss direkt nach einem /I oder /O Befehl stehen, wobei die Wechselschalter zum entsprechenden, entgegengesetzten /I oder /O Befehl gehören. Daher würde dies eine Fehler-Meldung verursachen: BTN S4 /U RESET_TOGGLES /M /T 1 /T 2 /T 3 /T 4 /T 5 /T 6 /T 7 /T 8 /T 9 /T 0 /D Irgendein_Makro doch dies wäre in Ordnung: BTN S4 /U Irgendein_Makro /M /I RESET_TOGGLES /O /T 1 /T 2 /T 3 /T 4 /T 5 /T 6 /T 7 /T 8 /T 9 /T 0 /D Noch_ein_Makro 2. Ein RESET_TOGGLES Befehl kann sonst nichts weiter in seiner Zeile stehen haben. 3.5.2.3 Umkehren der Richtung von Wechselschaltern Wenn Ihr die Richtung der Verarbeitung der Wechselschalter einer Joystick-Taste umkehren wollt, könnt Ihr dies durch folgenden Befehl erreichen: Befehls-Syntax REVERSE_TOGGLES BTN S2 /I REVERSE_TOGGLES /O /T 1 /T 2 /T 3 /T 4 /T 5 /T 6 /T 7 /T 8 /T 9 /T 0 Normalerweise schaltet die Joystick-Taste S2 durch die Tastatur-Tasten 1 bis 0. Wenn Ihr nun die Joystick-Taste S2 mit gehaltener Joystick-Taste S3 drückt, dann geht Ihr rückwärts durch die einzelnen Wechselschalter-Schritte, und zwar ausgehend von der derzeitigen Position des Wechselschalters. HOTAS Cougar Referenz - Buch 70 THRUSTMASTER ANMERKUNGEN 1. Dieser Befehl muss direkt nach einem /I oder /O Befehl stehen, wobei die Wechselschalter zum entsprechenden, entgegengesetzten /I oder /O Befehl gehören. Daher würde dies eine Fehler-Meldung verursachen: BTN S4 /U REVERSE_TOGGLES /M /T 1 /T 2 /T 3 /T 4 /T 5 /T 6 /T 7 /T 8 /T 9 /T 0 /D Irgendein_Makro doch dies wäre in Ordnung: BTN S4 /U Irgendein_Makro /M /I /T 1 /T 2 /T 3 /T 4 /T 5 /T 6 /T 7 /T 8 /T 9 /T 0 /O REVERSE_TOGGLES /D Noch_Ein_Makro 2. Ein REVERSE_TOGGLES Befehl kann sonst nichts weiter in seiner Zeile stehen haben. Wenn wir also das obige Beispiel folgendermaßen verändern: BTN S4 /U Irgendein_Makro /M /I /T 1 /T 2 /T 3 /T 4 /T 5 /T 6 /T 7 /T 8 /T 9 /T 0 /O REVERSE_TOGGLES Makro_hier_verursacht_Fehler /D Noch_Ein_Makro verursacht das Makro nach dem REVERSE_TOGGLES Befehl eine FehlerMeldung des Kompilierers. 3.5.2.4 /P, /R – Unterscheidung zwischen Drücken und Loslassen einer Joystick-Taste (Press, Release) Der /P Schrägstrich-Modifizierer bewirkt, dass das nachfolgende Makro beim Drücken der Joystick-Taste/ des Hütchens ausgeführt wird. Der /R SchrägstrichModifizierer bewirkt, dass das nachfolgende Makro beim Loslassen der JoystickTaste/ des Hütchens ausgeführt wird. Ein Beispiel: BTN S2 /P Chaff /R Flare In diesem Beispiel werden diese beiden zusammengehörigen Modifizierer auf BTN S2 angewendet. Die Joystick-Taste S2 wird nun das Chaff-Makro beim Drücken, und das Flare-Makro beim Loslassen senden. HOTAS Cougar Referenz - Buch 71 THRUSTMASTER ANMERKUNGEN Der /R Modifizierer muss immer in Verbindung mit dem /P Modifizierer benutzt werden. Wenn kein /P vorhanden ist, führt ein alleine stehendes /R zu einer Fehler-Meldung des Kompilierers, wie auch andersherum. FORTGESCHRITTENE ANMERKUNGEN 1. Wenn Ihr diese Modifizierer auf eine Hütchen-Position anwendet, während Ihr auch dessen Mittel-Position programmiert habt, dann werden die Tasten des /R Makros zur gleichen Zeit wie die des BTN HxM Befehls ausgegeben. D.h. für: BTN H1U /P 1 /R 2 BTN H1M a werden, wenn HÜTCHEN 1 nach oben gedrückt und wieder losgelassen wird, folgende Tasten ausgeben: „1" und dann „a 2" gleichzeitig 2. Wenn Ihr diese Modifizierer auf die Mittel-Position eines Hütchens BTN HxM anwendet, dann werden beim Verlassen dieser Mittel-Position die Tasten des HxM /R Makros zur gleichen Zeit wie die zu H1U gehörigen ausgegeben. D.h. für: BTN H1U 1 BTN H1M /P a /R b werden, wenn HÜTCHEN 1 nach oben gedrückt und wieder losgelassen wird, folgende Tasten ausgeben: „b 1" gleichzeitig und dann „a" 3. Es besteht die Möglichkeit, ungewollt „klemmende” Tasten zu produzieren, wenn man bei den /P /R Befehlen nicht aufpasst. Nehmt z.B. folgendes: BTN S4 /P DLY(2000) KD (p) /R KU (p) Ein Druck auf die Joystick-Taste S4 wird zunächst eine Verzögerung von 2 Sekunden bewirken, bevor es den Druck auf die Taste „p" der Tastatur emuliert, und beim Loslassen der Joystick-Taste wird dann das Loslassen der „p“-Taste ausgeführt. Aber was geschieht, wenn Ihr Euren Finger von der Joystick-Taste S4 nehmt, bevor diese zweisekündige Verzögerung herum ist? HOTAS Cougar Referenz - Buch 72 THRUSTMASTER Obwohl die Verzögerung weitergeht und das Drücken der „p”-Taste nach diesen 2 Sekunden stattfindet, findet das Loslassen der Joystick-Taste S4 und damit das Loslassen der „p”-Taste vor diesem Drücken statt. Unglücklicherweise hat der Joystick die Anweisung „nimm die Flossen vom ‚p’ ” gegeben, bevor Ihr überhaupt dazu gekommen wärt, die Anweisung „ich drück’ jetzt mal das ‚p’ “ zu geben, weshalb es so scheint, als hätte sich die „p“-Taste verklemmt. Es gibt zwei Möglichkeiten, das zu vermeiden. Die erste ist, Euren HOTAS Cougar mit Bedacht zu verwenden und zu programmieren. Wenn Ihr wisst, dass Ihr Euren Finger auf einer bestimmten Joystick-Taste für eine bestimmte Zeit halten sollt, dann tut das! Das wird immer dieses Problem der „klemmenden Tasten” vermeiden. Die andere Möglichkeit ist, die /P Anweisung in Winkel-Klammern < > einzuschliessen: BTN S4 /P < DLY(2000) KD (p) > /R KU (p) welches dafür sorgt, dass alles innerhalb dieser Klammern komplett abgearbeitet wird, bevor der /R Befehl ausgeführt wird, selbst, wenn Ihr die entsprechende Joystick-Taste schon vorher loslasst. Beachtet allerdings, dass alle anderen Makros für alle anderen Joystick-Tasten ebenfalls erst ausgeführt werden, nachdem die < > Anweisung komplett abgearbeitet wurde. Seid also vorsichtig, wenn Ihr diese benutzt! HOTAS Cougar Referenz - Buch 73 THRUSTMASTER 3.5.3 sich wiederholende und nicht-wiederholende Tastatur-Tasten: Befehls-Modifizierer /A Auto-Wiederholung /H Halten 3.5.3.1 Nicht-wiederholende Tastatur-Tasten Das Verhalten von Makros und einzelnen Tastatur-Tasten auf einer JoystickTaste hat sich im Vergleich zu den originalen TM-Dateien geändert. Grundsätzlich gilt für jede Programmierung einer Joystick-Taste und für digitale Befehle, gleichgültig, ob sie einzelne Tastatur-Tasten oder Makros enthalten, dass sie nicht wiederholt ausgegeben werden. Nur ein einziges mal wird die Taste/ das Makro produziert. Für all jene, die noch die originalen TM HOTAS gewohnt sind, ist es so, als ob ein unsichtbarer /N Modifizierer vor jedem Befehl stünde, wenn dort sonst keiner steht. Daher wird ein /N Modifizierer nicht weiter benötigt – er wird vom Kompilierer ignoriert, sollte er trotzdem in einer Datei vorkommen. Ich würde empfehlen, ganz auf ihn zu verzichten und ihn ggf. zu löschen, wenn er in Euren Dateien vorkommt. 3.5.3.2 /A - Auto-Wiederholung Dieser Schrägstrich-Modifizierer bewirkt genau das Gegenteil. Er erzwingt eine ununterbrochene und fortgesetzte Ausgabe von Tastatur-Tasten/ Makros für eine Joystick-Taste oder einen digitalen Befehl, bis die Joystick-Taste wieder losgelassen wird. BTN S2 /A Feuer_Rakete Nun wird beim Drücken der Joystick-Taste S2 das Feuer_Rakete Makro wiederholt. Es ist so, als würdet Ihr schnell und wiederholt die entsprechende Taste auf Eurer Tastatur drücken und wieder loslassen. Wenn Ihr dann andere Joystick-Tasten des Controllers drückt, fließen deren Tasten in den von dieser Taste verursachten Strom mit ein, d.h. der Druck auf eine andere Joystick-Taste stoppt die von diesem Modifizierer produzierte Ausgabe nicht. Beachtet, dass auf einen /A Modifizierer folgende Makros aus mehreren Tastatur-Tasten bestehen können, und auch DLY oder RPT Anweisungen enthalten können. Außerdem ersetzt der /A Modifizierer das bisher übliche Einschließen von Tasten/ Makros durch Klammern, um ihre Wiederholung zu erzwingen. HOTAS Cougar Referenz - Buch 74 THRUSTMASTER 3.5.3.3 /H - Halten BTN S4 /H b Rem Radbremsen Ein /H Halten Befehl kann mit dem Gedrückt-Halten einer Taste auf Eurer Tastatur verglichen werden (obwohl Ihr bitte auch die Anmerkungen weiter unten beachten solltet). So verlangen z.B. viele Flugsimulationen das Gedrückt-Halten der Taste „b” zur Aktivierung der Radbremsen. Sobald Ihr diese Taste wieder loslasst, gehen auch die Radbremsen wieder aus. Einige weitere Beispiele: BTN S4 /H b Rem Radbremsen BTN T6 /H Radbremsen BTN T1 /H ALT F6 Es ist auch möglich, den /H Modifizierer in komplexeren Ausdrücken zu verwenden. Im folgenden Beispiel bewirkt der Befehl ein einzelnes, nicht-wiederholtes „c“, gefolgt von einem gedrückt gehaltenen „f“: BTN S4 /H c f Rem 1 Chaff, massenweise Flares wohingegen: BTN S4 /H {c f} Rem Chaff und Flares solange beide Tasten „c” und „f” gleichzeitig beim Drücken der Joystick-Taste produziert, bis sie wieder losgelassen wird. (Siehe auch spätere Anmerkungen zu KD und KU Befehlen.) Interessant wird es, wenn wir uns einmal dieses Beispiel ansehen: BTN S4 /H {C f} Eigentlich ist ein „C” ja nichts anderes als ein „SHF c", weshalb Ihr beim Gedrückt-Halten der LSHF-Taste automatisch ein „F“ erhalten werdet. Ihr könntet also überhaupt kein kleines „f“ produzieren, wenn Ihr gleichzeitig über Euren Joystick eine gedrückte „Umschalten“-Taste emuliert, um eben z.B. ein großes „C“ zu bekommen. Nur etwas, was Ihr beachten solltet. Praktisch ist auch die Verwendung von /H mit mehr als nur einem Makro/ Taste, wie z.B. im folgenden Beispiel, welches es Euch erlaubt, erst eine Waffe auszuwählen, und diese dann abzufeuern, wenn Ihr die Joystick-Taste einfach weiter gedrückt haltet: BTN S4 /H Waehle_Raketen DLY(600) Feuer Rem wähle Zweitwaffe, dann Feuer HOTAS Cougar Referenz - Buch 75 THRUSTMASTER Anmerkung des Übersetzers: Dieses Beispiel feuert Eure Zweitwaffe allerdings auch ab, wenn Ihr die JoystickTaste S4 nur kurz, also weniger als die 600ms = 0,6s drückt, da in jedem Fall der gesamte Befehl abgearbeitet wird. Allerdings wird erst beim Gedrückt-Halten über 0,6s der Teil /H Feuer als gehalten produziert. ANMERKUNGEN 1. Nun, an dieser Stelle gibt es einen wichtigen Punkt zu verstehen, nämlich den Unterschied zwischen dem /H Modifizierer und dem /A Modifizierer. Wenn Ihr eine Taste auf Eurer Tastatur drückt, also z.B. das „a”, dann wird normalerweise erst eben dieses „a” produziert, dann gibt es eine kleine Pause, und erst dann eine ganze Serie von „a”s, solange Ihr Euren Finger auf der taste lasst, d.h. ie.: a kurze_Pause aaaaaaaaaaaaaaaaa Das ist das gleiche, was auch der /H Modifizierer macht. Daher wird: BTN T3 /H a Genau das gleiche ausgeben. Wenn man allerdings diese kurze Pause zwischen dem ersten und dem zweiten „a“ loswerden möchte, kann man dies mit Hilfe des /A Modifizierers. Also: BTN T2 /A b produziert bbbbbbbbbbbbbbbbbbb ohne jede Pause. 2. Die Geschwindigkeit, mit der die Tastatur-Tasten eines /A Befehls produziert werden, wird durch den Konfigurations-Befehl USE RATE (Zeit_ms) bestimmt. Gibt es keine solch Angabe in einer Joystick-Datei, generiert der Kompilierer einen USE RATE (0) Befehl und nimmt die die für Eure Tastatur eingestellten „Typematic Rate Settings“ aus Eurem BIOS. 3. Beachtet, dass ein von mehreren Makros/ Tasten gefolgter /H Modifizierer sich immer nur auf das letzten Ausdruck bezieht, während alle vorhergehenden Makros/ Tasten nur ein einziges mal produziert werden. Durch den folgenden Befehl: BTN S2 /H a b c wird beim Drücken von S2 also nur ein einzelnes „a” und ein einzelnes „b” generiert, bevor „c” als gedrückt gehalten ausgegeben wird. 4. Ihr könnt keine /H oder /A Modifizierer nach einem /R Modifizierer verwenden. HOTAS Cougar Referenz - Buch 76 THRUSTMASTER 3.5.4 Schraegstrich-Kuerzel: Regeln und Reihenfolge Wenn Ihr Schrägstrich-Modifizierer (z.B., /T, /P, /U) verwendet, müsst Ihr einige grundsätzliche Regeln bezüglich ihrer Verwendungsmöglichkeiten verstehen. 3.5.4.1 Schrägstrich-Kürzel: Regeln 1. Sie müssen nach der Bezeichnung der Joystick-Taste/ Hütchen-Position stehen (d.h. BTN S2 /H). 2. Sie müssen vor dem ersten Makro stehen (d.h. BTN S2 /H EinMakro), außer /T, welches in einem Befehl mehrfach vorkommen kann. 3. Vor und nach einem Schrägstrich-Modifizierer muss jeweils ein einzelnes Leerzeichen stehen (siehe vorheriges Beispiel). 4. Sie müssen in einer bestimmten Reihenfolge stehen, wenn mehr als ein Typ in einem Befehl verwendet wird (siehe „Schrägstrich-Kürzel: Reihenfolge" unten). 5. Die /U /M /D Modifizierer müssen in separaten Zeilen stehen. 6. Die /I /O Modifizierer müssen in separaten Zeilen stehen. 3.5.4.2 Schrägstrich-Kürzel: Reihenfolge Beim Gebrauch von mehreren Schrägstrich-Modifizierern zur Programmierung einer Joystick-Taste oder eines Schalters ist die Beachtung der korrekten Reihenfolge sehr wichtig. Die Reihenfolge von Schrägstrich-Kürzeln wäre wie folgt: 1. Vorhandene /U /M /D Modifizierer stehen immer vor allen anderen Modifizierern. 2. Vorhandene /I und /O Modifizierer (In/ Out) wären dann die nächsten.. 3. Der /T Modifizierer (Wechselschalter) kommt immer vor /P /R Modifizierern. 4. Die /P und /R Modifizierer (Drücken und Loslassen) kommen danach. 5. Die /H (Halten) und /A (Auto-Wiederholen) Modifizierer kommen immer zum Schluss. Lasst uns mal einige Beispiele ansehen: BTN S4 /U /I Makro6 /O Makro7 /M /P Makro8 /R Makro9 /D /T a /T /H b c /T /A d DLY(30) e DLY(30) f BTN S2 /I /T /P Makro1 /R Makro2 /T /P Makro3 /R Makro4 /O /H Makro5 HOTAS Cougar Referenz - Buch 77 THRUSTMASTER ANMERKUNGEN Es ist kein Problem, einen Befehl offen zu lassen. Ihr braucht keinen „Null”-Befehl wie bei den originalen TM-Dateien anzugeben. Dieser Befehl: BTN S1 /I Ein_Makro /O führt nicht zu einer Fehler-Meldung des Kompilierers – er ist zulässig. Anmerkung des Übersetzers: Vielleicht ist das folgende Schema etwas übersichtlicher: BTN ID DGFGT S3 (T7,T8) BTN xy /U /I /M /D /O ... … HOTAS Cougar Referenz - Buch Toggle Press/ Repeat/ macro(s)/ Release Hold character(s) /T /P /A,/H Macro1 /R Macro2 /T … Macro3 Macro4 Macro5 Macro6 78 THRUSTMASTER 3.6 Verzoegerung und Wiederholung: Befehls-Modifizierer DLY (Verzögerung_ms) RPT (Anzahl_Wiederholungen) mit: Verzögerung: Zeit in Millisekunden (1 Sekunde = 1000 Millisekunden), wobei Werte zwischen 0 bis 82800000 möglich sind. (Nur zur Information: 82800000 Millisekunden wären 23 Stunden!) Anzahl: die maximal mögliche Anzahl von Wiederholungen hängt von der Länge der betroffenen Makros der Joystick-Taste ab und liegt zwischen 2 und 127. Lasst uns an einigen Beispielen demonstrieren, wie diese Befehle funktionieren. 3.6.1 DLY( ) : Verzoegerung (Delay) BTN T6 1 DLY(60) 1 DLY (60) 2 Rem Request Vector For Recovery TAW Dieser Befehl würde die Folge „1 1 2" ausgeben, jeweils mit einer Verzögerung/ Pause von 60ms zwischen den einzelnen Tasten. Aber warum sollten wir überhaupt eine solche Pause benötigen? Flug-Simulationen und Spiele im Allgemeinen werden immer komplexer, so dass man häufig eine ganze Gruppe von Tasten braucht, um eine bestimmte Funktion zu erreichen. Für FlugSimulationen gilt dies häufig für die Funk-Befehle, die oft über ein umfangreiches Menü-System zu erreichen sind, z.B. in Falcon 4: VectorToHomePlate = q DLY(60) q DLY(60) 6 Wenn wir ein Makro ohne diese Verzögerungen hätten, wie z.B.: VectorToHomePlate = q q 6 dann bestünde immer die Möglichkeit, dass die Simulation nicht alle dieser 3 Tasten mitbekommen würde, da der Controller sie zu schnell produzieren würde, während die Simulation noch mit ihren eigenen Berechnungen und GrafikRoutinen beschäftigt ist. Das Einfügen von kleinen Verzögerungen zwischen den einzelnen Tasten verlangsamt deren Generierung ein wenig, was eher dem entspricht, was Ihr mit Euren Fingern auf einer Tastatur machen würdet, und daher könnte die Simulation nun diese Tasten auch alle erkennen. Die Situation wird ein wenig komplexer, je nachdem, ob ein USE RATE (Zeit_ms) HOTAS Cougar Referenz - Buch 79 THRUSTMASTER Konfigurations-Befehl vorhanden ist (siehe spätere Anmerkungen). Ein USE RATE (Zeit_ms) Befehl bestimmt die Geschwindigkeit, mit welcher sich wiederholende Tastatur-Tasten von den Controllern gesendet werden. Also: USE RATE (60) BTN S1 q q 6 Ist genau das gleiche wie: USE RATE (0) BTN S1 q DLY(60) q DLY(60) 6 Beachtet allerdings, dass der Kompilierer automatisch ein USE RATE(0) annimmt, wenn sonst keine Angabe in der Datei vorhanden ist. Wenn Ihr DLY Befehle verwendet, braucht Ihr Euren Finger nicht auf der entsprechenden Joystick-Taste zu lassen, damit der gesamte Befehl abgearbeitet wird. Dies hier z.B.: BTN S2 h DLY (2000) a DLY (2000) l DLY (2000) l DLY (2000) o Führt zur Ausgabe von „hallo", mit jeweils einer zwei-sekündigen Pause zwischen den einzelnen Buchstaben. Ihr braucht die Joystick-Taste S2 nicht gedrückt halten, damit der ganze Befehl abgearbeitet und ausgegeben wird. Eine interessante Anmerkung vielleicht: falls Ihr S2 zweimal innerhalb von 2 Sekunden drückt, wäre das Resultat folgendes: „hhaalllloo" Dies ist eine Besonderheit dieses HOTAS Cougar – seine Fähigkeit, mehrere Befehle parallel zu verarbeiten. Um dies zu verhindern, solltet Ihr entweder vorsichtig sein, wie Ihr den Cougar programmiert, oder den Befehl in WinkelKlammern < > setzen. HOTAS Cougar Referenz - Buch 80 THRUSTMASTER 3.6.2 RPT( ) : Wiederholung (Repeat) BTN S2 RPT(6) c Rem 6 Chaffs bitte … genau jetzt wäre nett! Der RPT Befehl bewirkt, dass die Tasten des auf RPT(nnn) folgenden Makros wiederhold werden, wobei 'nnn' die Anzahl der gewünschten Wiederholungen angibt. Wiederholt wird lediglich das direkt auf den RPT Befehl folgende Makro/ TastaturTaste, (d.h., eine Wiederholung kann auf eine einzelne Taste oder auf eine von Klammern eingeschlossenen Gruppe von Tastatur-Tasten oder Makros angewendet werden). Das obige Beispiel produziert also beim Druck auf die Joystick-Taste S2 6 „c"s mit der durch den Konfigurations-Befehl USE RATE(x) in dieser Datei festgelegten Geschwindigkeit. Einige weitere Beispiele: BTN S1 RPT(10) a b würde 10 „a"s senden, gefolgt von 1 „b". BTN S1 RPT(10) (a b) würde die Folge „a b" 10 mal hintereinander senden. BTN S1 /A RPT(10) (a DLY(60)) DLY(2000) würde 10 „a"s mit jeweils einer Verzögerung von 60ms zwischen jedem „a” senden, gefolgt von einer zweiten Verzögerung von 2s, wonach es wieder von vorne losginge. RPT Zähler können verschachtelt werden: BTN S1 RPT(10) a RPT(10) b wäre ein gültiger Befehl, und: BTN S1 RPT(10) (a RPT(10) b) ebenfalls. Wenn Ihr ein Makro wie dieses habt: Makro1 = a b c und einen Befehl wie diesen: HOTAS Cougar Referenz - Buch 81 THRUSTMASTER BTN S2 RPT (3) Makro1 erhaltet Ihr beim Druck auf S2 dieses: aaabc Um so etwas zu verhindern, solltet Ihr entweder das Makro oder die TastaturTasten in dessen Definition mit Klammern umgeben, d.h.: BTN S2 RPT (3) (Makro1) oder BTN S2 RPT (3) Makro1 mit Makro1 = (a b c) 3.7 Guppierungen - Der Gebrauch von Klammern Befehls-Modifizierer BTN T2 (a b c) BTN T3 {a b c} BTN T4 /P <a b c> /R d Ehe wir uns den Klammern zur Gruppierung von Makros/ Tastatur-Tasten zuwenden, zunächst eine sehr wichtige Regel. Die Klammern ( ) { } und < > sind reservierte TM-Bezeichnungen. Ihr könnt sie daher nicht direkt einer Joystick-Taste/ Makros zuweisen. Statt dessen müsst Ihr ihre umgeschalteten (shifted) Entsprechungen verwenden: ( = SHF 9 ) = SHF 0 { = SHF [ } = SHF ] < = SHF , > = SHF . Also würde ein Makro wie dieses: Left_ToeBrake = < eine Fehler-Meldung des Kompilierers bewirken, da die richtige Definition folgende ist: Left_ToeBrake = SHF . HOTAS Cougar Referenz - Buch 82 THRUSTMASTER 3.7.1 ( ) Klammern Klammern werden in den verschiedensten TM-Befehlen verwendet, z.B. DLY ( ), RPT ( ), USB ( ), KU ( ), Digitalen Typ Befehlen usw., um diese Befehle zusammenzufassen. Wir haben anhand einiger Beispiele gesehen, wie sie für die komplexen RPT und DLY Befehle der vorherigen Seite benutzt werden: BTN S1 /A RPT(10) (a DLY(60)) DLY(2000) Wichtig ist in diesem Zusammenhang allerdings, dass die Verwendung von Klammern für die originale TM-Programmierung immer auch eine Wiederholung der Tastatur-Tasten/ Makros bewirkte. Für den HOTAS Cougar ist das nicht länger der Fall, da wir nun den /A Modifizierer haben, und daher dienen Klammern nun nur noch der Gruppierung und Zusammenfassung von Makros/ Tastatur-Tasten innerhalb von Befehlen. Beachtet, dass in TM-Befehlen verwendete Klammern vom Kompilierer als „die gleichen” angesehen werden: DLY(20), DLY(20), DLY( 20 ) usw. Bevor wir die Klammern verlassen noch einmal der Hinweis, dass, wenn wir eine „(" oder „)" Taste in unserer Joystick-Datei produzieren möchten, wir dies nicht direkt durch Angabe dieser Taste können, d.h. Makro1 = ( Makro2 = ) Alle Klammern (also auch < > { } ) sind für die TM-Programmierung reserviert, da sie für verschiedensten Befehle benötigt werden und bestimmen, wie diese sich verhalten. Also, mit einem solchen Befehl: BTN S1 Makro1 erhaltet Ihr zwar keine Fehler-Meldung, Ihr könnt das ganze also in den Controller laden, doch Ihr werdet kein „(" erhalten. Statt dessen müsst Ihr die Tasten der Tastatur angeben, die Ihr tatsächlich drücken müsstet, um dieses Zeichen zu erhalten, d.h. Makro1 = SHF 9 Makro2 = SHF 0 Erinnert Euch an die Kapitel über Makros und Makro-Regeln. Außerdem könnt Ihr natürlich Foxy’s Korgy benutzen, um sicherzugehen, dass immer die richtige Schreibweise für die von Euch benötigten Tasten erzeugt wird. HOTAS Cougar Referenz - Buch 83 THRUSTMASTER 3.7.2 { } geschweifte Klammern Die nächste Möglichkeit zur Gruppierung verwendet „geschweifte Klammern”. Dies ermöglicht einer Gruppe von Tastatur-Tasten, als gleichzeitig gedrückt ausgegeben zu werden. Durch geschweifte Klammern erzeugte Gruppen werden für die Verarbeitung als eine einzige Einheit angesehen: BTN S4 {a b c} wird z.B. als „a” drücken, „b" drücken, „c" drücken, „a" loslassen, „b" loslassen, „c" loslassen ausgeführt, als ob Ihr eine Taste nach der anderen erst gedrückt hättet, und sie dann in der gleichen Reihenfolge wieder losgelassen hättet. (Denkt mal daran, was Ihr macht, wenn Ihr CTRL ALT DEL ! benutzen müsst...) Beachtet auch, dass Ihr eine Gruppe in geschweiften Klammern auch in Verbindung mit einem /H Modifizierer verwenden könnt, in welchem Fall alle Tasten der Gruppe gleichzeitig gehalten werden, bis die Joystick-Taste wieder losgelassen wird. So etwas z.B.: BTN S4 /H {CTL ALT DEL} ist durchaus möglich (und oft gewünscht!) FORTGESCHRITTENE ANMERKUNGEN 1. Ihr könnt keine DLY Befehle innerhalb geschweifter Klammern benutzen. 2. Die Funktion von { } Befehlen für USB-Geräte weicht von der bisherigen für Gameport TM HOTAS ab. Für die bisherigen TM HOTAS wurden die einzelnen Tasten innerhalb einer durch die geschweiften Klammern { } erzeugten Gruppe in genau der Reihenfolge, in der sie auftauchten, erzeugt, d.h.: BTN S4 {a b c} resultierte in „a" drücken, „b" drücken, „c" drücken, „a" loslassen, „b" loslassen, „c" loslassen. Für USB allerdings entspricht die Reihenfolge immer automatisch ihrer Position gemäß der USB Definitionen, was schlicht in alphabetischer Reihenfolge bedeutet, weshalb nun auch: BTN S4 {c b a} zu „a" drücken, „b" drücken, „c" drücken, „a" loslassen, „b" loslassen, „c" loslassen führt. Trotzdem, eigentlich werden sie in Wirklichkeit alle zur gleichen Zeit, innerhalb des selben Frames erzeugt, so dass es sich eher so verhält, als würden die Tasten „a”, „b” und „c” auf der Tastatur zur gleichen Zeit gedrückt. Falls Ihr tatsächlich wolltet, dass die in einer ganz bestimmten Reihenfolge gedrückt werden sollen, müsstet Ihr die KD und KU Kürzel verwenden, was dann z.B. so aussähe: BTN S4 KD(c) KD(b) KD(a) KU(c) KU(b) KU(a) HOTAS Cougar Referenz - Buch 84 THRUSTMASTER 3.7.3 < > Winkel-Klammern Die Winkel-Klammern sind neu für den HOTAS Cougar. Alles innerhalb solcher Winkel-Klammern zwingt den Controller, diesen Befehl noch vor allen anderen zu Ende zu führen. Schaut Euch einmal folgenden Befehl an: BTN H1D q DLY(60) q DLY(60) 6 Rem Vector for Homeplate in Falcon 4 Es wäre höchst unglücklich, wenn während der Abarbeitung eine andere JoystickTaste gedrückt würde, da dies diese Funk-Anfrage aus Falcon 4 in etwas komplett anderes „umleiten“ könnte. Wenn wir also daher die Befehlsfolge durch die WinkelKlammern zusammenfassen: BTN H1D <q DLY(60) q DLY(60) 6> Rem Vector for Homeplate würde ein einzelner Druck von Hütchen 1 nach unten zur vollständigen Abarbeitung des gesamten Befehls führen, ohne das während dieser Zeit etwaige andere ausgeführt würden. Dies kann sehr nützlich sein, um die sogenannten „klemmenden Tasten“ zu vermeiden: BTN T4 /P < DLY(2000) KD (b) > /R KU (b) Auf diese Art wird gewährleistet, dass beim Drücken der Joystick-Taste T4 der /P Befehl immer komplett abgearbeitet wird, selbst wenn die Joystick-Taste T4 schon vorher wieder losgelassen werden sollte. So wird „KU (b)", also das Loslassen von „b”, auch wirklich erst ausgeführt, nachdem das „b" gedrückt wurde. Wenn das nämlich nicht der Fall wäre, würde „KU (b)" ja bereits beim Loslassen von T4 ausgeführt, und die Taste „b" würde niemals tatsächlich losgelassen werden, wodurch sie scheinbar „verklemmt“ wäre. ANMERKUNGEN 1. Ihr könnt die Winkel-Klammern < > nicht innerhalb von geschwungenen Klammern { } verwenden, d.h. dass dies: BTN S2 { < a b > } einen Kompilierungs-Fehler bewirken würde. 2. Ihr könnt die Winkel-Klammern < > nicht verschachteln, d.h. dass dies: BTN T4 < < a b > > einen Kompilierungs-Fehler bewirken würde. 3. Die Winkel-Klammern < > müssen nicht unbedingt den ganzen Befehl umschliessen, d.h. dass dies: BTN S1 a b <c d > e f in Ordnung wäre. HOTAS Cougar Referenz - Buch 85 THRUSTMASTER 4. Wenn wir einen Befehl wie diesen haben: BTN S2 /H <a b c> erhalten wir nach Ausgabe von „a” und „b” tatsächlich nur ein gehaltenes „c”, und der erzwungene Teil des Ausdrucks wurde damit bereits abgearbeitet. Erinnert Euch, dass ein /H Modifizierer sich bei mehreren Tastatur-Tasten immer nur auf den letzten Teil bezieht. 5. Winkel-Klammern < > funktionieren so, dass alle anderen zur Zeit ausgeführten Befehle auch weiterhin ausgeführt werden. Wenn Ihr also irgendeine andere Joystick-Taste mit z.B. einem /H Befehl gedrückt haltet, dann wird dieser Befehl weiter abgearbeitet, während Ihr die Joystick-Taste mit den Winkel-Klammern < > drückt. Alle anderen Joystick-Tasten, die danach gedrückt werden, führen dazu, dass ihre Befehle in den Zwischenspeicher geschrieben werden, um ausgeführt zu werden, sobald der vorgezogene < > Befehl komplett verarbeitet wurde. Daraus folgt, dass man mit den WinkelKlammern < > vorsichtig umgehen sollte, erst recht, wenn man lange DLY ( ) Verzögerungen innerhalb einer Winkel-Klammer < > Gruppe verwendet, da dann sogar die Möglichkeit besteht, Eure Controller „aufzuhängen“. Siehe dazu auch die Kapitel über Fehlerbehebung weiter hinten. FORTGESCHRITTENE ANMERKUNGEN Wir hatten als eines der früheren Beispiele folgendes: BTN S4 KD(c) KD(b) KD(a) KU(c) KU(b) KU(a) Dieser Befehl packt jedes KeyDown und KeyUp in 6 voneinander unabhängige Frames. Wenn es jedoch eine Angabe der RATE gibt, möchte der eine oder andere vielleicht, dass alle KeyUp Anweisungen zur gleichen Zeit erscheinen, anstatt mit der durch die RATE angegebene Geschwindigkeit. Dies kann folgendermaßen erreicht werden: BTN S4 KD(c) KD(b) KD(a) KU({c b a}) so dass alle KeyUp Befehle in einem einzigen Frame abgearbeitet werden und daher schneller erscheinen. HOTAS Cougar Referenz - Buch 86 THRUSTMASTER 3.8 Arbeit mit und Definition von DirectX (Direct Input) Tasten Wenn Ihr jemals einen einfachen Joystick mit lediglich einem Feuerknopf benutzt habt, dann werdet Ihr festgestellt haben, dass dieser in Flugsimulationen Eure Waffen abfeuert. Er tut dies nicht, weil Ihr ihn etwa so programmiert hättet, sonder weil Windows dem Spiel mitgeteilt hat „Dieser Joystick hat einen Abzug – entscheide selbst, was Du damit anfängst.” Der Abzug ist lediglich eine Joystick-Taste. Solch eine Joystick-Taste wird eine DirectX Joystick-Taste genannt – eine Joystick-Taste, deren Funktion vom Spiel zugewiesen wird. Konfigurations-Befehl USE TastenName oder logischerSchalter AS DXn Befehls-Syntax BTN TastenName DXn mit: TastenName ist H1U, T6, S2 usw. logischerSchalter ist X1 bis X32 (später in diesem Referenz-Buch behandelt) n ist 1 bis 28 Der HOTAS Cougar besteht aus 10 analogen Achsen (mit den neuen RuderPedalen), 28 Joystick-Tasten, und einem POV HÜTCHEN (Hütchen 1). Wenn der Cougar sich im Windows-Modus befindet, können diese Joystick-Tasten aus dem Spiel heraus belegt werden. Dies ist möglich, da Windows dem Spiel mitteilt, welche Möglichkeiten der Controller bietet – d.h. welche Achsen, Joystick-Tasten, POV, usw. zur Verfügung stehen. Wenn wir den Controller programmieren, benutzen wir Konfigurations-Befehle in der Joystick-Datei, die es uns ermöglichen, selbst zu bestimmen, was dem Spiel gemeldet wird. Im programmierten Modus wird zunächst standardmäßig keine der Joystick-Tasten vom Spiel als DirectX-Taste gesehen. Wir müssen also das Spiel informieren, wenn wir sie zuweisen möchten. Die gebräuchlichste Joystick-Taste, die als DirectX-Taste verwendet wird, ist der Abzug: USE TG1 AS DX1 Wir brauchen sonst nichts weiter zu tun – der Abzug wird vom Spiel erkannt und ihm wird eine Funktion zugewiesen, normalerweise das Abfeuern der Waffen. Andere Verwendungs-Beispiele sind: USE H1U AS DX2 USE X4 AS DX3 Rem Zuweisung eines logischen Schalters – siehe spätere Anmerkungen USE T4 AS DX5 HOTAS Cougar Referenz - Buch 87 THRUSTMASTER Wir können sogar jeden DXn Befehl mit den anderen Befehlen für Joystick-Tasten kombinieren, um so alle (un)möglichen Dinge zu programmieren: BTN S2 /H a DLY(2000) DX2 In diesem Beispiel wird beim Drücken der Joystick-Taste S2 zunächst ein „a” produziert, gefolgt von einer zweisekündigen Pause, und dann wird DX2 gehalten werden. In diesem Falle haben wir „beinahe“ die Joystick-Taste S2 als DX2 definiert, da wir ansonsten keine USE Anweisung woanders haben. Ich sage „beinahe“, da dies nicht das gleiche ist, als hätten wir diese: USE S2 AS DX2 Zeile benutzt, nach welcher DX2 sofort beim Drücken von S2 generiert würde. Nach unserem Beispiel jedoch wird DX2 erst produziert, nachdem „a DLY(2000)" abgearbeitet wurde. Und nur dann wird die Joystick-Taste S2 die DirectX-Taste DX2 generieren. 3.8.1 USE ALL_DIRECTX_BUTTONS Wir haben nun gesehen, wie man einzelne Joystick-Tasten als DirectX-Tasten verwendet. Nun ist es an der Zeit, Euch den Konfigurations-Befehl USE ALL_DIRECTX_BUTTONS vorzustellen. Konfigurations-Befehl USE ALL_DIRECTX_BUTTONS Dieser verwendet alle Joystick-Tasten als DirectX-Tasten. Eine Datei mit einer solchen Anweisung würde alle nicht-programmierten Joystick-Tasten als DirectX-Tasten verwenden, wobei Achsen-Kurven nach wie vor modifiziert werden könnten, die Maus noch funktionieren würde, usw. Beachtet, dass dann alle von Euch in Foxy eingestellten Grundeinstellungen ignoriert werden. Ihr könntet so eine sehr einfache Datei programmieren: Rem Verwendung aller Joystick-Tasten als DirectX-Tasten: USE ALL_DIRECTX_BUTTONS Rem Zuweisung der Maus auf den Microstick (siehe spätere Anmerkungen): USE MTYPE A3 Rem Verwendung von Hütchen1 auf dem Joystick zur Blick-Steuerung USE HAT1 AS POV Und schon hättet Ihr beim Laden einen Joystick plus Schubkontrolle mit einem Blickwinkel-Hütchen und allen Joystick-Tasten als DirectX-Tasten, und eine Maus auf dem Microstick. Ihr könntet dann darangehen, weitere Befehle für die Joystick-Tasten hinzuzufügen und so schrittweise eine Datei aufbauen. HOTAS Cougar Referenz - Buch 88 THRUSTMASTER ANMERKUNGEN 1. Diese neue Schreibweise ersetzt den PORT Bx IS Befehl der original TM HOTAS. 2. Die voreingestellten DirectX-Zuweisungen für den Cougar im Windows-Modus sind: DX TM DX TM DX TM DX TM 1 2 3 4 5 6 7 TG1 S2 S3 S4 S1 TG2 H2U 8 9 10 11 12 13 14 H2R H2D H2L H3U H3R H3D H3L 15 16 17 18 19 20 21 H4U H4R H4D H4L T1 T3 T2 22 23 24 25 26 27 28 T4 T5 T6 T7 T8 T9 T10 mit HAT1 standardmäßig als POV (Point Of View = Blickrichtung) Hütchen. 3. Wenn Ihr eine USE ALL_DIRECTX_BUTTONS Anweisung in Eurer Joystick-Datei habt, und dann eine der Joystick-Tasten programmiert, dann wird diese nicht als DirectX-Taste verwendet. Der Kompilierer wandelt die Zeile USE ALL_DIRECTX_BUTTONS durch die Zuweisung der entsprechenden DirectXTasten um: BTN TG1 /H DX1 BTN S2 /H DX2 usw. Wenn er nun eine Programmierung für z.B. die Joystick-Taste BTN S2 findet, dann wird er diese Joystick-Taste nicht als DirectX-Taste verwenden. Dies ist daher ein großartiger Weg, die Mehrzahl Eurer Joystick-Tasten durch ein Spiel belegen zu lassen, während Ihr gleichzeitig einige andere ganz nach Euren Wünschen programmieren könnt. 4. Wenn Ihr den USE ALL_DIRECTX_BUTTONS Befehl oder jegliche Kombination von USE MTYPE und/oder USE HATn AS POV (siehe spätere Anmerkungen) verwendet, dann müssen diese Befehle vor jeglichem Joystick-Tasten Befehl kommen, oder der Kompilierer wird einen Fehler melden. Erinnert Euch, dass Ihr immer versuchen solltet, Eure Dateien zu strukturieren, so dass KonfigurationsBefehle immer vor jeglichen Joystick-Tasten und Achsen-Befehlen stehen. 5. Der USE MTYPE Befehl (welchen wir später in diesem Referenz-Buch behandeln werden) kann die linke und rechte Maustaste den Tasten T1 und T6 der Schubkontrolle zuweisen, und zwar abhängig vom gewählten Typ des MTYPE Befehls. Wenn Ihr solch einen USE MTYPE Befehl und die Zeile USE ALL_DIRECTX_BUTTONS habt, dann werden die durch den MTYPE Befehl zugewiesenen Joystick-Tasten als Maus-Taste, aber nicht als DirectX-Tasten verwendet. HOTAS Cougar Referenz - Buch 89 THRUSTMASTER Mittels MTYPE (A1 bis A5) werden die Maus-Tasten wie folgt zugewiesen: A1: T1 = Linke Maus-Taste, T6 = Rechte Maus-Taste A2: T1 = Rechte Maus-Taste, T6 = Linke Maus-Taste A3: T1 = Linke Maus-Taste A4: T6 = Linke Maus-Taste A5: weist keine Maus-Taste zu. 6. Falls Ihr ein anderes HÜTCHEN zur Blickrichtungs-Steuerung (POV) verwendet (wir werden dies später noch behandeln), wie z.B.: USE HAT3 AS POV dann wird der Kompilierer dessen Positionen keinerlei DirectX-Tasten zuweisen FORTGESCHRITTENE ANMERKUNGEN 1. Wenn wir noch einmal auf dieses frühere Beispiel zurück kommen: USE TG1 AS DX1 dann übersetzt der Kompilierer diesen Befehl folgendermaßen: BTN TG1 /P KD (DX1) /R KU (DX1) Da wir mittels der KD und KU Kürzel das Drücken und das Loslassen einer Tastatur- oder eben auch DirectX-Taste gezielt unterscheiden können, lasst uns mal dieses Beispiel ansehen: BTN TG1 /I /A KD (DX1) DLY(50) KU (DX1) DLY (200) /O /H DX1 Wenn also in Eurer Simulation die Waffen mittels der DirectX-Taste 1 abgefeuert würden, dann könntet Ihr mit dem obigen Beispiel ohne S3, also nur mit dem Abzug, ganz normal feuern, und mit S3 gedrückt würdet Ihr stoßweise feuern. HOTAS Cougar Referenz - Buch 90 THRUSTMASTER 3.9 Verwendung von KD, KU und USB Kuerzeln Es gibt Gelegenheiten, da Ihr mehr Kontrolle über das Drücken oder das Loslassen einer Taste wollt, oder in der Lage sein müsst, eine ganz bestimmte Taste, die vielleicht nur auf bestimmten nicht-US Tastaturen vorhanden ist, irgendwie direkt anzusprechen. Dies kann folgendermaßen erreicht werden: Befehls-Syntax KD(Tastatur-Taste/ DX-Taste/ Maus-Taste) KU(Tastatur-Taste/ DX-Taste/ Maus-Taste) USB(Taste_AktionHID Kürzel) 3.9.1 KD, KU Alle diese Befehle wurden entwickelt, um Euch eine genauere Programmierung dessen zu ermöglichen, was passiert, wenn Ihr eine Taste auf Eurer Tastatur drückt. Und offensichtlich drückt Ihr doch zunächst die Taste herunter (Key Down KD) und nehmt dann Euren Finger von der Taste und erlaubt ihr, wieder hoch zu kommen (Key Up KU). Manchmal werdet Ihr in der Lage sein wollen, noch andere Tasten zwischen diesen beiden Ereignissen programmieren zu können. Und das könnt Ihr folgendermaßen: BTN H1U KD(UARROW) DLY(20) KU(UARROW) In diesem Beispiel wird beim Drücken von HÜTCHEN1 nach oben für 20ms die Pfeiltaste „Cursor hoch“ gedrückt und dann losgelassen. KD und KU können auf jede Taste angewandt werden – Ihr müsst lediglich die korrekte TM Bezeichnung verwenden. Es ist auch möglich, mehrere Tasten innerhalb von KD, KU Befehlen miteinander zu kombinieren. BTN T4 KD(a b c) DLY(20) KU(a b c) Ihr könnt KD und KU auch für DirectX-Tasten, Maus-Tasten und logische Schalter (logische Schalter (flags) werden später in diesem Referenz-Buch behandelt). Ein Beispiel für die linke Maus -Taste (MOUSE_LB): BTN T6 KD(MOUSE_LB) DLY(2000) KU (MOUSE_LB) Die Joystick-Taste T6 emuliert nun die linke Maus-Taste, und zwar für 2 Sekunden, dann wird sie wieder losgelassen. HOTAS Cougar Referenz - Buch 91 THRUSTMASTER 3.9.2 USB Programmierung Außerdem besteht die Möglichkeit, jede Taste mittels ihres USB-Kürzels direkt anzusprechen, auch wenn sie nach der eigentlichen TM-Schreibweise keine eigene Bezeichnung hat. Dies kann besonders nützlich für nicht-US Tastaturen sein. Die USB-Kürzel sind im Anhang 3 am Ende dieses Referenz-Buchs aufgeführt, und vor jedem Kürzel steht entweder ein „D” für das Drücken der Taste, oder ein „U” für das Loslassen. Ein Beispiel: BTN T3 /P USB (D51) /R USB (U51) Rem 'Pfeil runter' BTN T4 USB (DE1 D04 UE1 U04) Rem ‘Umschalten a’ Die USB-Kürzel dieser Beispiele produzieren Tasten-Drücke der Tastatur, und sie tun das, indem sie diese im Speicher in verschiedene „Frames” packen. Wenn Ihr wollt, dass diese Tasten-Drücke zur gleichen Zeit geschehen, könnt Ihr sie wie üblich in geschwungene Klammern { } setzen. Also: BTN T4 USB (DE1 D04) DLY (2000) USB ({UE1 U04}) Rem ‘Shift a’ Führt zum zeitgleichen Loslassen der linken „Umschalten”-Taste und des Buchstaben „a“. Ich sollte darauf hinweisen, dass der Zeitunterschied zwischen den einzelnen Frames sehr gering ist – ungefähr 30 Millisekunden, weshalb Ihr den Unterschied wohl kaum merken würdet. HOTAS Cougar Referenz - Buch 92 THRUSTMASTER 4. HÜTCHEN-Programmierung 4.1 Programmierung der JoystickJoystick-HueTCHEN 4.1.1 Programmierbare Positionen auf einem Huetchen Hütchen haben 9 programmierbare Positionen, auch wenn Ihr im Allgemeinen meist nur die 4 Hauptrichtungen programmieren werdet. Für HÜTCHEN 1 wären das z.B.: BTN H1U BTN H1R BTN H1D BTN H1L Blick_hoch Blick _rechts Blick _runter Blick _links Aber auch die Eck-Positionen können programmiert werden: BTN H1UL BTN H1UR BTN H1DL BTN H1DR Blick _oben-links Blick _oben-rechts Blick _unten-links Blick _unten-rechts Wie auch die Mittelposition: BTN H1M Blick _vorwaerts Es ist dabei wichtig zu wissen, dass alle diese programmierbaren Positionen voneinander unabhängig sind, und dass die Eck-Positionen nicht zwangsläufig das Produkt von was auch immer gerade auf die benachbarten Hauptrichtungen programmiert ist sein muss. Wenn ich also die Hauptrichtungen hoch, runter, links und rechts mit den Ziffernblock-Tasten KP8, KP2, KP4 und KP6 belege, dann führt das Drücken des Hütchens nach oben-rechts nicht dazu, dass nun die Tasten KP8 und KP6 gehalten würden, oder vielleicht eine 9 produziert würde. Es wird gar nichts passieren. Natürlich hängt das von Eurer Geschicklichkeit, das Hütchen auch direkt in diese Eckposition zu bewegen, ab. HOTAS Cougar Referenz - Buch 93 THRUSTMASTER 4.1.2 4-wege gegen 8-wege: USE HuetchenID FORCED_CORNERS Wenn ich für diese Eckpositionen die Kombination aus den beiden benachbarten Hauptrichtungen erzwingen wollte, dann könnte ich den folgenden KonfigurationsBefehl benutzen: Konfigurations-Befehl USE HütchenID FORCED_CORNERS mit: z.B. HütchenID entweder HAT1, HAT2, HAT3, HAT4 USE HAT1 FORCED_CORNERS (Ach übrigens, es gibt da einen Befehl, den Ihr benutzen könnt, um Euch den Gebrauch der Eckpositionen etwas zu erleichtern: siehe USE HütchenID_SENSITIVITY(nnnn) nach der Werbung ! ) Ein HÜTCHEN kann „normal” programmiert werden, oder als Maus, zur Blickrichtungs-Steuerung (PoV = Point Of View), als Pfeil-Tasten, oder als Ziffernblock-Nummern. Es gibt 4 spezielle Konfigurations-Befehle, die verwendet werden können, um ein Hütchen einfach für verschiedene Zwecke einzurichten. Diese sind: Konfigurations-Befehl USE HütchenID AS MOUSE (Rate) [- optionale Modifizierer] USE HütchenID AS POV [- optionale Modifizierer] USE HütchenID AS ARROWKEYS [- optionale Modifizierer] USE HütchenID AS KEYPAD [- optionale Modifizierer] wobei: HütchenID ist entweder HAT1, HAT2, HAT3, HAT4, RADIOSWITCH (Der RADIOSCHALTER (SWITCH) sieht zwar nicht wie ein HÜTCHEN aus, ist es aber eigentlich, bestehend aus den Joystick-Tasten T2 (Hoch), T3 (Runter), T5 (Links), T4 (Rechts). Er unterscheidet sich leicht von den normalen 4 Hütchen, weil er sozusagen ein eingebautes FORCED_CORNERS hat.) Rate ist 1 bis 127 und bezieht sich nur auf den USE HütchenID AS MOUSE (Rate) Befehl. [-optionale Modifizierer] können verwendet werden, um das Verhalten des Hütchens weiter zu beeinflussen. Sie bestehen aus: REVERSE_UD, REVERSE_LR, FORCED_CORNERS, NOHOLD, KP5. Alle diese optionalen Modifizierer können mit allen Hütchen-Befehlen verwendet werden - siehe die entsprechenden Kapitel, oder benutzt Foxy's Composer. HOTAS Cougar Referenz - Buch 94 THRUSTMASTER 4.1.3 Steuerung der Maus durch ein HUETCHEN. Konfigurations-Befehl USE HütchenID AS MOUSE (Rate) [- optionale Modifizierer] Rate: - die Geschwindigkeit der Maus von 1 bis 127 Erlaubte optionale Modifizierer: REVERSE_UD, REVERSE_LR z.B. USE HAT1 AS MOUSE (2) Ziemlich einfach, dies weist die Kontrolle der Maus HÜTCHEN 1 zu. Der Wert in Klammern, in diesem Falle 2, bestimmt die Geschwindigkeit, mit der die Maus über den Bildschirm wandert – ein niedriger Wert sorgt für eine gemütliche Maus, und ein hoher Wert sorgt für eine hektischere. Wird das Hütchen in eine der Eckpositionen bewegt, dann bewegt sich die Maus diagonal. Wenn wir die Auf- und Ab-Bewegungsrichtung der Maus umkehren wollen, so können wir das folgendermaßen: USE HAT1 AS MOUSE (2) - REVERSE_UD und sinngemäß lassen sich auch Rechts und Links vertauschen: USE HAT1 AS MOUSE (2) - REVERSE_LR Man kann auch beide REVERSE_Typen zusammen verwenden, wenn man möchte: USE HAT1 AS MOUSE (2) - REVERSE_UD, REVERSE_LR ist ein gültiger Befehl. ANMERKUNGEN Es ist sogar möglich, die Maus mittels eines Hütchens zu steuern und gleichzeitig auch mit dem Microstick, oder womit auch immer, was das angeht. Genauso ist es möglich, ein Hütchen die Maus nur für eine bestimmte Position des LuftkampfSchalters (/U, /M, /D) auf der Schubkontrolle und/oder S3 (/I, /O) auf dem Joystick steuern zu lassen. Dies wird ausführlich in den Kapiteln zur MausProgrammierung behandelt: Verständnis der Maus und des Microsticks. HOTAS Cougar Referenz - Buch 95 THRUSTMASTER 4.1.4 Einrichten eines HUETCHENs zur Blickrichtungs-Steuerung (POV) Konfigurations-Befehl USE HütchenID AS POV [- optionale Modifizierer] Erlaubte optionale Modifizierer: REVERSE_UD, REVERSE_LR z.B. USE HAT3 AS POV Wenn Ihr die Controller im Windows-Modus verwendet, oder wenn Ihr keine Programmierung für HÜTCHEN 1 (BTN H1x) in Eurer Joystick-Datei stehen habt, dann funktioniert HÜTCHEN 1 automatisch als standard POV HÜTCHEN. Ein POV HÜTCHEN ist ein spezielles 8-wege HÜTCHEN, welches in vielen Simulationen bestimmte Funktionen übernimmt. In Falcon 4 z.B. steuert das POV HÜTCHEN die Blickrichtung, wenn HÜTCHEN 1 nicht programmiert ist. In ähnlicher Weise wie zuvor könnt Ihr auch hier wieder die Richtungen für Hoch/Runter und Rechts/Links umkehren: USE HAT4 AS POV - REVERSE_UD USE HAT1 AS POV - REVERSE_LR USE HAT3 AS POV - REVERSE_UD, REVERSE_LR Ihr könnt auch die POV Positionen direkt programmieren als POVU, POVD usw., selbst, wenn Ihr gar kein Hütchen als POV zugewiesen habt. Ihr könnt jede gewünschte Position programmieren (und unerwünschte auslassen). Es ist wie mit den DX-Tasten – sie sind da, aber es braucht Programmierung, um sie zu aktivieren. Solange die Hardware einen vorhandenen POV auf Euren Controllern entdeckt, könnt Ihr dessen POV Positionen auch programmieren. Siehe die folgenden Anmerkungen. ANMERKUNGEN Wir haben gesehen, wie einfach es ist, ein Hütchen als PoV-Steuerung zu verwenden. Aber es ist durchaus sinnvoll, darauf hinzuweisen, dass alle diese POV-Hütchen Positionen auch direkt in einer Datei programmiert werden können. Die Bezeichnung der Positionen des POV-Hütchens ähneln dabei denen eines normalen Hütchens. Sie sind: POVU, POVD, POVL, POVR, POVUL, POVDL, POVUR, POVDR und Ihr würdet sie folgendermaßen zum Programmieren benutzen: BTN T5 POVL BTN T4 POVR HOTAS Cougar Referenz - Buch 96 THRUSTMASTER 4.1.5 Verwendung eines HUETCHENs zur Emulation der Pfeil-Tasten Konfigurations-Befehl USE HütchenID AS ARROWKEYS [- optionale Modifizierer] Erlaubte optionale Modifizierer: REVERSE_UD, REVERSE_LR, NOHOLD z.B. USE HAT2 AS ARROWKEYS Es ist in Flugsimulationen häufig nötig, die Pfeil-Tasten des Cursor-Feldes auf ein HÜTCHEN programmieren zu können, und das ist genau das, was dieser Befehl macht. Die Pfeil-Tasten werden für die Dauer der Bewegung des Hütchens gedrückt. In ähnlicher Weise wie zuvor könnt Ihr auch hier wieder die Richtungen für Hoch/Runter und Rechts/Links umkehren: USE HAT3 AS ARROWKEYS - REVERSE_UD USE HAT4 AS ARROWKEYS - REVERSE_LR USE HAT1 AS ARROWKEYS - REVERSE_UD, REVERSE_LR Beachtet, dass, wenn Ihr das Hütchen in eine der Eck-Positionen bewegt, das Hütchen die beiden benachbarten Pfeil-Tasten gleichzeitig generiert – es hat sozusagen seinen eigenen, eingebauten FORCED_CORNERS Modifizierer. Wenn Ihr nicht möchtet, dass die Pfeil-Tasten gedrückt gehalten werden, könnt Ihr den NOHOLD Modifizierer anhängen, und zwar so: USE HÜTCHEN3 AS ARROWKEYS - NOHOLD Dann werden die Pfeil-Tasten nur einmal beim Bewegen des Hütchens in die verschiedenen Positionen generiert. Wie auch schon bei den anderen optionalen Modifizierern, können diese miteinander kombiniert werden, z.B. so: USE HAT1 AS ARROWKEYS - REVERSE_UD, REVERSE_LR, NOHOLD HOTAS Cougar Referenz - Buch 97 THRUSTMASTER 4.1.6 Verwendung eines HUETCHENs zur Emulation des Ziffernblocks Konfigurations-Befehl USE HütchenID AS KEYPAD [- optionale Modifizierer] Erlaubte optionale Modifizierer: REVERSE_UD, REVERSE_LR, FORCED_CORNERS, NOHOLD, KP5 z.B. USE HAT4 AS KEYPAD Es ist ebenfalls üblich, die Tasten des Ziffernblocks auf ein HÜTCHEN programmieren zu wollen. Mit dem obigen Befehl veranlasst Ihr also HÜTCHEN 4, die Zahlen des Ziffernblocks zu emulieren, wobei die Eck-Positionen des Hütchens (UL UR, DL, DR) die „Eck“-Ziffern „7 9 1 3" produzieren. Das Problem mit dem Ziffernblock ist allerdings, dass sein Verhalten von Simulation zu Simulation unterschiedlich ist. Nicht nur das, verschiedene Simulationen verhalten sich auch noch vollkommen anders, je nachdem, ob NumLOCK an oder aus ist, oder sie setzen voraus, dass es entweder an oder aus ist. Sei’s drum, in den meisten Fällen funktioniert es, wenn man den Ziffernblock als genau das betrachtet – zur Generierung von Zahlen. In ähnlicher Weise wie zuvor könnt Ihr auch hier wieder die Richtungen für Hoch/Runter und Rechts/Links umkehren: USE HAT1 AS KEYPAD - REVERSE_UD USE HAT2 AS KEYPAD - REVERSE_LR USE HAT3 AS KEYPAD - REVERSE_UD, REVERSE_LR Wir haben gesagt, dass dieser Befehl die Tasten des Ziffernblocks generiert. Natürlich fehlt eine Taste, und das ist die „5“ (KP5). Einige Simulationen verwenden KP5, um z.B. den Blick wieder zurückzusetzen und zu zentrieren, und Ihr könnt den Kompilierer anweisen, solch ein KP5 für die Mittelposition des Hütchens auszugeben, indem Ihr den optionalen Modifizierer - KP5 anhängt: USE HAT4 AS KEYPAD - KP5 Wir können auch eine 4-wege Funktion der Eck-Positionen erzwingen: USE HAT4 AS KEYPAD - FORCED_CORNERS So dass HÜTCHEN 4, wenn es z.B. nach oben-rechts (UR) bewegt wird, nicht „KP9”, sondern „KP8“ und „KP6“ gleichzeitig produziert, d.h. die Tasten für Hoch und Rechts. HOTAS Cougar Referenz - Buch 98 THRUSTMASTER Das mag nicht unbedingt Sinn machen, wenn wir nur an die Emulierung von Ziffern an sich denken, doch einige Simulationen und Spiele verarbeiten das schon richtig. Wenn Ihr nicht möchtet, dass die Ziffern-Tasten gedrückt gehalten werden, könnt Ihr den NOHOLD Modifizierer anhängen, und zwar so USE HAT3 AS KEYPAD - NOHOLD Dann werden die Ziffern-Tasten jeweils nur einmal produziert, wenn das Hütchen in seine verschiedenen Positionen bewegt wird.. Ihr könnt sogar alle dieser optionalen Modifizierer miteinander kombinieren, wenn Ihr das wünscht: USE HAT4 AS KEYPAD - REVERSE_UD, REVERSE_LR, FORCED_CORNERS, NOHOLD, KP5 HOTAS Cougar Referenz - Buch 99 THRUSTMASTER 4.1.7 Wie der Kompilierer USE HuetchenID AS Befehle verarbeitet Dieser Abschnitt wendet sich nur an fortgeschrittene Katzenliebhaber mit einem ungesunden Appetit auf Details! Ihr werdet die anderen Kapitel dieses Referenz-Buchs bereits gelesen haben müssen, um die folgenden fortgeschrittenen Anmerkungen verstehen zu können, aber für all jene, denen es nicht technisch genug werden kann, werde ich mich ein wenig damit beschäftigen, wie der Kompilierer eigentlich diese ganzen USE HATn AS irgendwas_sinnvolles Befehle zur Verarbeitung umwandelt. Wir fangen mit dem USE HATx AS MOUSE Befehl an. USE HAT1 AS MOUSE (2) wird vom Kompilierer umgewandelt in: USE HAT1 FORCED_CORNERS BTN H1U /P MSY(2-) /R MSY(2+) BTN H1R /P MSX (2+) /R MSX (2-) BTN H1D /P MSY (2+) /R MSY (2-) BTN H1L /P MSX (2-) /R MSX (2+) Sinngemäß wandelt der Kompilierer USE HAT1 AS MOUSE (2) - REVERSE_UD um in: USE HAT1 FORCED_CORNERS BTN H1U /P MSY(2+) /R MSY(2-) BTN H1R /P MSX (2+) /R MSX (2-) BTN H1D /P MSY (2-) /R MSY (2+) BTN H1L /P MSX (2-) /R MSX (2+) und schließlich: USE HAT1 AS MOUSE (2) - REVERSE_UD, REVERSE_LR in: USE HAT1 FORCED_CORNERS BTN H1U /P MSY(2+) /R MSY(2-) BTN H1R /P MSX (2-) /R MSX (2+) BTN H1D /P MSY (2-) /R MSY (2+) BTN H1L /P MSX (2+) /R MSX (2-) Das gleiche Spiel für die ARROWKEYS: aus USE HAT2 AS ARROWKEYS wird: USE HAT2 FORCED_CORNERS BTN H2U /H UARROW BTN H2R /H RARROW BTN H2D /H DARROW BTN H2L /H LARROW HOTAS Cougar Referenz - Buch 100 THRUSTMASTER Sinngemäß: USE HAT2 AS ARROWKEYS - REVERSE_UD, NOHOLD wird konvertiert in: USE HAT2 FORCED_CORNERS BTN H2U DARROW BTN H2R RARROW BTN H2D UARROW BTN H2L LARROW Beachtet, wie die Positionen für Hoch und Runter miteinander vertauscht werden, und dass die Verwendung des optionalen NOHOLD Modifizierers alle /H Modifizierer entfernt. Und zum Schluss betrachten wir noch die Emulation des KEYPAD (Ziffernblock): aus: USE HAT4 AS KEYPAD wird: BTN H4U /H KP8 BTN H4R /H KP6 BTN H4D /H KP2 BTN H4L /H KP4 BTN H4UR /H KP9 BTN H4DR /H KP3 BTN H4DL /H KP1 BTN H4UL /H KP7 und sinngemäß: USE HAT4 AS KEYPAD - REVERSE_UD, NOHOLD wird konvertiert zu: BTN H4U KP2 BTN H4R KP6 BTN H4D KP8 BTN H4L KP4 BTN H4UR KP3 BTN H4DR KP9 BTN H4DL KP7 BTN H4UL KP1 Beachtet, wie auch die Eck-Positionen vertauscht werden, wenn wir die Richtung für Hoch/Runter umkehren, und dass die Verwendung des optionalen NOHOLD Modifizierers auch hier alle /H Modifizierer entfernt. HOTAS Cougar Referenz - Buch 101 THRUSTMASTER Das gleiche gilt für REVERSE_LR: USE HAT4 AS KEYPAD - REVERSE_LR wird konvertiert zu: BTN H4U /H KP8 BTN H4R /H KP4 BTN H4D /H KP2 BTN H4L /H KP6 BTN H4UR /H KP7 BTN H4DR /H KP1 BTN H4DL /H KP3 BTN H4UL /H KP9 Auch hier werden wieder auch die Eck-Positionen vertauscht. Wenn wir die EckPositionen erzwingen, mittels: USE HAT4 AS KEYPAD - FORCED_CORNERS dann wandelt der Kompilierer diesen Befehl folgendermaßen um: USE HAT4 FORCED_CORNERS BTN H4U /H KP8 BTN H4R /H KP6 BTN H4D /H KP2 BTN H4L /H KP4 Zu guter Letzt: USE HAT4 AS KEYPAD - KP5 führt dazu, dass der Kompilierer einen extra: BTN H4M KP5 Befehl anhängt. Beachtet, dass es hier keinen /H Modifizierer gibt. Das „KP5" ist nicht-wiederholend. Das dürfte damit wohl genug sein. Lasst uns weitermachen…. falls Ihr das nicht ohnehin schon getan habt! HOTAS Cougar Referenz - Buch 102 THRUSTMASTER 5. Konfigurations-Befehle 5.1 Einfuehrung Ganz zu Anfang dieses Referenz-Buchs haben wir den Aufbau einer JoystickDatei behandelt. Obwohl Programmier-Befehle überall in einer Joystick-Datei stehen können, haben wir einen Bereich vor diesen Programmier-Befehlen freigehalten für die Konfigurations-Befehle. Einige Konfigurations-Befehle habt Ihr bereits kennen gelernt, wie z.B. den USE MDEF Konfigurations-Befehl. Wir hatten uns lediglich noch nicht die Zeit genommen, zu erklären, was wir eigentlich mit „Konfigurations-Befehle“ meinen. Das wollen wir nun, da Ihr etwas vertrauter mit der Programmierung Eurer Controller sein solltet, an dieser Stelle nachholen. Konfigurations-Befehle gelten für die gesamte Datei – es sind keine Befehle, die sich nur auf bestimmte Tasten oder Schalter-Positionen beziehen, obwohl einige auch direkt auf Joystick-Tasten mittels der entsprechenden Tasten-Befehle programmiert werden können. Sie erklären dem Kompilierer, wie er Eure Controller für Eure Simulationen einrichten soll. Sie beinhalten Anweisungen, welche Makro-Datei der Kompilierer für die Makros verwenden soll, mit welcher Geschwindigkeit die Tasten generiert werden sollen, welche Achsen gegebenenfalls nicht verwendet werden sollen, usw. usw. Viele dieser Konfigurations-Befehle werden ausführlich an anderer Stelle in diesem Referenz-Buch beschrieben, und zwar jeweils in dem Zusammenhang, in dem ihre Erklärung sinnvoll ist. Ich werde mich daher hier auf jene konzentrieren, die nicht in aller Ausführlichkeit an anderer Stelle erläutert werden. Die Syntax der Konfigurations-Befehle hat sich allerdings für den HOTAS Cougar geändert – also hier die Goldene Regel: Alle Konfigurations-Befehle beginnen entweder mit USE oder DISABLE Alle Konfigurations-Befehle der logischen Programmierung beginnen mit DEF Dies ist anders als nach der bisherigen Thrustmaster Syntax. Oh – und lasst Euch nicht gleich vom Begriff „logische Programmierung” abschrecken, auch wenn er immer mal wieder auftaucht. Er wird hier nur der Vollständigkeit halber erwähnt und wird sich auf die Bereiche, wo ich es anspreche, beschränken, und wird erst ganz am Ende dieses Referenz-Buchs behandelt, da das wirklich etwas für die Hardcore-Programmierer unter Euch ist. HOTAS Cougar Referenz - Buch 103 THRUSTMASTER 5.2 MDEF: MakroDEFinitionsMakroDEFinitions-Datei Konfigurations-Befehl USE MDEF Makro_Dateiname Dieser Befehl wird nur benötigt, wenn eine Joystick-Datei Makros enthält (was ausdrücklich wünschenswert ist). Makro_Dateiname in einem solchen Befehl ist der Name der Makro-Datei, mit oder ohne Datei-Endung (.tmm). Wenn wir also z.B. eine Joystick-Datei namens „Janes WW2 Fighters.tmj” haben, und die Makro-Datei wäre dementsprechend „Janes WW2 Fighters.tmm“, dann müsste der MDEF Befehl folgendermaßen lauten: USE MDEF Janes WW2 Fighters Es ist wichtig, dass beide Dateien sich im gleichen Verzeichnis befinden, welches laut Voreinstellung Foxy's „Files“-Ordner wäre. Obwohl es möglich wäre, die Software dahingehend zu entwickeln, dass das nicht unbedingt nötig wäre, glaube ich, dass dies eine praktische und sinnvolle Festlegung ist, die beibehalten werden sollte, wie schon für die original TM HOTAS. ANMERKUNGEN 1. Lange Dateinamen mit Leerzeichen sind zulässig. 2. Es ist unerheblich, ob Ihr die Datei-Endung in dem MDEF Befehl mit angebt oder nicht. Also sind beide der folgenden Möglichkeiten gültig: USE MDEF Janes WW2 Fighters USE MDEF Janes WW2 Fighters.tmm 3. Makro-Dateinamen, Joystick-Dateinamen und Makro-Namen unterscheiden nicht zwischen Groß- und Kleinschreibung: Mig Alley.tmm ist die gleiche Makro-Datei wie: mig alley.tmm 4. Für die originalen TM HOTAS konnte man sogar mehrere MDEF Befehle gleichzeitig verwenden und dadurch Makro-Definitionen aus verschiedenen Makro-Dateien benutzen. Dies gilt nicht für den HOTAS Cougar. HOTAS Cougar Referenz - Buch 104 THRUSTMASTER 5.3 RATE Abgesehen von den folgenden verbleibenden Konfigurations-Befehlen bezieht sich die Mehrzahl der Konfigurations-Befehle auf die Programmierung der Achsen und wird in den entsprechenden Kapiteln dieses Referenz-Buchs behandelt. Konfigurations-Befehl USE RATE (nnnn) Befehls-Syntax RATE (nnnn) wobei nnnn eine Zeitangabe in Millisekunden ist (1000ms = 1s) und die Geschwindigkeit bestimmt, mit der generierte Tastatur-Tasten wiederholt werden. Wenn nicht angegeben, verwendet der Kompilierer automatisch USE RATE (0) und damit die im BIOS festgelegten Werte (typematic rate settings). Je größer der Wert ist, desto langsamer die (Wiederholungs-)Geschwindigkeit, mit der die Tasten generiert werden. Für die Rate sind Werte zwischen 0 und 655350 (knapp über 10 Minuten!) zulässig. Es ist auch möglich, die RATE in Echtzeit zu ändern, indem man sie auf eine Joystick-Taste programmiert: BTN S4 /I RATE (100) /O RATE (0) oder auf eine Achse: ANT 2 5 RATE (0) RATE (30) RATE (60) RATE (90) RATE (120) (siehe spätere Anmerkungen bzgl. der digitalen Programmierung von Achsen) FORTGESCHRITTENE ANMERKUNGEN Der HOTAS Cougar produziert die generierten Tastatur-Tasten in „Frames“ genannten Gruppen. Frames werden ungefähr alle 30ms generiert bei einer RATE(0) (oder ohne Angabe einer RATE). Innerhalb eines Frames kann der Cougar 16 Tasten generieren. Werden mehr Tasten produziert und der Frame beinhaltet bereits sein 16 Tasten Maximum, werden alle weiteren Tasten an den nächsten Frame weitergegeben. Der Wert der RATE bestimmt dabei den tatsächlichen zeitlichen Intervall zwischen den einzelnen Frames. HOTAS Cougar Referenz - Buch 105 THRUSTMASTER 5.4 S3_LOCK und S3_UNLOCK (ver(ver-/entriegeln) Konfigurations-Befehl USE S3_LOCK Befehl S3_LOCK S3_UNLOCK Normalerweise wird BTN S3 auf dem Joystick in der Form gebraucht, dass, wenn er gedrückt ist, alle /I Funktionen verarbeitet werden, und wenn er losgelassen ist, alle /O Funktionen. Ein USE S3_LOCK Befehl bedeutet nun, dass, wenn S3 gedrückt wird, der Cougar nur die /I Funktionen ausführt. Wird er wieder gedrückt, wird zu den /O Funktionen umgeschaltet. Falls Ihr zwischen diesen beiden Modi hin- und herschalten wolltet, dann könntet Ihr so etwas programmieren: BTN S2 /T S3_LOCK /T S3_UNLOCK Ihr braucht keinen USE S3_LOCK Konfigurations-Befehl in einer Datei zu verwenden, um die direkten S3_LOCK, S3_UNLOCK Funktionen für eine Joystick-Taste benutzen zu können. Was ist also der Unterschied zwischen USE S3_LOCK und lediglich S3_LOCK? USE S3_LOCK gilt für die gesamte Datei und ist nach dem Laden der Datei in den Joystick sofort aktiv. S3_LOCK als Befehl für eine Joystick-Taste gilt nur, sobald diese Joystick-Taste gedrückt wird. ANMERKUNGEN 1. Falls Ihr eine andere Joystick-Taste/ Hütchen als S3 verwendet (siehe nächstes Kapitel), dann gelten diese Funktionen für diese Joystick-Taste, aber Ihr verwendet den gleichen Ausdruck. 2. Ihr könnt keine /H Halten-Modifizierer für S3_LOCK Funktionen verwenden. BTN S1 /H S3_LOCK BTN S4 /H Ein_Makro S3_LOCK würde beides Kompilier-Fehler verursachen. HOTAS Cougar Referenz - Buch 106 THRUSTMASTER 5.5 Zuweisung einer anderen anderen JoystickJoystick-Taste fuer /I, /O mittels SHIFTBTN Konfigurations-Befehl USE Joystick-Taste AS SHIFTBTN Befehl SHIFTBTN (Joystick-Taste) Beispiele: USE S4 AS SHIFTBTN BTN T6 SHIFTBTN (T10) Diese Funktion bestimmt, welche Joystick-Taste anstelle von S3 zur Anwahl von /I Funktionen verwendet werden soll. Gibt es keine solche abweichende Angabe, da sie wahrscheinlich eher selten benutzt werden wird, wird automatisch die Joystick-Taste S3 für /I, /O Funktionen verwendet. Anmerkung des Übersetzers: Da diese Funktion eher kurz abgehandelt wurde, hier noch einige weitere Anmerkungen: diese Funktion gehört genauso wie Makros hinter den /I Modifizierer: BTN T6 /I SHIFTBTN (T10) irgendein_Makro /O nochein_Makro Außerdem sind tatsächlich nur Joystick-Tasten als SHIFTBTN zulässig, nicht aber logische Schalter (Flags) " ! HOTAS Cougar Referenz - Buch 107 THRUSTMASTER 5.6 Empfindlichkeit der HuetchenHuetchen-Eckpositionen Manchmal kann es recht schwierig sein, die Eckpositionen der Hütchen auf Anhieb richtig zu treffen (z.B. H4UL). Erinnert Euch, dass die Hütchen eigentlich nur 4-wege Schalter sind. Daher, und da die Controller alles so schnell verarbeiten, könntet Ihr oft beobachten, dass eines der Makros von einer der beiden Seiten einer Eckposition generiert wird, gerade bevor diese Eckposition ganz richtig gedrückt wird. Ihr könnt die Empfindlichkeit der Hütchen herabsetzen, um dieses Problem zu umgehen: Konfigurations-Befehl USE HütchenID_SENSITIVITY (nnnn) wobei: HütchenID eines der 4 Hütchen ist: HAT1, HAT2, HAT3, HAT4, und nnnn ein Wert zwischen 0 (am empfindlichsten) und 1000 (am unempfindlichsten) ist. Der Wert nnnn ist eigentlich eine Verzögerung in Millisekunden. Ein Beispiel: USE HAT1_SENSITIVITY (100) würde bedeuten, dass alle Funktionen auf HÜTCHEN1 erst verarbeitet würden, wenn die entsprechende Hütchen-Position mindestens 100ms gehalten würde, wodurch auch mehr Zeit wäre, wirklich beide Kontakte rund um eine Eckposition zu Schließen. ANMERKUNGEN Ihr könnt keine /T Schrägstrich-Modifizierer für die programmierbaren Positionen eines Hütchens verwenden, wenn Ihr die USE HütchenID_SENSITIVITY (nnnn) Funktion für dieses Hütchen benutzt. Also: USE HAT1_SENSITIVITY (60) BTN H1U /T a /T b /T c würde eine Fehler-Meldung verursachen. HOTAS Cougar Referenz - Buch 108 THRUSTMASTER 5.7 Empfindlichkeit der MicrostickMicrostick-Taste Solltet Ihr feststellen, dass Ihr andauernd versehentlich die Taste T1 auf dem Microstick drückt, könnt Ihr auch diese weniger empfindlich machen. Konfigurations-Befehl USE T1_SENSITIVITY (nnnn) wobei: nnnn ein Wert zwischen 0 (am empfindlichsten) und 1000 (am unempfindlichsten) ist . Der Wert nnnn ist eigentlich eine Verzögerung in Millisekunden und steht für die Verzögerung, bevor ein Druck auf T1 bemerkt wird. Diese Funktion ist für die Leute gedacht, die finden, dass sie zu oft zu einfach versehentlich T1 drücken. Hier ein Beispiel: USE T1_SENSITIVITY (1000) würde bedeuten, dass T1 erst nach einer Verzögerung von 1 Sekunde als gedrückt angesehen würde. ANMERKUNGEN Ihr könnt keine /T Schrägstrich-Modifizierer für BTN T1 verwenden, wenn Ihr die USE T1_SENSITIVITY (nnnn) Funktion in Eurer Datei benutzt. HOTAS Cougar Referenz - Buch 109 THRUSTMASTER 5.8 USE FOXY GRAPHIC / README Konfigurations-Befehl USE FOXY GRAPHIC Bild-Datei USE FOXY README Text-Datei Diese beiden Konfigurations-Befehle werden vom Kompilierer ignoriert und nur von Foxy für seine Zwecke benutzt. Wenn Foxy Eure Dateien öffnet, durchsucht es diese, und wenn es eine Anweisung USE FOXY GRAPHIC Bild-Datei findet, dann lädt es diese Bild-Datei in seinen Bild-Betrachter. Dies ist nützlich, wenn Ihr Eure Dateien weitergebt, und Ihr ein Bild habt, welches zeigt, welche Makros welchen Joystick-Tasten und Hütchen zugewiesen sind. Ein Beispiel: USE FOXY GRAPHIC Total Air War.bmp Zulässige Bild-Formate sind Bitmaps (.bmp), Jpegs (.jpg) oder Gifs (.gif). Sinngemäß weist der USE FOXY README Konfigurations-Befehl Foxy an, eine Text-Datei in seinen Vorlagen-Editor zu laden, was für andere oder als Gedankenstütze für Euch selbst nützlich sein kann, wenn dort z.B. Angaben zu eventuell nötigen Einstellungen in der Simulation für diese Datei zu finden sind, oder Erklärungen zur Programmierung, usw. Ein Beispiel: USE FOXY README Total Air War.rtf Zulässige Text-Formate sind entweder einfache Text-Dateien mit der Endung .txt, oder Rich Text Dateien mit der Erweiterung .rtf. Letztere können formatierten und farbigen Text in unterschiedlichen Größen und Schriftarten enthalten und daher besser lesbar sein. ANMERKUNGEN Die Bild- und Text-Dateien müssen sich im gleichen Verzeichnis wie Eure Joystick- und Makro-Dateien befinden. Als Voreinstellung ist das in Foxy's FilesOrdner. Anmerkung des Übersetzers: Foxy’s Betrachter für .rtf-Dateien ist allerdings genau das: ein Betrachter – Tabellen oder mittels Tabulator ausgerichtete Abschnitte können in dieser Ansicht deutlich von der Darstellung z.B. in WinWord abweichen. HOTAS Cougar Referenz - Buch 110 THRUSTMASTER 5.9 NULLCHR - Null Zeichen ^ Konfigurations-Befehl USE NULLCHR Zeichen Ein Null-Zeichen ist ein Zeichen innerhalb einer Funktion, das nichts produziert. Das voreingestellte Null-Zeichen ist das ^ (caret). Also, was soll’s? Nun, einige Funktionen verlangen eine bestimmte Anzahl von Angaben, damit diese Funktion gültig ist. Die Digitaler Typ Funktionen, zu denen wir in den nächsten Kapiteln noch kommen werden, sind ein gutes Beispiel dafür. Diese Anweisung z.B.: RDDR 3 L ^ R programmiert die Ruderpedale so, dass ein gehaltenes „L” produziert wird, wenn das linke Pedal getreten wird, und ein gehaltenes „R”, wenn das rechte Pedal getreten wird. Wenn die Pedale zentriert sind, soll natürlich nichts ausgegeben werden, also habe ich für die Mittelposition das voreingestellte Null-Zeichen „^" angegeben. Ich könnte sie nicht einfach offen lassen und einfach nichts angeben: RDDR 3 L R denn dieser Befehl benötigt 3 Zeichen/Makros nach „RDDR 3", ansonsten gäbe es einen Fehler beim Kompilieren. Betrachtet Null-Zeichen also einfach als PlatzHalter für Stellen, an denen Ihr irgendetwas stehen haben müsst, aber nichts produzieren wollt. Um auf diesen Konfigurations-Befehl zurück zu kommen, das Null-Zeichen ist als Voreinstellung ^. Wenn Ihr ein anderes Zeichen/Tastatur-Taste verwenden wollt, dann könnt Ihr das durch Befehle wie diese: USE NULLCHR TAB USE NULLCHR z Wenn das ^ in einem Spiel gebraucht wird, könnt Ihr es immer noch indirekt für Eure Makros verwenden, indem Ihr stattdessen SHF 6 schreibt, d.h. BTN S1 SHF 6 HOTAS Cougar Referenz - Buch 111 THRUSTMASTER ANMERKUNGEN 1. Für die alten originalen TM Controller wart Ihr angewiesen worden, niemals eine Funktionszeile in Eurer Joystick-Datei leer zu lassen, sondern lieber ein Null-Zeichen einzufügen, so z.B.: BTN S2 /U Fire_Missile /M ^ /D ^ Das ist nicht nötig für den Cougar. Es ist kein Problem, so etwas: BTN S2 /U Fire_Missile /M /D in Eurer Joystick-Datei stehen zu haben. 2. Das Null-Zeichen produziert eigentlich das USB (00) Kürzel.. Dies generiert gar nichts, und deshalb ist es auch möglich, ein solches Makro in Eurer MakroDatei zu erstellen, wenn Ihr das bevorzugt: Mach_Garnix = USB(00) und dieses dann in Euren Funktionen zu verwenden: RDDR 3 L Mach_Garnix R Natürlich ist es viel schneller, einfacher und niedlicher, das ^ zu benutzen, und das ist auch der Grund, warum es es gibt. 3. Ihr könnt keine Tastenkombinationen mit gehaltener SHF, CTL, ALT Taste (chorded keys) für die USE NULLCHR Funktion verwenden. Diese Beispiele führen zu Fehler-Meldungen des Kompilierers: USE NULLCHR SHF F1 USE NULLCHR ALT p HOTAS Cougar Referenz - Buch 112 THRUSTMASTER 5.10 TASTATURTASTATUR-Schema (AZERTY, QWERTY) Konfigurations-Befehl USE KEYBOARD Tastatur-Typ Wobei Tastatur-Typ entweder: AZERTY oder QWERTY ist. Falls Ihr eine französische AZERTY Tastatur verwendet, und ein Spiel, für das Ihr Dateien programmiert, verwendet dieses Tastatur-Schema, so dass manche Funktionen im Spiel nicht korrekt ausgeführt werden, dann wird dies durch USE KEYBOARD AZERTY behoben. Siehe auch den Abschnitt über Foxy’s Key Tester für weitere Informationen. ANMERKUNGEN Macht Euch nicht die Mühe, USE KEYBOARD QWERTY anzugeben – der Kompilierer verwendet diese ohnehin standardmäßig. Es ist nicht nötig, diese Angabe in einer Datei zu machen. Anmerkung des Übersetzers: Auf Cougar World wurde bereits diskutiert, ob nicht vielleicht auch ein USE KEYBOARD QWERTZ für den deutschen Sprachraum – der sicherlich größer als der französische ist ! – sinnvoll wäre, doch anscheinend ist diese Angelegenheit wieder in Vergessenheit geraten " ... HOTAS Cougar Referenz - Buch 113 THRUSTMASTER 5.11 Verwendung von profileN aus dem CCP USE PROFILE Konfigurations-Befehl USE PROFILE Profil (Kalibrierungs-Modus) wobei: Profil: ein im Cougar Control Panel erstelltes und mit der Endung .tmc in ProfileOrdner gesichertes Profil ist. Kalibrierungs-Modus: ist entweder AUTO oder CUSTOM. Gibt an, ob ein Profil die Auto-Kalibrierung oder eine Benutzer-definierte Kalibrierung verwenden soll. Beispiele: USE PROFILE Crimson Skies.tmc (AUTO) USE PROFILE Mechwarrior 4 (CUSTOM) Wie wir schon bald in der Achsen-Programmierung sehen werden, ist es möglich, Achsen zu ändern und zu beeinflussen, sie zu vertauschen oder zu deaktivieren, ihren Verlauf zu ändern usw. Dies kann umständlich werden, sobald eine Vielzahl von Befehlen benutzt wird. Wenn Ihr das Cougar Control Panel zum Erstellen und Speichern von Profilen verwendet habt, kann es einfacher sein, einfach diese Dateien zu benutzen. Die Verwendung von gespeicherten Profilen hat auch den Vorteil, dass Toleranz-Zonen mit übernommen werden können, was nur durch Programmierung nicht möglich ist. Die Erfahrung zeigt außerdem, dass der Download von Profilen schneller geht als der Gebrauch von DISABLE oder USE AXES_CONFIG Funktionen (siehe spätere Anmerkungen). 5.11.1 Einige Punkte zu Profilen Ich werde mir ein wenig Zeit nehmen, mich mit .tmc-Dateien, also Profilen, zu beschäftigen, und erklären, warum sie in der Tat sinnvollerweise von Euren Joystick-Dateien aus aufgerufen werden sollten. Zunächst einmal werden Profile mit dem Cougar Control Panel (CCP) erstellt. Sie enthalten alle nötigen Angaben zu den Achsen, wie ihre Zuweisung, Toleranz-Zonen, Kurven-Verhalten usw. Wenn Ihr nun eine Datei, die Eure Achsen beeinflusst, ladet, oder eine Datei verwendet, die Eure Joystick-Kurven während des Flugs ändern kann, dann bleiben alle diese Angaben auch nach Verlasen des Spiels in den Controllern gespeichert. Erinnert Euch: dies ist ein treiberloses System, und alle Informationen bleiben in den Controllern. Wenn Ihr dann hingeht und eine andere Datei für eine andere Simulation ladet, und diese setzt die Achseinstellungen nicht zurück, dann übernehmt Ihr die Werte der vorigen Simulation, da sie ja immer in den Controllern gespeichert bleiben. HOTAS Cougar Referenz - Buch 114 THRUSTMASTER Ihr habt zwei Möglichkeiten, dies zu umgehen. Ihr könnt entweder eine USE PROFILE Anweisung in jeder Eurer Joystick-Dateien angeben, z.B. um das DEFAULT.tmc Profil aufzurufen (das Profil mit den Grundeinstellungen, welches vom CCP beim aller ersten Aufruf angelegt wird), oder ein Profil Eurer Wahl für diese Simulation, oder Ihr könnt in Foxy’s Download-Menü angeben, dass der Kompilierer beim Laden einer Datei zunächst alle Achsen zurücksetzt, indem er Euer Profil anwendet. Ich hoffe, das macht Sinn. Da ein Profil Kalibrierungs-Daten enthält, müsst Ihr dem Kompilierer schließlich noch mitteilen, ob Ihr für Euer Spiel die Kalibrierungs-Daten aus Eurem Profil oder die der Auto-Kalibrierung verwenden wollt. ANMERKUNGEN 1. Foxy und der Kompilierer nehmen zunächst einmal an, dass alle Profile im Profile-Verzeichnis des Cougar zu finden sind. Dort werden alle mit dem CCP erzeugten Profile gespeichert. Als Voreinstellung ist das: C:\Programme\Hotas\Profiles. Wenn eine gerade kompilierte/geladene Datei eine USE PROFILE Anweisung enthält, dann wird der Kompilierer: (a) das Profil in dessen Profile-Verzeichnis suchen. (b) Wenn das Profil existiert, wird er dieses verwenden (und nicht weiter suchen). (c) Wenn das Profil nicht existiert, sucht er im gleichen Verzeichnis, wo auch die Joystick-Datei liegt, d.h. in Foxy's Files-Ordner. (d) Wenn das Profil immer noch nicht existiert, gibt er eine FehlerMeldung aus. 2. Profile haben die Datei-Erweiterung tmc. Es ist egal, ob Ihr diese Erweiterung in der USE PROFILE Anweisung mit angebt oder nicht: USE PROFILE Crimson Skies.tmc USE PROFILE Crimson Skies ist das Gleiche wie 3. Wenn Ihr Foxy zum Öffnen eines Archivs von jemand anderem benutzt, und dieses Archiv enthält ein Profil, dann werden alle Dateien des Archivs in Foxy's Files-Verzeichnis entpackt. Ihr könnt Euch aussuchen, ob Ihr das Profil in den Profile-Ordner des Cougar verschieben wollt, doch Foxy wird dies nicht für Euch tun – Ihr werdet den Explorer bemühen müssen. Ich empfehle, alle Profile im HOTAS Profiles-Ordner zu speichern (normalerweise C:\Programme\HOTAS\Profiles). 4. Ein Profil enthält grundsätzlich die folgenden Informationen über die Achsen des Cougar: Zuweisungs-Daten, Achsen-Richtungen, Mittelpunkte, Kalibrierungs-Daten, Toleranz-Zone, Kurven-Daten, Trimmungs-Information, gesperrte Achsen, und die „Windows-Achsen“ Option. HOTAS Cougar Referenz - Buch 115 THRUSTMASTER 5.12 sonstige KonfigurationsKonfigurations-Befehle Einige der Konfigurations-Befehle würden den Rahmen dieses Kapitels sprengen, da sie in Zusammenhang mit anderen Befehlen erklärt werden müssen. Die folgenden Konfigurations-Befehle werden an anderer Stelle behandelt: Konfigurations-Befehl USE Taste AS DXn Beschrieben in DISABLE AXIS Kapitel 3.8: Arbeit mit und Einrichtung von DirectX (Direct Input) –Tasten Kapitel 3.8.1: Zuweisung aller Joystick-Tasten als DirectX-Tasten Kapitel 4.1: Programmierung der Joystick HÜTCHEN Kapitel 6.3: Kurven-Verlauf von Achsen (CURVE) Kapitel 6.5: Ausschalten von Achsen USE SWAP Kapitel 6.6: Achsen-Zuweisung (SWAP) USE REVERSE Kapitel 6.7: Umkehr der Richtung einer Achse USE AXES_CONFIG Kapitel 6.8: Der USE AXES_CONFIG Befehl USE MTYPE Kapitel 7.2: die einfachste Art, die Maus auf den Microstick zu legen Kapitel 7.3.1: Verwendung anderer Achsen als Maus-Achsen Kapitel 7.5: Störungsvermeidung für veränderte Maus-Bewegung und /I, /O Kapitel 7.7: Ausschalten der StandardZuweisung von Maus auf Microstick Kapitel 7.8.1: Angabe der BildschirmAuflösung Kapitel 8.2: Definition von logischen Schaltern USE ALL_DIRECTX_BUTTONS USE HAT AS MOUSE, POV, ARROWKEYS, KEYPAD USE CURVE USE Achse AS Maus-Achse USE ZERO_MOUSE DISABLE MOUSE USE SCREEN_RESOLUTION DEF Xn HOTAS Cougar Referenz - Buch 116 THRUSTMASTER 6. Achsen-Programmierung 6.1 Grundlagen 6.1.1 Der Unterschied zwischen analog und digital Wir werden uns nun ansehen, wie Ihr die Achsen des Cougars programmieren könnt, und zwar sowohl digital als auch bezüglich ihres analogen Verhaltens. Bevor wir das tun, sollten wir den Unterschied zwischen einer analogen und einer digitalen Achse erklären, da viele Leute diese Begriffe verwirrend finden. Die meisten heute erhältlichen Joysticks funktionieren mechanisch auf die gleiche Weise. Im Inneren enthalten sie zwei Potentiometer (Pots). Wenn Ihr ein Radio mit einem Knopf zur Lautstärken-Einstellung habt, dann dreht Ihr eigentlich ein Potentiometer, welches durch diese Drehung seinen elektrischen Widerstand verändert. In einem Joystick sind diese Potentiometer so angebracht, dass sie die Bewegung nach links/rechts, also auf der X-Achse, und nach oben/unten, also auf der Y-Achse, messen. Die Position des Joysticks und seine Bewegung kann dabei immer bezüglich dieser beiden Achsen angegeben werden, d.h. wie weit er sich auf der X-Achse bewegt hat, und wie weit auf der Y-Achse. Die Potentiometer liefern dabei eine ganze Reihe verschiedener Werte, je nachdem, wo sich der Joystick gerade befindet, und daher werden sie analoge Geräte genannt, im Gegensatz zu digitalen Geräten, die entweder an oder aus sind, wie die Tasten der Tastatur, oder die Joystick-Tasten auf Eurem Cougar. Also, wenn Ihr mir noch folgen könnt und noch nicht weiter geblättert habt, wollen wir die Sache noch ein wenig verkomplizieren. In einer perfekten Welt würden Potentiometer sehr genaue und zuverlässige Werte für jede ihrer Positionen liefern. Allerdings können sich auch Potentiometer abnutzen oder verstauben. Der Effekt kann dann sein, dass manchmal leichte Wertverschiebungen bis hin zu unangenehmen Sprüngen (dem „spiking") auftauchen. Mit dem HOTAS Cougar werden die Signale von den Potentiometern nicht mehr direkt an die Flug-Simulation weitergegeben. Ein digitaler Prozessor im Cougar liest die Werte von einem Potentiometer und filtert fehlerhafte Werte heraus, um genauere und stabilere Werte zu erhalten. Obwohl also die Potentiometer analog sind, werden die von ihnen kommenden Signale digital weiter verarbeitet. Wir werden gleich sehen, was wir mit den Achsen des HOTAS Cougar anstellen können, und eines dieser Dinge ist, sie digital zu programmieren. Mit dem oben gesagten im Hinterkopf muss dies genauer erklärt werden, da nicht unbedingt sofort ersichtlich ist, wie wir eine analoge Achse digital programmieren können. HOTAS Cougar Referenz - Buch 117 THRUSTMASTER Lasst uns für einen Erklärungsversuch einfach mal annehmen, dass die Schubkontrolle analoge Werte zwischen 0 und 100 liefert. Wenn wir diese Achse nun in sagen wir mal 5 Abschnitte unterteilen, dann entspricht Abschnitt 1 den Werten von 0 bis 19, Abschnitt 2 entspricht den Werten von 20 bis 39 usw. Und wir können einen Befehl programmieren, der sagt „Wenn wir uns in Abschnitt 1 befinden, dann produziere ein ‚a’, in Abschnitt 2 ein ‚b’, usw.“ Wir sprechen dann von der Programmierung einer analogen Achse mittels „Digitaler Typen“, welches ich in den folgenden Kapiteln erklären werde. 6.1.2 Die Cougar-Achsen Der HOTAS Cougar (Joystick, Schubkontrolle, Ruderpedale mit Bremsen) hat 10 physikalische analoge Achsen. Diese Achsen können benutzt werden als: • ausschließlich analoge Geräte, (vorausgesetzt, Euer Spiel und DirectX unterstützen sie) mit der Möglichkeit, ihnen Funktionen zuzuweisen • ausschließlich digitale Geräte, so dass sie ausschließlich mit TastaturTasten programmiert werden können • oder eine Kombination der beiden oben genannten Möglichkeiten. Außerdem könne wir analoge Achsen beeinflussen, indem wir: sie komplett entfernen • ihre Reaktions-Kurven verändern • eine Trimmung anwenden • ihre Richtung umkehren • sie anderen Achsen zuweisen, entweder grundsätzlich für die gesamte • Datei, oder abhängig von der Position des Luftkampf-Schalters und der Joystick-Taste S3. Eine der Haupt-Stärken des Cougars ist, wie viel mit diesen Achsen gemacht werden kann. Allerdings kann das sehr schnell sehr kompliziert werden! Zum besseren Verständnis dessen, was wir in einer Joystick-Datei so alles erreichen können in Bezug auf die Handhabung und Programmierung dieser Achsen, müssen wir zunächst die 6 Digitaler Typ Befehle definieren. Diese werden benutzt, um die Achsen digital zu programmieren, damit sie Tastatur-Tasten generieren. Danach haben wir das nötige Wissen, um zu sehen, was wir mit den analogen Achsen, wie die Simulationen sie sehen, machen können. HOTAS Cougar Referenz - Buch 118 THRUSTMASTER Ehe wir weiter machen, lasst uns diese 10 physikalischen Achsen benennen: TM Syntax Achse JOYX Joystick X JOYY Joystick Y THR Schubkontrolle (Throttle) RNG Reichweiten-Regler (Range) ANT Antennen-Regler (Antenna) * MIX Microstick X MIY Microstick Y LBRK Linke Bremse (Toe Brake) RBRK Rechte Bremse (Toe Brake) RDDR Ruder * Anmerkung: Microstick X, Y sind etwas anderes als Maus X, Y ANMERKUNGEN 1. Für die original TM HOTAS war eine Achse entweder analog oder digital – d.h. sie wurde entweder von einem Spiel als analoge Achse erkannt und ihr wurde die entsprechende Funktion zugewiesen (z.B.. TQS Schubkontrolle = Schubkontrolle im Spiel) oder digital programmiert, um Tastatur-Tasten zu generieren. Dies gilt so nicht mehr für den neuen HOTAS Cougar. Als Voreinstellung werden alle Achsen als analog erkannt, aber wenn Ihr sie digital programmiert, dann sind sie sowohl analog als auch digital. Wenn eine rein digitale Achse gewünscht wird, sollte die fragliche Achse ausgeschaltet werden. 2. Ihr braucht überhaupt nichts unter den Spieloptionen von Windows Systemsteuerung zu ändern, wenn Ihr eine Achse nur digital verwenden wollt. Dies war für die vorigen TM Controller noch nötig, ist es aber nicht mehr für den neuen Cougar. 3. Für alle digitalen Achsen-Befehle gilt: • • Ihr könnt /U, /M, /D, /I, /O Modifizierer verwenden Alle analogen Achsen-Veränderungen (Kurve, Zuweisung, Umkehr, usw.) haben keine Auswirkungen auf digitale Achsen-Funktionen. Diese bleiben auf der physikalischen Achse, und zwar linear. Anmerkung des Übersetzers: Auf Cougar World wurde bereits berichtet, dass zumindest die Einstellungen der analogen Toleranz-Zone sich auf digitale Achsen auswirken (Firmware Versionen 1.00 (CD) und 1.05)! HOTAS Cougar Referenz - Buch 119 THRUSTMASTER 6.2 Digitale Typen Funktionen In diesem Abschnitt werden wir uns damit beschäftigen, wie man Achsen digital programmiert, so dass sie Tastatur-Tasten generieren. Die Programmierung jeder der Achsen geschieht durch eine von 6 verfügbaren Digitalen Typ Funktionen. Der einfachste Weg, diese 6 Typen zu verstehen, ist, sich ein Beispiel für jeden Typ anzuschauen, und zu sehen, welche Tasten produziert werden. Anmerkung: Ohne die Angelegenheit weiter komplizieren zu wollen, behaltet im Hinterkopf, dass es nicht nur Tastatur-Tasten sein müssen, die in diesen Funktionen verwendet werden können, sondern z.B. auch logische Schalter, Maus-Befehle oder Achsen-Kurven Befehle. 6.2.1 Typ 1: wiederholende Zeichen, richtungsabhaengig Ein Typ 1 Befehl hat die folgende Syntax: Achse Digitaler Typ Anzahl von Zeichen oder Makros (max. 50) Zeichen oder Makro aufwärts Zeichen oder Makro abwärts z.B. ANT 1 10 u d Zeichen oder Makro mittig (optional) c FORCE_ MAKROS (optional) - FORCE_MAKROS oder wie es in einer Joystick-Datei erscheinen würde: ANT 1 10 u d c - FORCE_MAKROS Ein Drehen des ANTennen Reglers im Uhrzeigersinn und dann gegen den Uhrzeigersinn würde die folgenden Zeichen ausgeben: uuuuucuuuuudddddcddddd Da wir nicht auf den Gebrauch von einzelnen Zeichen in digitalen Befehlen beschränkt sind, könnten wir auch Makros aus einer Makro-Datei verwenden: Chaff_Flare = c DLY(30) f Getting_desperate = RPT(20) (c f) und diese in einem Typ 1 Befehl für den RNG Regler (RaNGe = Reichweite) in der Joystick-Datei einsetzen: RNG 1 5 Chaff_Flare Getting_desperate HOTAS Cougar Referenz - Buch 120 THRUSTMASTER Beachtet, dass die Anzahl von Zeichen oder Makros dabei die gesamte Anzahl von zu generierenden Zeichen (ausschließlich des Zeichens für die Mitte) für die volle Länge der Achse angibt. Das ist anders als bei den originalen TM Typ 1 Befehlen, wo die Anzahl der Zeichen sich auf den Bereich von einem Ende einer Achse zur Mitte bezog, und dann von der Mitte zum anderen Ende. Der Grund für diese Änderung der Syntax ist der, dass nun das Zeichen für die Mitte optional ist. Ein Beispiel: RNG 1 6 u d produziert beim Drehen des RNG Reglers folgende Zeichen: uuuuuudddddd Beachtet, dass das Weglassen eines mittleren Zeichens etwas anderes ist, als ein Null-Zeichen (normalerweise ^) für das mittlere Zeichen zu verwenden. Ein solcher Befehl: RNG 1 6 u d ^ produziert: u u u Toleranz-Zone u u u d d d Toleranz-Zone d d d Das Null-Zeichen „^" führt dazu, dass gar nichts produziert wird … eine Art von Toleranz-Zone, wenn man so will. Ehe wir diesen Punkt verlassen:, die Anzahl von Zeichen muss eine gerade Zahl sein wenn ein mittleres Zeichen angegeben wird, ansonsten, wenn kein mittleres Zeichen angegeben wird, muss es das nicht sein. Der Grund dafür sollte, hoffe ich, offensichtlich sein: wenn die Anzahl der benötigten Zeichen 20 ist und es ein mittleres Zeichen gibt, dann wollt Ihr sicher 10 Zeichen auf jeder Seite haben. HOTAS Cougar Referenz - Buch 121 THRUSTMASTER 6.2.1.1 Den - FORCE_MAKROS Modifizierer verstehen Dieser Modifizierer ist optional und kann nur für Typ 1, 2, 5 und 6 digitale Befehle benutzt werden. Ich werde seine Bedeutung anhand eines Typ 1 Beispiels erklären, doch das folgende gilt genauso für die anderen Typen, mit denen er kombiniert werden kann. Angenommen, wir hätten folgendes: RNG 1 50 u d Eine Drehung des RNG Reglers von einem Anschlag zum anderen wird 50 „u" Zeichen produzieren, oder 50 „d" Zeichen, abhängig von der Drehrichtung. Wenn Ihr nun den RNG Regler schnell dreht und das Ergebnis in Notepad oder Foxy's Key Tester überprüft, dann werdet Ihr keine 50 Zeichen sehen. Ihr werdet vielleicht 10 bis 20 sehen, aber keine 50. Was ist da los? Ist das ein Fehler – ich meine, der Cougar soll doch angeblich alles sehr schnell verarbeiten, oder? Ja, der Cougar kann alles sehr schnell verarbeiten, sogar parallel, und genau das ist der Grund für diesen Effekt. Was geschieht, wenn Ihr den RNG Regler schnell dreht, ist nicht etwa, dass einige der Zeichen verloren gingen. Es ist so, dass das Drücken und Loslassen der Tasten parallel verarbeitet wird, und zwar jeweils bis zu 16 Zeichen gleichzeitig, und der Computer sieht das dann eben als lediglich ein Zeichen pro Frame. Wir können dieses Verhalten allerdings ändern und den Computer „zwingen”, jedes Zeichen wahrzunehmen, und zwar so: RNG 1 50 (< u >) (< d >) und das ist im Prinzip genau das, was der - FORCE_MAKROS Modifizierer macht. Er umgibt jedes Zeichen/Makro eines digitalen Befehls mit ( < Zeichen/Makro > ). Seid allerdings vorsichtig, wie Ihr diesen Modifizierer einsetzt – wenn Ihr an irgendeiner Stelle Funktionen erzwingt, dann werden an anderer Stelle andere Funktionen solange aufgehalten, bis die erzwungenen Funktionen abgearbeitet sind. Außerdem müsst Ihr sicherstellen, dass alle Makros, die Ihr in einer digitalen Funktion mit dem - FORCE_MAKROS Modifizierer verwendet, nicht selbst einen „erzwingenden“ Modifizierer (die Winkel-Klammern < >) in ihrer Definition haben. Ihr könnt keine „erzwingenden“ Modifizierer verschachteln, und genau das tätet Ihr, wenn Ihr so etwas hättet: Makro_1 = < a b c> Makro_2 = d RNG 1 50 Makro_1 Makro_2 - FORCE_MAKROS da der Kompilierer das folgendermaßen umwandeln würde: RNG 1 50 ( < < a b c> > ) ( < d > ) HOTAS Cougar Referenz - Buch 122 THRUSTMASTER ANMERKUNGEN 1. So etwas geht nicht: aber das schon oder auch RNG 1 3 a b c d e f RNG 1 3 (a b c) (d e f) RNG 1 3 ABC_Makro DEF_Makro und in der Makro-Datei: ABC_Makro = a b c DEF_Makro = d e f 2. Man kann /U, /M, /D, /I, /O mit allen digitalen Befehlen benutzen, z.B.: RNG /U 1 3 F1 F2 /M 1 5 (SHF UARROW) (SHF DARROW) /D /I 1 6 e t F5 /O 1 4 [ ] KP5 3. Man kann auch /P, /R und /H in Makros oder in Klammern direkt in den digitalen Typen 1, 2, 5 und 6 verwenden, z.B.: RNG 1 3 Makro_1 Makro_2 und in Eurer Makro-Datei: Makro_1 = /P a /R b Makro_2 = /H d Rem Aber warum Ihr das wolltet wäre mir schleierhaft! 4. Man kann keine /T Modifizierer in Typ 1 (oder jeder digitalen Achsen) verwenden. 5. Ein Typ 6 Befehl ist eine spezielle Form eines Typ 1 Befehls. Die folgenden Befehle produzieren genau das Gleiche am ANTennen-Regler (u u c u u d d c d d): ANT 1 4 u d c ANT 6 5 (0 20 40 60 80 100) u d c HOTAS Cougar Referenz - Buch 123 THRUSTMASTER 6.2.1.2 Wichtige Überlegungen zum Gebrauch von FORCE_MAKROS FORTGESCHRITTENE ANMERKUNGEN Man könnte es nach den obigen Erklärungen für eine gute Idee halten, FORCE_MAKROS grundsätzlich und immer zu verwenden, doch das ist in keinem Fall so. Der erste Punkt, den man im Hinterkopf behalten sollte, sind die Auswirkungen nicht nur auf das Verhalten der anderen programmierten Hütchen und Joystick-Tasten Eurer Controller, sondern auch der Achse mit FORCE_MAKROS selbst. Lasst uns ein Beispiel betrachten, welches mir außerdem hilft, noch etwas anderes zu erklären. Schaut Euch diesen Typ 2 Digitale Achse Befehl an (ja, ich weiß, dass ich den noch nicht behandelt habe – das kommt im nächsten Kapitel, ist aber einfach zu verstehen): ANT 2 26 a b c d e f g h i j k l m n o p q r s t u v w x y z Nun, es braucht kein Genie, um zu erkennen, dass, wenn man die Syntax mal beiseite lässt, dieser Befehl den ANTennen-Regler so programmiert, dass er das Alphabet generiert. (Entschuldigung, falls Euer Alphabet von meinem abweicht! Und an mein amerikanisches Publikum: wir sprechen ’z' als 'zed' aus auf dieser Seite des Teichs, nicht 'zee', doch das tut nichts zur Sache. Ich hab’ keine Ahnung, warum ich dass hier überhaupt erwähne. Ich schweife mal wieder ab.) Wenn Ihr das also in Eurer Joystick-Datei habt und diese ladet, dann werden, wenn Ihr den ANTennen-Regler dreht, die Buchstaben des Alphabets produziert, und Ihr könnt sie in Foxy's Key Tester sehen. Was Ihr dort feststellen werdet, ist, dass sie in der Tat sehr schnell ausgegeben werden. Wenn Ihr dem Befehl dann den FORCE_MAKROS Modifizierer anhängt, nämlich so: ANT 2 26 a b c d e f g h i j k l m n o p q r s t u v w x y z - FORCE_MAKROS und das gleiche tut, dann werdet Ihr feststellen, dass die Verarbeitung nun wesentlich langsamer ist – 4 mal langsamer, um genau zu sein. Das ist so, da der Kompilierer nun jedes Zeichen, sagen wir das „a“, folgendermaßen umwandelt: < KD(a) KU(a) >. Jeder dieser 4 Teile wandert in seinen eigenen „Frame”. Ich sollte besser diese Frames erklären, ehe ich weiter mache. Wenn der Cougar Zeichen oder programmierte Befehle ausgeben will, sendet er sie alle 30ms. Das ist sozusagen die Frame-Rate des Cougars. Jeder Frame kann mehrere Zeichen beinhalten – es ist nicht ein Zeichen pro Frame (denkt dran: der Cougar verarbeitet alles parallel, und zwar bis zu 32 Makros zur gleichen Zeit). Also, in dem ersten HOTAS Cougar Referenz - Buch 124 THRUSTMASTER Beispiel, welches ich für den ANTennen-Regler und das Alphabet angegeben habe, ist einer der Gründe, warum die Zeichen so erzeugt werden, dass mehrere der Zeichen in einem Frame gesendet werden, abhängig davon, wie schnell Ihr den ANTennen-Regler dreht. Dies seht Ihr auch in Foxy's Key Tester. Viele der TastenDruck Ereignisse (Key Down) gehen zusammen raus, gefolgt von ihren TasteLoslassen Ereignissen (Key Up) im nächsten Frame. Ich werde darauf noch zurück kommen … Also, um wieder auf den FORCE_MAKROS Modifizierer zurückzukommen, das „a” wird konvertiert in < KD(a) KU(a) >. Diese 4 Bestandteile der Funktion (<, KD(a), KU(a) und >) gehen in verschiedene Frames, und daher wird das gesamte Alphabet viel langsamer generiert. Während wir uns noch mit diesem ANT Befehl beschäftigen, werde ich das Thema kurz verlassen und eine andere Funktion des Cougars erklären – die Fähigkeit, mehrere Zeichen innerhalb des gleichen Frames zu senden, und eine der Auswirkungen auf die Reihenfolge, in der die Zeichen produziert werden. Lasst uns den Befehl noch einmal anschauen: ANT 2 26 a b c d e f g h i j k l m n o p q r s t u v w x y z Man würde doch annehmen, dass nach diesem Befehl eine Drehung des ANTennen-Reglers in die eine Richtung die Buchstaben des Alphabets in alphabetischer Reihenfolge ausgeben müsste, und eine Drehung in die andere Richtung genau umgekehrt. Nun, versucht’s und seht, was passiert, wenn Ihr den Regler schnell dreht. In Foxy's Key Tester werdet Ihr feststellen, dass tatsächlich einige Zeichen aus der Reihe tanzen. Dies ist am auffälligsten bei einer Drehung gegen den Uhrzeigersinn, und ich selbst erhalte dann: „x y z u v w p q r s t m n o j k l f g h i a b c d e" Ihr werdet außerdem feststellen, dass im „Up/Down/Keycode events”-Fenster die Zeichen als eine Gruppe von „Drücken(Down)”, gefolgt von einer Gruppe von „Loslassen(Up)”, erscheinen, d.h. Down (z y x) Up (z y x) anstelle von Down (z) Up (z) Down (y) Up (y) usw. Also, warum sehen wir diese seltsame Reihenfolge, wenn wir den ANTennen-Regler in diese Richtung drehen? Ist das ein Fehler? Nee, isses nich’. Es liegt daran, wie USB-Geräte Tastatur-Tasten senden. Mit den älteren TM Controllern wurden Tastatur-Taasten gemäß PS2-Standards als individuele „Drücken”- und „Loslassen”-Ereignisse gesendet. Für USB-Geräte funktioniert das folgendermaßen: Zeichen werden nicht als solche gesendet, sondern das Betriebssystem durchsucht den Tastatur-Puffer und stellt fest, welche Tasten gedrückt sind und welche nicht. Wenn nun der Cougar den Tastatur-Puffer verändert, um anzuzeigen, dass die z, x und y Tasten gedrückt werden, dann bemerkt das Betriebssystem das während seines Scans und sendet die Zeichen dann in einer festgelegten Reihenfolge, welche alphabetisch ist. Obwohl Ihr also den ANTennenRegler angewiesen habt, die Buchstaben z, x und y in dieser Reihenfolge zu senden, HOTAS Cougar Referenz - Buch 125 THRUSTMASTER sieht der Computer diese drei Tasten, wenn Ihr den ANTennen-Regler schnell genug dreht, so dass der Cougar sie im gleichen Frame unterbringt, als gleichzeitig gedrückt an und gibt sie in alphabetischer Reihenfolge aus, d.h. x, y und dann z. Wenn wir dagegen den FORCE_MAKROS Modifizierer anhängen, dann werden die Buchstaben natürlich immer in der richtigen Reihenfolge ausgegeben, unabhängig von der Drehrichtung des ANTennen-Reglers, da dann niemals ein Zeichen im gleichen Frame wie ein anderes untergebracht werden wird. Allerdings erzeugen wir sie deshalb eben auch viel langsamer. Ich hoffe, Ihr versteht das meiste. Also denkt sorgfältig darüber nach, ob Ihr den FORCE_MAKROS Modifizierer für Eure Simulation benötigt oder nicht. Denkt an die goldene Regel – es ist egal, wie es sich unter Windows verhält – Ihr müsst schon in die Simulation gehen und es ausprobieren, und das als Testfeld nehmen. Eine abschließende Anmerkung: Wenn Ihr diesen Befehl austestet (ohne den FORCE_MAKROS Modifizierer), dann kann es vorkommen, dass einige Zeichen nicht generiert werden, wenn der ANTennen-Regler zu schnell gedreht wird – statt dessen könntet Ihr sogar einige seltsame „Up“-Zeichen erhalten, wie SHF und CTL. Dessen sind wir uns bewusst, doch es scheint kein Fehler des Cougar zu sein. Wir vermuten, dass Microsofts Tastatur-Treiber irgendwie überfordert wird bis zu einem Punkt, an dem er sich neu initialisiert, was sich dann in diesen fehlerhaften „Up“-Ereignissen zeigt. Für den Cougar selbst ist es unmöglich, diese fehlerhaften Ereignisse durch diesen Befehl zu erzeugen. HOTAS Cougar Referenz - Buch 126 THRUSTMASTER 6.2.2 Typ 2: Zeichenfolge, feste Bereiche Ein Typ 2 Befehl hat die folgende Syntax: Achse Digitaler Typ z.B. ANT 2 Anzahl von Zeichen oder Makros (max. 50) 5 Folge von Zeichen und/oder Makros und/oder logischen Schaltern abcde FORCE_ MAKROS (optional) - FORCE_MAKROS oder wie es in einer Joystick-Datei erscheinen würde: ANT 2 5 a b c d e - FORCE_MAKROS Ein Drehen des ANTennen-Reglers im Uhrzeigersinn und dann gegen den Uhrzeigersinn würde die folgenden Zeichen ausgeben: bcdedcba Genau wie beim Typ 1 Befehl wird jedes Zeichen nur ein einziges mal produziert (aber logische Schalter bleiben an – siehe spätere Anmerkungen*). * Anmerkung des Übersetzers: Njet! Logische Schalter (flags) unterliegen ebenfalls dem standardmäßigen Verhalten des Cougar, nur ein einziges mal produziert zu werden – die einzige Ausnahme gilt für den Typ 3, der sozusagen einen „eingebauten“ /H Modifizierer hat! Das gilt auch, wenn Makros anstelle von einzelnen Zeichen verwendet werden. Beachtet außerdem, dass eine Drehung des ANTennen-Reglers im Uhrzeigersinn und ausgehend vom vollen Anschlag gegen den Uhrzeigersinn als erstes ein „b“ generiert, kein „a“, wie Ihr vielleicht angenommen habt. Dies ist ein anderes Verhalten als bei einem Typ 1 Befehl. Es bedeutet, dass wenn Ihr den ANTennen-Regler mehrfach komplett dreht, Ihr die folgende Zeichenkette erhaltet: b c d e d c b a b c d e d c b a b etc. etc. und nicht etwa: a b c d e e d c b a a b c d e e d c b a etc. etc. Abweichend von der originalen TM Syntax kann die Anzahl der Zeichen oder Makros gerade oder ungerade sein. Allerdings werdet Ihr wahrscheinlich bei der Verwendung eines solchen Befehls für z.B. den ANTennen-Regler eine ungerade Zahl verwenden, so dass die mittlere Position auf den mittleren Anschlag fällt. HOTAS Cougar Referenz - Buch 127 THRUSTMASTER Ihr könnt auch Makros in einem Typ 2 Befehl verwenden: RNG 2 5 Emcon-1 Emcon-2 Emcon-3 Emcon-4 Emcon-5 und in der Makro-Datei: Emcon-1 = e DLY(40) 1 Emcon-2 = e DLY(40) 2 Emcon-3 = e DLY(40) 3 Emcon-4 = e DLY(40) 4 Emcon-5 = e DLY(40) 5 Ich weiß, dass wir logische Schalter noch nicht besprochen haben, doch für den Fall, dass Ihr Euch mit diesem Feld der TM Programmierung beschäftigen wollt, dann denkt daran, dass es auch möglich ist, logische Schalter direkt in einem Typ 2 Befehl zu verwenden, inklusive ihres Schalter-Status’ (*): * * RNG 2 4 X1 X2 X3 X4 Ich werde das detaillierter in den Kapiteln über logische Programmierung behandeln. Also, einzelne Zeichen, Makros und logische Schalter können in einem Typ 2 Befehl gemischt werden: ANT 2 5 a Emcon-2 c ^ X1 6.2.2.1 Den - FORCE_MAKROS Modifizierer verstehen Siehe Kapitel 6.2.1.1 (Typ 1 Befehl) für eine Erklärung dieses Modifizierers. HOTAS Cougar Referenz - Buch 128 THRUSTMASTER ANMERKUNGEN 1. Ihr könnt in allen digitalen Befehlen /U, /M, /D, /I, /O Modifizierer verwenden. Ihr solltet allerdings vorsichtig sein, wenn Ihr diese Modifizierer mit anderen aus logischer Programmierung vermischt (siehe spätere Anmerkungen), da Ihr dann seltsame Resultate von Euren Controllern bekommen könntet. Ein Beispiel (und nur für fortgeschrittene Benutzer!): ANT /U 1 6 a b c /M 1 6 d e f /D 2 3 (DLY(5000) X1) X2 X3 BTN X1 /U a /M b /D c Für die /D Position könnte X1 ein „a", „b" oder „c" generieren, abhängig davon, ob der Luftkampf-Schalter seine Position während der 5-sekündigen Verzögerung wechselt. 2. Ihr könnt aber keine /U, /M, /D, /I, /O Modifizierer innerhalb des Befehls verwenden (dies gilt für alle Digitalen Typ Befehle). Daher würde dies einen Kompilier-Fehler verursachen: RNG 2 3 a b Makro_1 mit Makro_1 = /I KP1 /O KP2 3. Angenommen, Ihr habt so etwas programmiert: ANT /I 2 3 SM1 SM2 SM3 /O 2 3 SM4 SM5 SM6 mit: SM1 = a SM2 = /H b SM3 = c SM4 = d SM5 = /H e SM6 = f Nun lasst uns annehmen, dass Ihr S3 nicht gedrückt habt und sich der ANTennenRegler im mittleren Bereich befindet (wo er ein gehaltenes „e" produziert), und dann drückt Ihr S3. Das führt dazu, dass das „e" unterbrochen wird, so dass es nicht länger gehalten wird. Das „b" wird statt dessen automatisch gehalten werden, und wenn S3 losgelassen wird, wird wieder das gehaltene „e” erzeugt. 4. Ihr könnt /P, /R, /H für Typ 1, 2, 5 und 6 Befehle verwenden. HOTAS Cougar Referenz - Buch 129 THRUSTMASTER 6.2.3 Typ 3: gehaltene Zeichen Ein Typ 3 Befehl hat die folgende Syntax: Achse Digitaler Typ z.B. RDDR 3 Zeichen links l Zeichen Mitte c Zeichen rechts r oder wie es in einer Joystick-Datei erscheinen würde: RDDR 3 l c r Ein Treten des linken Ruder-Pedals würde ein gehaltenes „l" produzieren, auf genau die gleiche Weise, wie gehaltene Zeichen durch den /H Modifizierer erzeugt werden. ANMERKUNGEN 1. Die Achse wird nicht in 3 gleich große Abschnitte unterteilt, sondern eher so, wie unten dargestellt, da sonst die Mitte ein zu großes Spiel hätte: mittlerer Bereich c Linker Bereich /H l Rechter Bereich /H r 2. Ihr könnt logische Schalter in einem Typ 3 Befehl verwenden, wenn Ihr wollt. 3. Wenn Ihr kein Zeichen für die Mitte vergeben wollt, benutzt das Null-Zeichen ^: RDDR 3 l ^ r HOTAS Cougar Referenz - Buch 130 THRUSTMASTER 6.2.4 Typ 4: pulsierende Zeichen Ein Typ 4 Befehl hat die folgende Syntax: Achse Digitaler Typ z.B. RNG 4 PulsGeschwindigkeit (ms) 1000 Zeichen/ Makro links Zeichen/ Makro Mitte Zeichen/ Makro rechts l c r oder wie es in einer Joystick-Datei erscheinen würde: RNG 4 1000 l c r Ein „pulsierendes“ Zeichen ist ein Zeichen, welches ein mal alle x Millisekunden produziert wird, ein wenig wie das Licht eines Leuchtturms oder Stroboskops. Typ 4 Befehle sind neu für TM Controller*. Mit dem obigen Befehl wird ein „l“ alle 1000 Millisekunden (d.h. jede volle Sekunde) erzeugt, wenn Ihr den RNG nach links dreht (oder im Uhrzeigersinn, wenn Ihr auf seine Oberfläche schaut). Eine Drehung in die entgegen gesetzte Richtung produziert ein „c“ in seiner mittleren Position, und dann ein „r“ jede Sekunde ein mal. ANMERKUNGEN 1. Makros und logische Schalter können ebenfalls anstelle einzelner Zeichen verwendet werden. 2. Wenn Ihr kein Zeichen für die Mitte vergeben wollt, benutzt das Null-Zeichen ^: RNG 4 60 l ^ r 3. Die Puls-Geschwindigkeit ist ein Wert in Millisekunden zwischen 0 und 82800000 (was 23 Stunden entspricht!) * Anmerkung des Übersetzers: Neu in dieser einfach zu verwendenden Art, sicher – aber nicht unbedingt in den Resultaten: das gleiche war / ist auch mit den Vorgängern des Cougar möglich, allerdings (wieder einmal) nur über den Umweg der logischen Programmierung ! , und zwar über den selben, der auch so etwas wie den /A Modifizierer bewirkt... HOTAS Cougar Referenz - Buch 131 THRUSTMASTER 6.2.5 Typ 5: Zeichenfolge, variable Bereiche Ein Typ 5 Befehl hat die folgende Syntax: Achse Digitaler Typ z.B. THR 5 Anzahl Bereiche (max. 50) 4 Größe der Bereiche (prozentual) (0 20 45 70 100) Folge von Zeichen/ Makros/ logischen Schaltern abcd FORCE_ MAKROS (optional) - FORCE_MAKROS oder wie es in einer Joystick-Datei erscheinen würde: THR 5 4 (0 20 45 70 100) a b c d - FORCE_MAKROS Typ 5 Befehle sehen zunächst etwas komplexer als die anderen aus, aber eigentlich sind sie ein Sonderfall des Typ 2 Befehls. Erinnert Euch, dass ein Typ 2 Befehl die Zeichen gleichmäßig entlang einer Achse verteilt. Ein Typ 5 Befehl unterteilt eine Achse in Bereiche oder Abschnitte, und weist diesen dann die Zeichen zu. Im Beispiel oben werden 4 Bereiche geschaffen: • • • • 0 bis 20% der Achse produzieren ein „a" 21 bis 45%: „b" 46 bis 70%: „c" 71 bis 100%: „d" In jedem anderen Punkt unterliegt ein Typ 5 Befehl den gleichen Regeln und Einschränkungen wie ein Typ 2 Befehl. Außerdem kann bei einem digitalen Befehl die Achse nach wie vor analog genutzt werden. Wir könnten also eine normale analoge Schubkontrolle haben und mittels eines Typ 5 Befehls zusätzlich an jedem Punkt der Achse digital Zeichen produzieren. So wäre es also ziemlich einfach, eine Schubumkehr zu verwirklichen, oder die Radbremsen beim Landen mit minimalem Schub zu aktivieren, z.B. mit dem Luftkampf-Schalter in /D-Position: THR /U /M /D 5 1 (0 5) Radbremsen Und in der Makro-Datei hätte ich: Radbremsen = /P b /R b Wenn sich also der Luftkampf-Schalter in /D-Position befindet und die Schubkontrolle auf Minimum steht, aktiviert das Radbremsen-Makro die Radbremsen. Für die anderen Positionen des Luftkampf-Schalters (/M und /U) habe ich keine digitalen Befehle angegeben. Auf diese Weise wird das Radbremsen-Makro nur ausgeführt, wenn der Luftkampf-Schalter sich in der /D-Position befindet. HOTAS Cougar Referenz - Buch 132 THRUSTMASTER 6.2.5.1 Den - FORCE_MAKROS Modifizierer verstehen Siehe Kapitel 6.2.1.1 (Typ 1 Befehl) für eine Erklärung dieses Modifizierers. ANMERKUNGEN 1. Für die originalen TM HOTAS konnte man die Minimum-Stellung der Schubkontrolle mittels BTN MT programmieren, allerdings nur, wenn die Schubkontrolle nicht analog verwendet wurde. Der BTN MT Befehl wird nicht länger unterstützt wegen der verbesserten Fähigkeiten der digitalen Typen und der Möglichkeit, die Achsen auch analog zu verwenden. Wenn Ihr einen BTN MT Befehl emulieren wollt, dann verwendet das oben aufgeführte Beispiel, d.h.: THR 5 1 (0 5) Euer_Makro_hier 2. Wie bei allen digitalen Befehlen beeinflussen etwaige Änderungen des KurvenVerhaltens einer analogen Achse die digitalen Befehle nicht. Diese behalten immer ihren eigenen linearen „Verlauf”. 3. Ihr könnt /P, /R, /H mit den Typen 1, 2, 5 und 6 verwenden, doch sollten sie Teil der Makro-Definition sein, oder, wenn Ihr sie direkt im Befehl verwenden wollt, dann schließt sie in Klammern ein. Also: THR 5 1 (0 5) Radbremsen wobei Ihr in Eurer Makro-Datei das Radbremsen-Makro definiert habt als: Radbremsen = /P b /R b ist in Ordnung. Ihr könntet auch dies haben: THR 5 1 (0 5) (/P b /R b) aber: THR 5 1 (0 5) /P b /R b würde eine Fehler-Meldung verursachen. HOTAS Cougar Referenz - Buch 133 THRUSTMASTER 6.2.6 Typ 6: wiederholende Zeichen, variable Bereiche Ein Typ 6 Befehl hat die folgende Syntax: Achse Digitaler Typ Anzahl Bereiche (max. 50) Größe der Bereiche (prozentual) Hoch Runter Mitte (optional) FORCE_ MAKROS (optional) z.B. ANT 6 5 (8 20 40 45 70 80) u d c - FORCE_MAKROS oder wie es in einer Joystick-Datei erscheinen würde: ANT 6 5 (8 20 40 45 70 80) u d c - FORCE_MAKROS Ein Typ 6 digitaler Befehl ist im Wesentlichen das Gleiche wie ein Typ 1 Befehl, nur dass die Zeichen nicht auf gleichmäßige Bereiche aufgeteilt sind, wie sie es in einem Typ 1 Befehl wären. Statt dessen werden sie verteilt auf Bereiche Eurer Wahl. Anders als für Typ 1 Befehle gilt allerdings: wenn Ihr ein Zeichen für die Mitte angebt, dann muss die Anzahl der Bereiche ungerade sein. Im obigen Beispiel werden 5 Bereiche geschaffen: • • • • • 8 bis 20% des Bewegungsspielraums der Achse 21 bis 40% 41 bis 45% 46 bis 70% 71 bis 80% Genau wie mit einem Typ 1 Befehl produziert eine Drehung des ANTennenReglers: uucuuddcdd Wäre der Befehl der folgende: ANT 6 5 (8 20 40 45 70 80) u d dann erhieltet Ihr: uuuuuddddd 6.2.6.1 Den - FORCE_MAKROS Modifizierer verstehen Siehe Kapitel 6.2.1.1 (Typ 1 Befehl) für eine Erklärung dieses Modifizierers. HOTAS Cougar Referenz - Buch 134 THRUSTMASTER 6.2.7 Achsen-Richtungen: analoge Werte und digitale Befehle In diesem Abschnitt werde ich zeigen, welche analogen Werte von Achsen produziert werden und wann, und Beispiele für jeden Digitalen Typ Befehl geben, um zu zeigen, in welche Richtung sie funktionieren. 6.2.7.1 Analoge Achsen: Werte Achsen-Position JOYX – links JOYX – rechts JOYY – zurück JOYY – vorwärts THR – zurück THR – vorwärts RNG - Gegenuhrzeigersinn [Anmerkung 1] RNG – Uhrzeigersinn ANT - Gegenuhrzeigersinn [Anmerking 1] ANT - Uhrzeigersinn MIX – links [Anmerkung 2] MIX – rechts MIY– runter MIY – rauf RDDR – links vorwärts RDDR – rechts vorwärts LBRK, RBRK – hoch LBRK, RBRK – gedrückt Analoger Wert 0 max max 0 max 0 max 0 max 0 0 max max 0 ANMERKUNG 1. Der Reichweiten-Regler (RNG) kann verwirrend sein bezüglich der Richtung der digitalen Befehle. Für RNG und ANT Regler gilt die Regel: Ihr schaut von vorne auf den Regler, um die Drehung in Uhrzeigersinn (CW = clockwise) und Gegenuhrzeigersinn (CCW = counter-clockwise) zu bestimmen.. 2. Der Microstick (MIX, MIY) wird von Windows nicht als analoges Gerät angesehen. Das bedeutet nicht, dass er nicht trotzdem als analoger Controller benutzt werden könnte, da ihm andere Achsen zugewiesen werden können. HOTAS Cougar Referenz - Buch 135 THRUSTMASTER 6.2.7.2 Typ 1 Digitale Achsen Befehle JOYX 1 6 r l Wird der Joystick auf der X-Achse von links nach rechts bewegt, erhalten wir „r"s, und von rechts nach links erhalten wir „l"s. JOYY 1 6 f b Wird der Joystick auf der Y-Achse von unten nach oben/vorne bewegt, erhalten wir „f"s, und von vorne/oben nach unten erhalten wir „b"s. THR 1 6 f b Wird die Schubkontrolle von hinten nach vorne bewegt, erhalten wir „f"s, und von vorne nach hinten erhalten wir „b"s. RNG 1 6 r l Wird der RNG vom vollen Gegenuhrzeigersinn (CCW) im Uhrzeigersinn (CW) bewegt, erhalten wir „r“s, und von CW nach CCW erhalten wir „l“s. ANT 1 6 r l Wird die ANT vom vollen Gegenuhrzeigersinn (CCW) im Uhrzeigersinn (CW) bewegt, erhalten wir „r“s, und von CW nach CCW erhalten wir „l“s. MIX 1 6 r l Wird der Microstick auf seiner X-Achse von links nach rechts bewegt, erhalten wir „r“s, und von rechts nach links erhalten wir „l“s. MIY 1 6 u d Wird der Microstick auf seiner Y-Achse von unten nach oben bewegt, erhalten wir „u“s, und von oben nach unten erhalten wir „d“s. RDDR 1 6 l r Linkes Pedal nach vorne ergibt „l“s, linkes Pedal zurück und rechtes Pedal nach vorne ergibt „r“s. LBRK 1 6 d u Linkes Einzelpedal (Toe Brake) nach unten ergibt „d“s, und „u“s beim wieder hoch kommen lassen (das gleiche gilt für RBRK). HOTAS Cougar Referenz - Buch 136 THRUSTMASTER 6.2.7.3 Typ 2 Digitaler Achsen Befehl JOYX 2 5 a b c d e Wird der Joystick auf der X-Achse von links nach rechts bewegt, erhalten wir „a b c d e", und von rechts nach links erhalten wir „e d c b a". JOYY 2 5 a b c d e Wird der Joystick auf der Y-Achse von unten nach oben/vorne bewegt, erhalten wir „a b c d e", und von vorne/oben nach unten erhalten wir „e d c b a". THR 2 5 a b c d e Wird die Schubkontrolle von hinten nach vorne bewegt, erhalten wir „a b c d e", und von vorne nach hinten erhalten wir „e d c b a". RNG 2 5 a b c d e Wird der RNG vom vollen Gegenuhrzeigersinn (CCW) im Uhrzeigersinn (CW) bewegt, erhalten wir „a b c d e“, und von CW nach CCW erhalten wir „e d c b a“. ANT 2 5 a b c d e Wird die ANT vom vollen Gegenuhrzeigersinn (CCW) im Uhrzeigersinn (CW) bewegt, erhalten wir „a b c d e“, und von CW nach CCW erhalten wir „e d c b a“. MIX 2 5 a b c d e Wird der Microstick auf seiner X-Achse von links nach rechts bewegt, erhalten wir „a b c d e“, und von rechts nach links erhalten wir „e d c b a“. MIY 2 5 a b c d e Wird der Microstick auf seiner Y-Achse von unten nach oben bewegt, erhalten wir „a b c d e“, und von oben nach unten erhalten wir „e d c b a“. RDDR 2 5 a b c d e Linkes Pedal von ganz vorne langsam zurück, während das rechte Pedal getreten wird, ergibt „a b c d e“. Linkes Pedal vorwärts, während das rechte nach hinten geht, ergibt „e d c b a". LBRK 2 5 a b c d e Linkes Einzelpedal (Toe Brake) nach unten ergibt „a b c d e“, und „e d c b a“ beim wieder hoch kommen lassen (das gleiche gilt für RBRK). HOTAS Cougar Referenz - Buch 137 THRUSTMASTER 6.2.7.4 Typ 3 Digitaler Achsen Befehl JOYX 3 l ^ r Wenn der Joystick auf der X-Achse nach links bewegt wird, erhalten wir ein gehaltenes „l", und wenn der Joystick auf der X-Achse nach rechts bewegt wird, erhalten wir ein gehaltenes „r". JOYY 3 b ^ f Wenn der Joystick auf der Y-Achse nach hinten bewegt wird, erhalten wir ein gehaltenes „b", und wenn der Joystick auf der YAchse nach vorne bewegt wird, erhalten wir ein gehaltenes „f". THR 3 b ^ f Wenn die Schubkontrolle hinten ist, erhalten wir ein gehaltenes „b", and wenn sie vorne ist, erhalten wir ein gehaltenes „f". RNG 3 l ^ r Wenn wir den RNG im Uhrzeigersinn bewegen, erhalten wir ein gehaltenes „r“, und wenn wir den RNG gegen den Uhrzeigersinn bewegen, erhalten wir ein gehaltenes „l“. ANT 3 l ^ r Wenn wir die ANT im Uhrzeigersinn bewegen, erhalten wir ein gehaltenes „r“, und wenn wir den RNG gegen den Uhrzeigersinn bewegen, erhalten wir ein gehaltenes „l“. MIX 3 l ^ r Wenn der Microstick auf der X-Achse nach links bewegt wird, erhalten wir ein gehaltenes „l", und wenn der Microstick auf der XAchse nach rechts bewegt wird, erhalten wir ein gehaltenes „r". MIY 3 d ^ u Wenn der Microstick auf der Y-Achse nach unten bewegt wird, erhalten wir ein gehaltenes „d", und wenn der Microstick auf der YAchse nach oben bewegt wird, erhalten wir ein gehaltenes „u". RDDR 3 l ^ r Linkes Pedal nach vorne ergibt ein gehaltenes „l“, linkes Pedal zurück und rechtes Pedal nach vorne ergibt ein gehaltenes „r“. LBRK 3 u ^ d Linkes Einzelpedal (Toe Brake) nach unten ergibt ein gehaltenes „d“, und ein gehaltenes „u“ beim wieder hoch kommen lassen (das gleiche gilt für RBRK). HOTAS Cougar Referenz - Buch 138 THRUSTMASTER 6.2.7.5 Typ 4 Digitaler Achsen Befehl JOYX 4 300 l ^ r Wenn der Joystick auf der X-Achse nach links bewegt wird, erhalten wir ein pulsierendes „l", und wenn der Joystick auf der X-Achse nach rechts bewegt wird, erhalten wir ein pulsierendes „r". JOYY 4 300 b ^ f Wenn der Joystick auf der Y-Achse nach hinten bewegt wird, erhalten wir ein pulsierendes „b", und wenn der Joystick auf der YAchse nach vorne bewegt wird, erhalten wir ein pulsierendes „f". THR 4 300 b ^ f Wenn die Schubkontrolle hinten ist, erhalten wir ein pulsierendes „b", and wenn sie vorne ist, erhalten wir ein pulsierendes „f". RNG 4 300 l ^ r Wenn wir den RNG im Uhrzeigersinn bewegen, erhalten wir ein pulsierendes „r“, und wenn wir den RNG gegen den Uhrzeigersinn bewegen, erhalten wir ein pulsierendes „l“. ANT 4 300 l ^ r Wenn wir die ANT im Uhrzeigersinn bewegen, erhalten wir ein pulsierendes „r“, und wenn wir den RNG gegen den Uhrzeigersinn bewegen, erhalten wir ein pulsierendes „l“. MIX 4 300 l ^ r Wenn der Microstick auf der X-Achse nach links bewegt wird, erhalten wir ein pulsierendes „l", und wenn der Microstick auf der XAchse nach rechts bewegt wird, erhalten wir ein pulsierendes „r". MIY 4 300 d ^ u Wenn der Microstick auf der Y-Achse nach unten bewegt wird, erhalten wir ein pulsierendes „d", und wenn der Microstick auf der YAchse nach oben bewegt wird, erhalten wir ein pulsierendes „u". RDDR 4 300 l ^ r Linkes Pedal nach vorne ergibt ein pulsierendes „l“, linkes Pedal zurück und rechtes Pedal nach vorne ergibt ein pulsierendes „r“. LBRK 4 300 u ^ d Linkes Einzelpedal (Toe Brake) nach unten ergibt ein pulsierendes „d“, und ein pulsierendes „u“ beim wieder hoch kommen lassen (das gleiche gilt für RBRK). HOTAS Cougar Referenz - Buch 139 THRUSTMASTER 6.2.7.6 Typ 5 Digitaler Achsen Befehl JOYX 5 5 (0 20 40 60 80 100) a b c d e Wird der Joystick auf der X-Achse von links nach rechts bewegt, erhalten wir „a b c d e", und von rechts nach links erhalten wir „e d c b a". JOYY 5 5 (0 20 40 60 80 100) a b c d e Wird der Joystick auf der Y-Achse von unten nach oben/vorne bewegt, erhalten wir „a b c d e", und von vorne/oben nach unten erhalten wir „e d c b a". THR 5 5 (0 20 40 60 80 100) a b c d e Wird die Schubkontrolle von hinten nach vorne bewegt, erhalten wir „a b c d e", und von vorne nach hinten erhalten wir „e d c b a". RNG 5 5 (0 20 40 60 80 100) a b c d e Wird der RNG vom vollen Gegenuhrzeigersinn (CCW) im Uhrzeigersinn (CW) bewegt, erhalten wir „a b c d e“, und von CW nach CCW erhalten wir „e d c b a“. ANT 5 5 (0 20 40 60 80 100) a b c d e Wird die ANT vom vollen Gegenuhrzeigersinn (CCW) im Uhrzeigersinn (CW) bewegt, erhalten wir „a b c d e“, und von CW nach CCW erhalten wir „e d c b a“. MIX 5 5 (0 20 40 60 80 100) a b c d e Wird der Microstick auf seiner X-Achse von links nach rechts bewegt, erhalten wir „a b c d e“, und von rechts nach links erhalten wir „e d c b a“. MIY 5 5 (0 20 40 60 80 100) a b c d e Wird der Microstick auf seiner Y-Achse von unten nach oben bewegt, erhalten wir „a b c d e“, und von oben nach unten erhalten wir „e d c b a“. RDDR 5 5 (0 20 40 60 80 100) a b c d e Linkes Pedal von ganz vorne langsam zurück, während das rechte Pedal getreten wird, ergibt „a b c d e“. Linkes Pedal vorwärts, während das rechte nach hinten geht, ergibt „e d c b a". LBRK 5 5 (0 20 40 60 80 100) a b c d e Linkes Einzel-Pedal nach unten ergibt „a b c d e", und „e d c b a" beim wieder los lassen. (gleiches gilt für RBRK). HOTAS Cougar Referenz - Buch 140 THRUSTMASTER 6.2.7.7 Typ 6 Digitaler Achsen Befehl JOYX 6 5 (0 20 40 60 80 100) r l Wird der Joystick auf der X-Achse von links nach rechts bewegt, erhalten wir „r"s, und von rechts nach links erhalten wir „l"s. JOYY 6 5 (0 20 40 60 80 100) f b Wird der Joystick auf der Y-Achse von unten nachoben/vorne bewegt, erhalten wir „f"s, und von vorne/oben nach unten erhalten wir „b"s. THR 6 5 (0 20 40 60 80 100) f b Wird die Schubkontrolle von hinten nach vorne bewegt, erhalten wir „f"s, und von vorne nach hinten erhalten wir „b"s. RNG 6 5 (0 20 40 60 80 100) r l Wird der RNG vom vollen Gegenuhrzeigersinn (CCW) im Uhrzeigersinn (CW) bewegt, erhalten wir „r“s, und von CW nach CCW erhalten wir „l“s. ANT 6 5 (0 20 40 60 80 100) r l Wird die ANT vom vollen Gegenuhrzeigersinn (CCW) im Uhrzeigersinn (CW) bewegt, erhalten wir „r“s, und von CW nach CCW erhalten wir „l“s. MIX 6 5 (0 20 40 60 80 100) r l Wird der Microstick auf seiner X-Achse von links nach rechts bewegt, erhalten wir „r“s, und von rechts nach links erhalten wir „l“s. . MIY 6 5 (0 20 40 60 80 100) u d Wird der Microstick auf seiner Y-Achse von unten nach oben bewegt, erhalten wir „u“s, und von oben nach unten erhalten wir „d“s. RDDR 6 5 (0 20 40 60 80 100) l r Linkes Pedal nach vorne ergibt „l“s, linkes Pedal zurück und rechtes Pedal nach vorne ergibt „r“s. LBRK 6 5 (0 20 40 60 80 100) d u Linkes Einzel-Pedal nach unten ergibt „d", und „u" beim wieder los lassen. (gleiches gilt für RBRK). Das also zur digitalen Programmierung der verschiedenen Achsen. Wir werden uns nun mit der analogen Seite der Achsen beschäftigen, und wie wir diese durch verschiedene Befehle beeinflussen können. Vielleicht eins der ersten Dinge, die Euch interessieren könnten, ist, wie man das Kurvenverhalten einer Achse verändert, und zwar durch Programmierung. Wolle mer ma’ seh’n …. HOTAS Cougar Referenz - Buch 141 THRUSTMASTER 6.3 EmpfindlichkeitsEmpfindlichkeits-Kurve (CURVE) Alle der maximal 10 Achsen haben einen linearen Verlauf ihrer Empfindlichkeit. Das bedeutet, dass, wenn Ihr die Schubkontrolle vorwärts bewegt, die Werte, die an die Simulation gesendet werden, in einem direkten Zusammenhang mit der Stellung der Schubkontrolle stehen: bewegt Ihr also die Schubkontrolle um jeweils 10% vorwärts, so erhöhen sich auch die weitergegebenen Werte jeweils um 10%. Es ist möglich, das Verhalten aller 10 Achsen zu verändern, indem man die entsprechende Verlaufs-Kurve verändert. Diese Verlaufs-Kurven für jede Achse werden durch ihre Empfindlichkeit bestimmt. Es gibt 2 Befehle, die benutzt werden können, um die Achsen-Verlaufs-Kurven zu bestimmen und zu verändern. Ich werde zuerst diese und ihre Begriffe erläutern, bevor ich dann erkläre, wie sie verwendet werden: Konfigurations-Befehl USE CURVE (Achse(n), Empfindlichkeit) Befehl CURVE [Schrägstrich-Modifizierer] (Achse(n), Empfindlichkeit) wobei gilt: Achse(n) ist eine der folgenden Bezeichnungen: JOYX, JOYY THR RNG, ANT MIX, MIY LBRK, RBRK RDDR (zusammen als JOYSTICK bezeichnet) (zusammen als ROTARIES bezeichnet) (zusammen als MICROSTICK bezeichnet) (zusammen als TOEBRAKES bezeichnet) Empfindlichkeit ist ein Wert zwischen –32 und 32 (obwohl Werte jenseits 20 zu Empfindlichkeits-Kurven führen, die Ihr niemals würdet verwenden wollen!) Negative Werte (wie z.B. -10) bedeuten eine verringerte Empfindlichkeit – großartig zum Landen, Betanken, oder den Formationsflug. Null (0nichts!) setzt die Empfindlichkeits-Kurve auf ihren ursprünglichen linearen (gleichmäßigen) Verlauf zurück (und überschreibt jeden eventuell vorhandenen USE CURVE Befehl), und positive Werte (z.B. 10) erhöhen die Empfindlichkeit, großartig für Luftkämpfe mit Flugzeugen aus dem 2.Weltkrieg, um nur ein Beispiel zu nennen. HOTAS Cougar Referenz - Buch 142 THRUSTMASTER Schrägstrich-Modifizierer (optional) /U, /M, /D (Luftkampf-Schalter) und /I, /O (Taste S3) sind erlaubt. Anmerkung des Übersetzers: Das ist Gott sei Dank nicht ganz korrekt, und zwar im Sinne von „nicht ganz vollständig“, weshalb es zu Fehlinterpretationen geradezu einlädt – als altes Spielkind wollte ich mich jedenfalls nicht mit dieser eher dürftigen Aussage zufrieden geben ! : /P, /P und /T sind ebenfalls erlaubt! Gleiches gilt auch für alle anderen, auch wenn ein /A oder /H sicherlich keinen Sinn machen würde. Außerdem kann man natürlich auch DLY(ms) verwenden, auch wenn das kein Schrägstrich-Modifizierer ist. Durcheinander? Mir geht’s nicht anders! Also, lasst uns einige Beispiele anschauen, und festhalten, was die Unterschiede zwischen dem USE CURVE und dem CURVE Befehl sind. USE CURVE ist ein Konfigurations-Befehl – (das gilt für alle USE Befehle). Das bedeutet, dass er in einer eigenen Zeile irgendwo am Anfang einer JoystickDatei steht und nicht einer programmierbaren Position zugeordnet werden kann. Er wird verwendet, um die Grundeinstellung der Verlaufs-Kurven von Achsen festzulegen. Normalerweise verläuft jede Achse linear, also gleichmäßig, weshalb eine Einstellung der Verlaufs-Kurve z.B. der X-Achse des Joysticks wie unten: USE CURVE (JOYX, 0) ziemlich zweckfrei wäre, da der Kompilierer das ohnehin genau so macht, davon ausgehend, dass Ihr eine gleichmäßige Verlaufs-Kurve für den Joystick wollt. Hätten wir allerdings folgenden Befehl in unserer Joystick-Datei: USE CURVE (JOYSTICK, 2) dann würde dies dazu führen, dass beide Achsen des Joysticks, also die X- und die Y-Achse, so verändert werden würden, dass sie empfindlicher reagieren. Beachtet, dass ich die Bezeichnung „JOYSTICK" verwendet habe, um beide Achsen, nämlich JOYY und JOYX, auf einmal anzusprechen, so dass der Kompilierer tatsächlich folgendes an den Controller sendet: USE CURVE (JOYX, 2) USE CURVE (JOYY, 2) Also, der USE CURVE Befehl dient der Veränderung der Standard-Verlaufskurven von Achsen. HOTAS Cougar Referenz - Buch 143 THRUSTMASTER Der CURVE Befehl unterliegt der gleichen Syntax, doch da er kein Konfigurations-Befehl ist, kann er innerhalb von Befehlen der Joystick-Tasten oder in Digitalen Achsen Befehlen verwendet werden, oder auch „einfach so“ als eigenständiger Befehl, wie in den Beispielen weiter unten. Angenommen, wir wollten die Empfindlichkeit der Y-Achse des Joysticks in Abhängigkeit von der Stellung des Luftkampf-Schalters verändern – dies könnten wir mit dem CURVE Befehl erreichen: CURVE /U (JOYY, 2) Rem empfindlicher für Luftkämpfe /M (JOYY, 0) Rem normal /D (JOYY, -2) Rem weniger empfindlich für Landungen Das gleiche für den Microstick: CURVE /I (MICROSTICK, 2) Rem empfindlicher /O (MICROSTICK, 0) Rem normal Und Ihr könnt sie mixen: CURVE /U /I (MICROSTICK, 2) (THR, 2) /O (MICROSTICK, 0) /M /I (RDDR, -2) /O (RDDR, 0) (TOEBRAKES, 2) /D (JOYY, -2) Der CURVE Befehl kann auch direkt auf einer programmierbaren Position verwendet werden: BTN T7 /P CURVE(JOYX, 3) Rem empfindlicher /R CURVE(JOYX, 0) Rem normal Der CURVE Befehl kann auch in Digitale Achse Befehlen verwendet werden, um z.B. die Empfindlichkeit des Joysticks in Abhängigkeit von der Stellung der Schubkontrolle zu ändern: THR 2 5 CURVE(JOYX, -3) CURVE (JOYX, -1) CURVE (JOYX, 0) CURVE (JOYX, 2) CURVE (JOYX, 5) Bei wenig Schub ist die X-Achse des Joysticks nun weniger empfindlich als normal, und sie wird zunehmend empfindlicher, je mehr Schub ich gebe. Nur am Rande ist dies ein wunderbares Beispiel dafür, wie die Schubkontrolle gleichzeitig immer noch analog funktionieren kann, während sie auch digital programmiert worden ist. Na ja, ich find’s zumindest wunderbar. HOTAS Cougar Referenz - Buch 144 THRUSTMASTER Anmerkung des Übersetzers: Probiert’s mal aus und testet es dann in Foxy’s „Joystick Analyser“: wenn Ihr den Joystick in einer beliebigen Position haltet, werdet Ihr feststellen, dass sein Ausschlag sich verändert, wenn Ihr die Stellung der Schubkontrolle verändert – ohne dass Ihr die Stellung des Joysticks verändern würdet, nur aufgrund der Änderung der Achsenverlaufs-Kurve; das nur am Rande, da es sonst vielleicht mitten im Gefecht irritieren könnte, wenn man sich über die Auswirkungen nicht klar ist... ANMERKUNGEN 1. Wenn die Kontrolle einer Achse einer anderen Achse zugewiesen wurde (siehe spätere Anmerkungen), dann nimmt sie ihre Verlaufs-Kurve mit. 2. Man kann keine Toleranz-Zonen mit dem CURVE Befehl verändern – dafür ist das Cougar Control Panel zuständig. Falls Ihr für ein bestimmtes Spiel eine bestimmte Toleranz-Zone benötigt, dann benutzt das CCP zum Speichern dieser ToleranzZone(n) in eine Profil-Datei, und ruft diese dann mit dem USE PROFILE Befehl aus Eurer Joystick-Datei heraus auf. Siehe Punkt 5. 3. Man kann nicht mehr als einen CURVE Befehl in einer Joystick-Datei verwenden. Der zweite CURVE Befehl im folgenden Beispiel würde also einen Kompilier-Fehler verursachen. CURVE /I (MICROSTICK, 2) Rem empfindlicher /O (MICROSTICK, 0) Rem normal CURVE /I (ROTARIES, 2) Rem empfindlicher /O (ROTARIES, 0) Rem normal Dies ist nicht zu verwechseln mit der Verwendung von CURVE Befehlen in Achsenoder Tasten-Funktionen, wo sie mehrfach benutzt werden dürfen. 4. Wenn Ihr den CURVE Befehl nicht auf eine Achse oder Joystick-Taste programmiert, dann könnt Ihr CURVE allein ohne Schrägstrich-Modifizierer nicht verwenden. Statt dessen müsst Ihr dann den Konfigurations-Befehl benutzen. Also: CURVE (JOYSTICK, 10) verursacht eine Fehler-Meldung, USE CURVE (JOYSTICK, 10) ist in Ordnung. 5. Ihr könnt auch eine gespeicherte Profil-Datei laden - siehe den USE PROFILE Befehl, der schon behandelt wurde, wenn Ihr mehrere Verlaufs-Kurven mehrerer Achsen für eine bestimmte Joystick-Datei verändern wollt. Diese Vorgehensweise hat auch den Vorteil, dass Ihr so auch die Toleranz-Zonen verändern könnt. HOTAS Cougar Referenz - Buch 145 THRUSTMASTER 6.4 AchsenAchsen-Trimmung (TRIM) Die Trimmung einer Achse ist ein Mittel, welches es Euch ermöglicht, Eure Hände von den Controllern zu nehmen, und die Simulation trotzdem annimmt, Ihr würdet sie in einer bestimmten Position halten. Lasst mich das etwas genauer erklären. Angenommen, Ihr fliegt auf 15,000 Fuß, und aus irgendeinem Grunde fängt Euer Flugzeug an zu steigen, wenn der Joystick zentriert ist, so dass Ihr dies ausgleichen müsst, indem Ihr dauernd gegensteuert und den Joystick nach vorne drückt. In einem solchen Fall kann die TRIM Funktion verwendet werden, um bei zentriertem Joystick der Simulation zu melden, Ihr würdet ihn nach vorne drücken. Dies beschränkt sich nicht auf den Joystick – es ist für alle 10 analogen Achsen möglich. Befehl TRIM (Achse(n), Trim-Wert) and: HOLDTRIM (Achse(n)) wobei: Achse(n) eine der folgenden Bezeichnungen ist: JOYX, JOYY THR RNG, ANT MIX, MIY LBRK, RBRK RDDR (zusammen als JOYSTICK bezeichnet) (zusammen als ROTARIES bezeichnet) (zusammen als MICROSTICK bezeichnet) (zusammen als TOEBRAKES bezeichnet) Trim-Wert ist ein Wert zwischen -128 und 127 oder TO_CURRENT für den aktuellen Wert. Ein Wert von Null setzt die Achse auf ihre ursprüngliche Verlaufskurve zurück, so dass keine Trimmung mehr erfolg. Ein positiver Wert erhöht die Trimmung, und ein negativer Wert verringert sie entsprechend. Die Angabe TO_CURRENT liest die aktuellen Werte der Achse und setzt die Trimmung auf diese Werte wenn die Achse zentriert ist. In Ordnung, lasst uns ein Beispiel nehmen, wie man die beiden Drehregler der Schubkontrolle zur Trimmung der beiden Achsen des Joysticks verwenden kann, und zwar mittels Typ 1 Befehlen. RNG 1 12 TRIM (JOYX, 20+) TRIM (JOYX, 20-) HOTAS Cougar Referenz - Buch 146 THRUSTMASTER ANT 1 12 TRIM (JOYY, 20-) TRIM (JOYY, 20+) Eine Drehung des ANTennen-Reglers im Uhrzeigersinn z.B. zieht jeweils 20 von den Werten der Y-Achse ab, was einem Vorwärtsdrücken des Joysticks entspricht. Und genau das wäre sinnvoll für ein Flugzeug, welches bei zentriertem Joystick steigen würde. Ich könnte die Joystick-Taste S2 folgendermaßen programmieren, diesen Trimmungs-Effekt auszuschalten: BTN S2 TRIM (JOYX, 0) TRIM (JOYY, 0) Rem Trimmung beider Achsen aus oder mit der folgenden Zeile, die das gleiche bewirkt: BTN S2 TRIM (JOYSTICK, 0) Ich könnte auch einen bestimmten Trimm-Wert zu Achsen hinzufügen: BTN S4 TRIM (JOYX, 5) TRIM (JOYY, -10) Schließlich könnte ich den Joystick in einer Position halten und die Trimmung so einstellen, dass dieser Wert beibehalten wird, wenn der Joystick wieder zentriert ist: BTN S2 /I TRIM (JOYSTICK, TO_CURRENT) Rem Trimmung auf aktuelle Werte /O TRIM (JOYSTICK, 0) Rem Trimmung aufheben Die Sache hat da allerdings einen Haken. Ich sagte „wenn der Joystick wieder zentriert ist”. Lasst mich das erklären. Wenn Ihr also irgendwo lang fliegt und den Joystick nach vorne drücken müsst, um Euer Flugzeug auf Höhe zu halten, da es andernfalls dauernd versuchen würde zu steigen, und dann den Joystick auf die aktuellen Werte trimmt, dann würdet Ihr vielleicht erwarten, dass Ihr den Joystick nun zentrieren könntet, und Euer Flugzeug nun die Höhe hält. Doch das geschieht nicht, trotz des oben angeführten Befehls, es sei denn, Ihr würdet den Joystick direkt nach Anwendung der Trimmung loslassen. Warum? Weil der Wert, auf den Ihr trimmen wollt, ermittelt wird ausgehend von der Annahme, dass der Joystick sich bereits in zentrierter Stellung befinden würde. Dort ist er natürlich (noch) nicht: in dem Moment, in dem Ihr die Trimmung vornehmt, Ihr drückt ihn ja vorwärts. Und daher sieht es in dem Augenblick, in dem Ihr trimmt, so aus, als würdet Ihr den Joystick plötzlich ein ganzes Stück weiter weg drücken, so dass es für die Simulation dann, wenn Ihr den Joystick wieder zentriert habt, so aussieht, als hieltet Ihr ihn in der Position, wo Ihr die Höhe haltet. Wahrscheinlich solltet Ihr den letzten Anschnitt noch einmal lesen, um zu verstehen, worauf ich hinaus will. Ich musste es! Also, wie können wir das umgehen? HOTAS Cougar Referenz - Buch 147 THRUSTMASTER Nun, es gibt einen einfachen und einen komplizierten Weg. Hier ist also der einfache Weg: BTN S2 HOLDTRIM (JOYSTICK) Der Grund, warum ich Euch gleich den „harten” Weg zeigen werde, ist, dass es dann einfacher ist, diesen Befehl und was genau er bewirkt zu verstehen. Also, so benutzt Ihr diesen Befehl: haltet Euren Joystick in einer Position, wo Euer Flugzeug die Höhe hält. Nun drückt die Joystick-Taste S2. Zentriert dann Euren Joystick, und erst danach lasst Ihr die Joystick-Taste S2 wieder los. Solange Ihr S2 gedrückt haltet während Ihr den Joystick bewegt, wird Euer Flugzeug weiterhin seine Höhe halten, und wenn der Joystick dann wieder zentriert ist, dann könnt Ihr S2 loslassen und die Füße hochlegen. Jetzt also der „harte” Weg, dies umzusetzen. Tatsächlich ist es gar nicht allzu schwierig, und es hilft zu erklären, wie genau der oben genannte Befehl funktioniert. Dazu müssen wir den TRIM TO_CURRENT Befehl in Kombination mit den LOCK und UNLOCK Befehlen (siehe spätere Anmerkungen) einsetzen, und zwar folgendermaßen: BTN S2 /P LOCK (JOYSTICK, LASTVALUE) TRIM(JOYSTICK, TO_CURRENT) /R UNLOCK (JOYSTICK) Wenn ich also nun, während ich meinen Joystick nach vorne drücke, um meine Höhe zu halten, die Joystick-Taste S2 drücke und halte, dann wird mein Flugzeug seine Höhe halten, während ich den Joystick dann wieder zentriere, und erst dann lasse ich die Joystick-Taste S2 wieder los. Also, wie funktioniert das? Nun, das erste, was passiert, wenn ich S2 drücke, ist, dass der Joystick mit seinen derzeitigen Werten „eingefroren” order „gesperrt” (engl. „locked") wird. Gleichzeitig wird die Trimmung bezogen auf diese gesperrten Werte berechnet. Wenn der Joystick dann wieder zentriert ist, „entsperren” (engl. „unlock”) wir den Joystick wieder, indem wir S2 loslassen, und schon hält das Flugzeug seine Höhe, da wir die Achsen ja bereits getrimmt haben. Und genau das ist es, wie der Kompilierer den Befehl BTN S2 HOLDTRIM (JOYSTICK) übersetzt und verarbeitet. ANMERKUNGEN 1. Eine Änderung des TRIM Wertes führt zu einer Addition oder Subtraktion zur Verlaufs-Kurve einer Achse, d.h. die gesamte Verlaufs-Kurve wird einfach in die eine oder die andere Richtung verschoben, gleichgültig, ob Ihr eine lineare (gleichmäßige) oder angepasste Verlaufs-Kurve verwendet. 2. Eine getrimmte lineare Verlaufs-Kurve erlaubt nicht mehr die ganze Nutzung des gesamten Achsen-Verlaufs. HOTAS Cougar Referenz - Buch 148 THRUSTMASTER 3. Eine Umkehr der Richtung einer Achse hat keine Auswirkung auf die Richtung der TRIM Funktion – sie bleibt unverändert. Digitale Befehle kehren sich ebenfalls nicht entsprechend der analogen Richtung um. 4. Beachtet, wo Ihr + und – Zeichen in Trimmungs-Befehlen verwendet, wie auch bei anderen Achsen-Befehlen. Auf der linken Seite bestimmen sie den Trimmungs-Wert, auf der rechten den Wert, der zum derzeitigen zu addieren/abzuziehen ist. Siehe auch das Kapitel „Die Maus und den Microstick verstehen", um diesen Unterschied im Gebrauch der „+ -" Zeichen und ihre Auswirkungen, wenn sie links oder rechts eines Wertes stehen, besser zu verstehen. Der Composer wird Euch durch diese Thematik leiten. 5. Diese HOLDTRIM Befehle sind alle vollkommen zulässig: BTN T6 a b HOLDTRIM (RNG) c d BTN S4 /P a HOLDTRIM (RNG) /R b BTN S1 a { HOLDTRIM (JOYY) b HOLDTRIM (ANT) } Beachtet auch, dass mehrere HOLDTRIM Anweisungen wie im letzten Fall von geschwungenen Klammern umgeben sein müssen. 6. Ihr dürft kein Makro namens TRIM verwenden, allerdings durchaus z.B. Trim und Trim_halten. 7. Ihr könnt den AutoRepeat (/A) Schrägstrich-Modifizierer in Verbindung mit dem TRIM Befehl verwenden, um eine Achse mittels einer Joystick-Taste oder eines Hütchens zu steuern. Die folgenden Befehle z.B. trimmen die JoystickAchsen. BTN H1U /A TRIM (JOYY, 5-) DLY(120) BTN H1D /A TRIM (JOYY, 5+) DLY(120) BTN H1L /A TRIM (JOYX, 5-) DLY(120) BTN H1R /A TRIM (JOYX, 5+) DLY(120) 8. Zusätzlich ist es auch möglich, selbst solche Achsen, die physikalisch eigentlich gar nicht angeschlossen sind (z.B. Ruder oder „Toe brakes”), mittels solcher Befehle für ihre entsprechenden Achsen zu steuern. (Siehe auch das Kapitel über das Ermögliche Windows Achsen-Status Kontrollkästchen im Cougar Control Panel für weitere Informationen darüber, wie man auch eigentlich nicht vorhandene Achsen von Windows „erkennen” lässt.) Zum Beispiel: BTN H4L /A TRIM (RDDR, 5-) BTN H4R /A TRIM (RDDR, 5+) HOTAS Cougar Referenz - Buch 149 THRUSTMASTER Anmerkung des Übersetzers: Eine etwas „intelligentere“ Trimm-Funktion habe ich bereits auf Cougar World vorgestellt: die folgende Trimm-Funktion verwendet lediglich eine einzige Joystick-Taste, um entweder eine Trimmung des JOYSTICKs vorzunehmen, oder sie zurückzusetzen, wobei der Kompilierer die jeweils „sinnvolle“ Aktion automatisch entscheidet und ausführt: wenn der JOYSTICK nicht zentriert ist, dann wird bei Druck auf S2 eine TRIMmung auf die aktuellen Werte vorgenommen, wenn er aber zentriert ist, dann bewirkt ein Druck auf S2 eine Aufhebung der Trimmung ! : JOYY JOYX 5 3 5 3 DEF X3 DEF X4 BTN X3 BTN X4 (0 49 51 100) (0 49 51 100) KD(X1) KU(X1) KD(X1) KD(X2) KU(X2) KD(X2) S2 AND (X1 OR X2) S2 AND (NOT (X1 OR X2)) {HOLDTRIM (JOYSTICK) HOLDTRIM (RDDR)} TRIM (JOYSTICK, 0) TRIM (RDDR, 0) Diese TRIMmungs-Funktion hat den Vorteil, dass sie praktisch „kindersicher“ ist und auch für Spiele verwendet werden kann, die keine eigenen Trimmungs-Funktionen bieten – wenn eine Simulation allerdings eigene Trimmungs-Funktionen bietet, dann sollten diese auch verwendet werden, da diese anders funktionieren als diese Funktion des Cougars: während der TRIM-Befehl ja lediglich die gesamte Verlaufs-Kurve verschiebt, so dass die Extrem-Werte dann nicht mehr zu erreichen sind, „verbiegen“ die Trimmungs-Funktionen neuerer Simulationen den gesamten Achsen-Verlauf so, dass alle ihre Werte trotzdem noch zur Verfügung stehen! HOTAS Cougar Referenz - Buch 150 THRUSTMASTER 6.5 Deaktivierung von analogen Achsen Alle der analogen Achsen werden standardmäßig als vorhanden an eine Simulation gemeldet, außer den Microstick-Achsen. Es gibt einige Umstände, unter denen es erwünscht sein könnte, dass sie deaktiviert sein sollten, bevor die Simulation startet, wenn Ihr z.B. nur Tastatur-Kommandos mittels Digitaler Typ Befehlen produzieren möchtet. Achsen können durch Konfigurations-Befehle in der Joystick-Datei folgendermaßen deaktiviert werden:: Konfigurations-Befehl DISABLE Achse(n) wobei Achse(n) eine der folgenden Bezeichnungen ist: THR RNG, ANT LBRK, RBRK RDDR (zusammen ROTARIES – siehe unten) (zusammen TOEBRAKES – siehe unten) Außerdem macht es Sinn, eine Gruppe von Achsen gemeinsam ansprechen zu können, so dass diese mit einem einzigen Befehl deaktiviert werden können, wie z.B.: DISABLE ROTARIES DISABLE TOEBRAKES wird vom Kompilierer konvertiert zu DISABLE RNG DISABLE ANT DISABLE LBRK DISABLE RBRK Wie alle anderen Konfigurations-Befehle auch müssen diese in einer eigenen Zeile in der Joystick-Datei stehen, wobei nur eine zusätzliche Anmerkung nach einem REM noch zulässig ist. Also, diese Befehle: DISABLE THR Rem deaktiviere Schubkontrolle DISABLE ANT Rem deaktiviere Antennen-Regler sind in Ordnung, aber DISABLE (THR, ANT, RNG) nicht. Es mag vielleicht praktischer aussehen, doch es gibt Gründe bezüglich der Programmierung und der Handhabung, die dafür sprechen, alles in getrennten Zeilen zu regeln (es ist z.B. einfacher, eine einzelne Zeile auszuREMen). Dieser neue DISABLE Befehl ersetzt den alten USE NO Befehl der originalen TM-Syntax (USE NOMOUSE, USE NOTHR, usw.). Und da alle Achsen standardmäßig erkannt werden, braucht Ihr nun auch keine Befehle mehr wie z.B. USE RCS, USE TQS usw., wie mit den vorigen TM HOTAS. HOTAS Cougar Referenz - Buch 151 THRUSTMASTER 6.5.1 Ver-/Entriegelung von Achsen im Spiel mittels LOCK, UNLOCK Jetzt wissen wir also, wie man eine Achse durch einen Konfigurations-Befehl deaktivieren kann. Sobald sie deaktiviert ist, kann sie von einem Spiel nicht mehr als analoge Achse wahrgenommen werden. Sie macht also entweder gar nichts mehr, oder sie kann digital programmiert werden. Es könnte z.B. sein, dass Ihr eine analoge Achse bewegen wollt, um die auf sie programmierten digitalen Funktionen nutzen zu können, ohne dass sich ihre analogen Werte dadurch ändern. Unglücklicherweise kann man keine Achsen bei laufendem Spiel entfernen – das würde dazu führen, dass Euer System hängt, das Spiel abstürzt, oder generell etwas ähnlich Unerwünschtes geschieht.. Wenn wir also eine Achse nicht einfach im Flug entfernen und später wieder hinzufügen dürfen, dann ist die einzige Möglichkeit, dies zu umgehen, die Achse bei einem bestimmten analogen Wert zu „verriegeln“, so dass wir sie dann trotzdem bewegen können, wobei dann nur noch ihre digitalen Funktionen sich ändern können. Dies können wir mit dem LOCK Befehl erreichen, und die Achse dann wieder mit dem UNLOCK Befehl „entriegeln“. So werden sie verwendet: Befehl LOCK (Achse(n), Verriegelungs-Wert%) UNLOCK (Achse(n)) wobei gilt: Achse(n) ist: JOYX, JOYY THR RNG, ANT MIX, MIY LBRK, RBRK RDDR (zusammen als JOYSTICK bezeichnet) (zusammen als ROTARIES bezeichnet) (zusammen als MICROSTICK bezeichnet) (zusammen als TOEBRAKES bezeichnet) Verriegelungs-Wert ist: entweder 0 bis 100%, oder einfach LASTVALUE (letzter Wert) Ein Beispiel: BTN S2 /I LOCK (THR, 100%) /O UNLOCK (THR) HOTAS Cougar Referenz - Buch 152 THRUSTMASTER Der LOCK Befehl wird also benutzt, um eine Achse zu zwingen, nur einen einzelnen Wert zu produzieren, entweder irgendwo zwischen 0 und 100% ihrer Bewegung, oder den letzten Wert, den sie gerade produziert hat, mittels LASTVALUE. Die analoge Funktion der Achse kann durch den UNLOCK Befehl wieder hergestellt werden. Durcheinander? Nun, der einfachste Weg zum Verständnis führt über einige Beispiele. Also dann: 1. Angenommen, wir wollen den Reichweiten-Regler als rein analoge Achse verwenden, außer bei gedrückter Joystick-Taste S3, wenn wir wollen, dass dann eine digitale Funktion produziert wird, und zwar unter Beibehaltung des letzten analogen Wertes des Reichweiten-Reglers. RNG /I LOCK (RNG, LASTVALUE) 2 5 a b c d e /O UNLOCK (RNG) Wenn die Joystick-Taste S3 nicht gedrückt ist, wird der Reichweiten-Regler als normale analoge Achse gesehen, und seine Funktion wird ihm vom Spiel zugewiesen.. Sobald die Joystick-Taste S3 gedrückt wird, ändert der Reichweiten-Regler seine analogen Werte nicht mehr – er hält den Wert, der zuletzt aktuell war, und kann nun benutzt werden, um die digitalen Funktionen „a b c d e" zu produzieren, wie durch den Typ 2 Befehl und den /I Modifizierer programmiert. Ich hoffe, das ist einigermaßen klar, also lasst uns mal sehen, wie nützlich das sein kann: 2. ANT /U /I LOCK (ANT, LASTVALUE) 2 10 1 2 3 4 5 6 7 8 9 0 /O UNLOCK (ANT) Rem vom Spiel zugewiesene Achse /M UNLOCK (ANT) Rem vom Spiel zugewiesene Achse /D LOCK (ANT, 0%) 3 Lower_flaps ^ Raise_Flaps Mit dem Luftkampf-Schalter in /D Position (rechts) wird der ANTennen-Regler zur digitalen Steuerung der Landeklappen durch einen Typ 3 Befehl verwendet, und das Spiel erhält analog nur einen Null-Wert von dieser Achse. Mit dem LuftkampfSchalter in seiner mittleren Position (/M) verhält sich der ANTennen-Regler ausschließlich analog, also so, wie vom Spiel vorgesehen. Mit dem LuftkampfSchalter in /U Position ist er ebenfalls ausschließlich analog, wenn die JoystickTaste S3 nicht gedrückt ist. Mit gedrückter Taste S3 wird der ANTennen-Regler an seinem letzten Wert verriegelt (sozusagen eingefroren), und die Zeichen von 1 bis 0 werden bei seiner Drehung digital ausgegeben. Die Verwendung von LOCK und UNLOCK in Kombination mit Digitalen Achsen Befehlen ist ein sehr nützliches und wirkungsvolles Mittel zur Programmierung von Achsen. Seid allerdings umsichtig – hier besteht durchaus auch die Möglichkeit, Dinge eher zu verschlimmbessern! HOTAS Cougar Referenz - Buch 153 THRUSTMASTER ANMERKUNGEN 1. Man kann weder die Achsen des Joysticks, noch die des Microsticks, durch den DISABLE Konfigurations-Befehl deaktivieren. Die Joystick-Achsen müssen immer vorhanden sein – dies setzt DirectX voraus. 2. Wenn Ihr eine Achse in einer Datei ausschaltet, müssen die Controller durch bestimmte Schritte Windows mitteilen, dass diese Achse nicht mehr da sei. Dies kann etwas dauern, und daher benötigt der Download einer Datei, die die Anzahl der für Windows vorhandenen Achsen verändert, ein wenig länger. 3. LOCK und UNLOCK Befehle müssen auf /U, /M, /D, /I, oder /O folgen, wenn sie in Achsen Befehlen benutzt werden. Dies würde also zu einem KompilierFehler führen: ANT LOCK (RNG, LASTVALUE) Aber: S2 LOCK (RNG, LASTVALUE) ist in Ordnung! Anmerkung des Übersetzers: Aufgrund der Art und Weise, wie Windows die Werte von DirectX-Achsen liest und verarbeitet, müsst Ihr bei der THRottle-Achse der Schubkontrolle daran denken, dass die „Windows-Orientierung“ dieser analogen Achse entgegengesetzt zu dem ist, wie Ihr sie eigentlich verstehen würdet: wenn Ihr die Schubkontrolle nach vorne drückt, dann erhöht Ihr normalerweise Eure Geschwindigkeit – doch für Windows nimmt der analoge Wert dieser Achse ab: analoge 0% bedeuten hier, dass die Schubkontrolle sich am oberen Anschlag befindet, analoge 100% wären also „0 Schub“! Deshalb müsst Ihr für die THRottle-Achse etwas rechnen und die Werte für den LOCK-Befehl entsprechend „herumdrehen“: BTN S2 LOCK (THR, 100%) würde die Schubkontrolle also auf 0% (Minimum) stellen, BTN S2 LOCK (THR, 0%) würde die Schubkontrolle also auf 100% (Maximum) stellen, und BTN S2 LOCK (THR, 30%) würde die Schubkontrolle also auf 70% stellen, usw. (bei 50% stimmt’s dann zufällig ! )! HOTAS Cougar Referenz - Buch 154 THRUSTMASTER 6.6 AchsenAchsen-Zuweisung (SWAP) Die Achsen-Zuweisung erlaubt es Euch, Achsen-Zuweisungen zu vertauschen, und zwar sowohl vor dem Start, als auch in der Luft. Dies alles erreicht Ihr durch den SWAP Befehl. Konfigurations-Befehl USE SWAP (Achse(n), Achse(n)) Befehl SWAP (Achse(n), Achse(n)) wobei gilt: Achse(n) ist eine der folgenden Bezeichnungen: JOYX, JOYY THR RNG, ANT MIX, MIY LBRK, RBRK RDDR (zusammen als JOYSTICK bezeichnet) (zusammen als ROTARIES bezeichnet) (zusammen als MICROSTICK bezeichnet) (zusammen als TOEBRAKES bezeichnet) Ein Beispiel: USE SWAP (ANT, RNG) vertauscht die Zuweisung der analogen Achsen des ANTennen-Reglers und des Reichweiten-Reglers. Ein paar weitere Beispiele: BTN S1 SWAP(JOYY, THR) REM vertauscht die Y- und die Schubkontroll-Achse BTN S2 SWAP(JOYSTICK, MICROSTICK) REM tauscht Joystick X und Y mit Microstick X und Y Das letzte Beispiel wird vom Kompilierer umgewandelt in: BTN S2 SWAP(JOYX, MIX) SWAP(JOYY, MIY) und daher ist es wichtig, dass die Anzahl der zu vertauschenden Achsen immer gleich sein muss, wenn Ihr mehr als eine Achse auf einmal vertauscht. Also: BTN S2 SWAP(JOYSTICK, MICROSTICK) ist in Ordnung, aber BTN S2 SWAP(JOYSTICK, THR) würde einen Kompilier-Fehler verursachen, da JOYSTICK 2 Achsen beinhaltet (JOYX and JOYY), es sich bei THR aber nur um eine einzelne Achse handelt. HOTAS Cougar Referenz - Buch 155 THRUSTMASTER ANMERKUNGEN Beim Vertauschen von Achsen-Zuweisungen nehmen diese ihre Empfindlichkeits-Kurven mit. Dagegen werden etwaige Digitale Achsen Funktionen nicht mitgetauscht. HOTAS Cougar Referenz - Buch 156 THRUSTMASTER 6.7 RichtungsRichtungs-Umkehr von Achsen (REVERSE, FORWARD) Es besteht die Möglichkeit, die normale Richtung einer Achse umzukehren, und zwar durch den REVERSE Befehl: Konfigurations-Befehl USE REVERSE (Achse) Befehl REVERSE (Achse) FORWARD (Achse) Achse ist eine der folgenden Bezeichnungen: JOYX, JOYY THR RNG, ANT MIX, MIY LBRK, RBRK RDDR (zusammen als JOYSTICK bezeichnet) (zusammen als ROTARIES bezeichnet) (zusammen als MICROSTICK bezeichnet) (zusammen als TOEBRAKES bezeichnet) Das kann z.B. sehr nützlich sein für eine Helikopter-Simulation, wenn Ihr die Schubkontrolle anders herum als für einen Jet benutzen wollt, oder wenn Ihr es wie ich vorzieht, die Ruder-Pedale verkehrt herum zu benutzen! Wenn ich also grundsätzlich die Richtung meiner Ruder ändern wollte, ohne dass ich erst eine Joystick-Taste drücken muss, könnte ich das erreichen, indem ich dem REVERSE Befehl ein USE voranstelle und ihn so als einen Konfigurations-Befehl verwende: USE REVERSE (RDDR) Dies würde dann irgendwo am Anfand meiner Joystick-Datei stehen, und zwar in einer eigenen Zeile. Lasst uns ein anderes Beispiel ansehen: BTN H1U /I REVERSE (JOYY) /O FORWARD (JOYY) Bewege ich nun HÜTCHEN 1 nach oben, während ich S3 gedrückt halte, würde das zu einer Richtungs-Umkehr der Y-Achse des Joysticks führen. Bewege ich HÜTCHEN 1 nach oben, ohne S3 zu drücken, würde damit die normale „vorwärts”-Richtung dieser Achse wieder hergestellt. Auch hier gilt wieder wie auch bei anderen Befehlen zur Änderung von Achsen-Eigenschaften zu beachten, dass der Effekt der REVERSE oder FORWARD Befehle immer bei der Achse bleibt, wenn diese z.B. vertauscht wird, Digitale Achse Befehle aber nicht umgekehrt werden. HOTAS Cougar Referenz - Buch 157 THRUSTMASTER 6.8 Der USE AXES_CONFIG AXES_CONFIG Befehl Wir haben nun ausführlich behandelt, wie man Achsen ausschaltet, vertauscht und umkehrt, und zwar jeweils direkt bezogen auf bestimmte Achsen. Es ist darüber hinaus auch möglich, all dies mit einem einzigen Konfigurations-Befehl in einer Joystick-Datei, nämlich dem USE AXES_CONFIG Befehl, zu erledigen, welchen der Kompilierer dann in die nötigen einzelnen Konfigurations-Befehle, die schon erklärt wurden, umwandelt. Dies ist ein sehr umfangreicher Befehl, und er wird wohl eher selten benötigt werden, doch er kann unter bestimmten Umständen sehr nützlich sein. Lasst uns zunächst seine Verwendung betrachten … Konfigurations-Befehl: USE AXES_CONFIG HOTASAchse2) usw. (DX-Achse1, HOTASAchse1), (DX-Achse2, d.h. DX-Achse1 ist der HOTASAchse1 zugewiesen Also, was ist der Unterschied zwischen einer DX-Achse und einer HOTAS Achse? Die letztere ist einfacher zu erklären, also werde ich damit anfangen. Eine HOTAS Achse ist jede der 10 physikalischen, d.h. tatsächlich vorhandenen, Achsen des Cougar (d.h. JOYX, JOYY, THR, RDDR, ANT, RNG, MIX, MIY, LBRK, RBRK). Eine DX-Achse ist etwas schwieriger zu erklären … Dabei handelt es sich um eine Achse, die der Cougar an DirectX als vorhanden meldet, und welcher dann vom Spiel eine Funktion zugewiesen wird. Nun, obwohl wir 10 Achsen zur Verfügung haben, unterstützt DirectX 8 nur 8 Achsen für USB Geräte (und DirectX 7 nur 6). Wir machen Euch das Leben etwas einfacher, indem wir Windows sagen: „Benutze die Joystick X-Achse als DX-Achse1, Joystick Y-Achse als DX-Achse 2” usw. Windows weiß nicht, ob wir eine Schubkontrolle mit einem Reichweiten-Regler oder was auch immer haben, da es diese Achsen auch verwendet, wenn Ihr ein Lenkrad oder einen anderen Controller benutzt. Die DXAchsen und ihre Bezeichnungen findet Ihr in der folgenden Übersicht, und auch, wie sie beim Cougar zugewiesen sind: DirectX Achse X Achse Y Achse Z Achse Rotation X Rotation Y Rotation Z Schieberegler (Slider) 0 Slider 1 HOTAS Achse Joystick X-Achse Joystick Y-Achse Schubkontrolle (TQS) Antennen-Regler (TQS) linkes Ruder-Pedal (Bremse) Ruder-Pedale (1-achsig) Reichweiten-Regler (TQS) Syntax JOYX JOYY THR ANT LBRK RDDR RNG rechtes Ruder-Pedal (Gas) RBRK Achtung: Die Zuweisung der Einzel-Pedale (Toe Brakes) könnten sich noch ändern, wenn die Cougar Ruder-Pedale produziert werden. HOTAS Cougar Referenz - Buch 158 THRUSTMASTER Um wieder auf den Gebrauch dieses Befehl zurückzukommen, gibt es 4 grundlegende Regeln zu beachten: 1. Jede Achse (DirectX oder HOTAS Cougar), die nicht aufgeführt wird, wird vom analogen Gebrauch ausgenommen. 2. Achsen in Klammern werden einander zugewiesen. 3. Jede HOTAS Cougar Achse mit einem negativen Zeichen „-“ vor ihrer Bezeichnung wird in ihrer Richtung umgekehrt. 4. Es müssen immer die Achsen 1 und 2 vorhanden sein, da Windows dies zwingend voraussetzt. Lasst uns dies an einem weiteren Beispiel klar machen: USE AXES_CONFIG (1, RNG), (2, ANT), (3, -THR) In diesem Beispiel gilt: 1. Der Reichweiten-Regler ist der DirectX Achse 1 zugewiesen und wird damit als Joystick X-Achse verwendet. 2. Der Antennen-Regler ist der DirectX Achse 2 zugewiesen und wird so als Joystick Y-Achse verwendet. 3. Die Schub-Achse ist der DirectX Achse 3 zugewiesen, was dem Normalfall entspricht, allerdings bedeutet das Minus-Zeichen vor ihrer Bezeichnung, dass ihre Richtung umgekehrt wird – nützlich für Helikopter-Simulationen. 4. Es werden keine weiteren Achsen aufgeführt, sie stehen daher auch nicht im Spiel zur Verfügung. Sie können davon unabhängig natürlich weiterhin digital programmiert werden. Wie Ihr sehen könnt ist es so mit einem einzigen Befehl möglich, mehrere Achsen auf einmal zu vertauschen, auszuschalten oder umzukehren.. ANMERKUNGEN 1. Ihr könnt die Konfigurations-Befehle DISABLE, USE REVERSE oder USE SWAP nicht in Verbindung mit dem USE AXES_CONFIG Befehl benutzen, ansonsten erhaltet Ihr eine Fehlermeldung beim Kompilieren. Allerdings könnt Ihr nach wie vor SWAP, REVERSE Befehle auf eine Joystick-Taste programmieren, wenn die entsprechende Achse vorhanden ist. 2. Es ist viel einfacher, den USE PROFILE Befehl in Verbindung mit dem Cougar Control Panel zu verwenden! Siehe frühere Anmerkungen. 3. DirectX weist die als vorhanden gemeldeten Achsen auf seine eigene Art zu, so dass Ihr im Cougar Control Panel feststellen könntet, dass dies nicht unbedingt dem entspricht, was Ihr vielleicht erwartet hättet. Tut mir leid, da müsst Ihr gegebenenfalls ein wenig herum experimentieren, um die gewünschten Ergebnisse zu erzielen. HOTAS Cougar Referenz - Buch 159 THRUSTMASTER Anmerkung des Übersetzers: Ein aktuelles Beispiel für Punkt 3 wäre z.B. die Flug-Simulation „IL-2 Sturmovik“, die aus irgendeinem unerfindlichen Grunde die Schubsteuerung lahm legt, da sie dieser nicht die übliche THRottle-Achse zuweist, sondern eine andere – solltet Ihr dieses Phänomen bemerken, so solltet Ihr diese Zuweisung im „HOTAS“-Abschnitt der Kontoll-Optionen des Spiels selbst überprüfen und ggf. korrigieren! HOTAS Cougar Referenz - Buch 160 THRUSTMASTER 7. Maus-Programmierung 7.1 Die MausMaus-Steuerung und der Microstick Im letzten Teil dieses Kapitels werden wir sehen, wie die Maus funktioniert, und Euch ein paar pfiffige Dinge zeigen, die wir mit ihr anstellen können. Allerdings werde ich nicht direkt mit ihren Befehlen und deren Verwendung anfangen, wie wir das zuvor getan haben, da wir zunächst einmal ein wenig verstehen müssen, wie eine Maus eigentlich funktioniert. Ich bin mir ziemlich sicher, dass Ihr den Microstick der TQS Schubkontrolle schon benutzt haben werdet, und geglaubt habt, dies sei eine Maus-Steuerung, da er ja die Maus bewegt. Nichtsdestotrotz ist es wichtig, sich über den folgenden Punkt im Klaren zu sein: Der Microstick ist KEINE Maus. Der Microstick ist wie ein kleiner Mini-Joystick. Normalerweise steuert er die Maus, weil der Kompilierer ihn dazu veranlasst. Der Kompilierer weist seinen beiden Achsen (MIX and MIY) die Maus-Steuerung zu, ohne dass Ihr das bemerkt. Was ist denn diese Maus-Steuerung? Und warum können wir nicht einfach die X- und Y-Achse der Maus der X- und Y-Achse des Microsticks zuweisen? Der Grund ist dieser: die Maus als ein Gerät besteht nicht aus festen Achsen als solches. Verwirrt? Nun, wenn Ihr an den Joystick denkt, dann generiert dieser, wenn Ihr ihn herum bewegt, feste X- and Y-Koordinaten, die seine genaue Stellung angeben. Wenn der Joystick einen Cursor steuern würde, wie er das in Foxy's „Joystick Analyser” tut, dann würde dessen Bewegung mit der des Joysticks übereinstimmen. Wenn der Joystick aufhört, sich zu bewegen, hört auch dieser Cursor auf, sich zu bewegen. Doch der Microstick verhält sich bei der Maussteuerung ganz anders. Wenn Ihr diesen wie zuvor den Joystick bewegt und ihn dann in einer Position außerhalb seines Zentrums haltet, dann bewegt sich die Maus weiter. Sie stoppt nicht, obwohl der Microstick still steht. Das kommt daher, dass der Microstick dem Computer nicht sagt "Hey, beweg’ die Maus and diese X, Y Position und halt’ dann an", sondern statt dessen "Beweg’ die Maus weiter entlang ihrer X-Achse mit einer Geschwindigkeit von 3 und einer Geschwindigkeit von 2 entlang ihrer Y-Achse, bis ich Dir was anderes sage." Wenn dann der Microstick wieder zentriert wird, bewegt sich der Cursor nicht auch zur Bildschirm-Mitte zurück, sondern bleibt stehen, wo er sich gerade befindet, da der Microstick seine Anweisung geändert hat, und zwar zu "OK, Du kannst jetzt damit aufhören, die Maus entlang ihrer X- und Y-Achse zu bewegen." Ein Maus-Cursor kann also dazu veranlasst werden, sich zu bewegen, indem man Werte unterschiedlich von Null für die Maus-X- und/oder Maus-Y-Achse (MSX und MSY) zuweist. Und wenn wir den Microstick anweisen, die Werte von MSX und MSY zu ändern, dann steuert der Microstick die Maus HOTAS Cougar Referenz - Buch 161 THRUSTMASTER Und der Grund, warum wir dies auf diese Weise umgesetzt haben, sollte Euch langsam dämmern. Wir können so alles verwenden, um MSX und MSY zu verändern. Den Microstick, den Joystick, ein Hütchen, eine Joystick-Taste, logische Schalter… Ihr habt freie Wahl. Und sie können das gleichzeitig übernehmen. Auf diese Weise könnten wir den Microstick für schnelle Maus-Bewegungen programmieren, und ein Hütchen für langsamere! HOTAS Cougar Referenz - Buch 162 THRUSTMASTER 7.2 USE MTYPE - Der einfachste Weg, die Maus dem Microstick Microstick zuzuweisen Im späteren Verlauf dieses Kapitels werde ich Euch zeigen, wie Ihr Euch die Maus auf dem Microstick mit genau dem Verhalten, wie Ihr das möchtet, einrichten könnt. Doch dies erfordert ein genaues Verständnis der Digitalen Typ Befehle und der MSX und MSY Funktionen, und es ist nichts für Überängstliche. Daneben gibt es allerdings glücklicherweise auch einige Befehle, mit denen wir ganz einfach die Maus dem Microstick zuweisen können. Dieses sind die USE MTYPE und USE MICROSTICK AS MOUSE Konfigurations-Befehle. Lasst uns direkt mit dem USE MTYPE Befehl anfangen, da dieser sehr einfach zu verstehen und zu benutzen ist. Konfigurations-Befehl: USE MTYPE Typ - REVERSE_Art wobei gilt: Typ: ist eine Bezeichnung von A1 bis A5 und legt fest, welche Taste der Schubkontrolle als linke und rechte Maus-Taste verwendet werden sollen: Typ A1 A2 A3 A4 A5 Linke Maus-Taste T1 T6 T1 T6 keine Rechte Maus-Taste T6 T1 keine keine keine T1 ist die in den Microstick eingebaute Taste - der Microstick wird gedrückt um sie zu betätigen, und T6 ist die Taste auf dem Reichweiten-Regler.(RNG) REVERSE_Art ist REVERSE_UD und/oder REVERSE_LR REVERSE_UD kehrt die Richtung für hoch (Up) und runter (Down) um (Maus Y-Achse), und REVERSE_LR die Richtung für links und rechts um (Maus X-Achse). Einige Beispiele: USE MTYPE A3 weist die Maus dem Microstick zu und legt die linke Maus-Taste auf T1. USE MTYPE A5 - REVERSE_UD weist die Maus dem Microstick zu, ohne eine Taste für die Maus-Tasten festzulegen, und kehrt die Richtung der Y-Achse um. HOTAS Cougar Referenz - Buch 163 THRUSTMASTER ANMERKUNGEN 1. Die Maus-Geschwindigkeit wird dabei vom Kompilierer so voreingestellt, dass sie für Auflösungen bis 1024 x 768 geeignet sein sollte. Diese Empfindlichkeit für den USE MTYPE Befehl kann nicht verändert werden, so dass Ihr bei höheren Auflösungen, oder wenn Ihr einfach eine mehr oder weniger empfindliche Maus haben wollt, den USE MICROSTICK AS MOUSE Befehl verwenden solltet, der im nächsten Abschnitt behandelt wird. 2. Der Microstick ist wie gesagt ein analoger Controller. Er ist kein digitaler 4Wege Schalter wie bei den originalen TM HOTAS, und daher entfallen die bisherigen Tasten T11 bis T14 für die Programmierung. Ihr könnt T11 bis T14 durch entsprechende Digitaler Typ Befehle emulieren, wenn Ihr das möchtet siehe Foxy’s Hilfe-Kapitel „Konvertierung von TQS T11 - T14 Befehlen für den Cougar Microstick“. Beachtet, dass der Microstick eben genau dies ist – ein Controller mit 2 Achsen, nicht mit mehreren Schaltern. Auf diese Weise kann er wesentlich mehr. 3. Wenn Ihr die Empfindlichkeits-Kurve des Microsticks verändert, wirkt sich dies nicht auf die Maus aus, da diese durch eine digitale Funktion gesteuert wird, und digitale Funktionen nicht von analogen Kurven beeinflusst werden. 4. Wenn Ihr einen USE MTYPE Befehl in Eurer Joystick-Datei verwendet, der irgendeine der Maus-Tasten T1 oder T6 zuweist, dann könnt Ihr diese Positionen nicht weiter programmieren. Wenn wir z.B. folgendes haben: USE MTYPE A3 wird der Kompilierer automatisch – und für Euch nicht sichtbar – folgenden Befehl hinzufügen: BTN T1 /H MOUSE_LB Wenn Ihr dann also irgendwo anders in Eurer Datei noch so etwas hättet: BTN T1 einMakro oder BTN T1 /H MOUSE_RB dann wird der Kompilierer einen Fehler melden. Wenn Ihr einen USE MTYPE Befehl zur einfachen Zuweisung der Maus auf den Microstick verwenden wollt, aber gleichzeitig T1 und/oder T6 unabhängig davon programmieren möchtet, dann solltet Ihr stattdessen den USE MTYPE A5 oder einen sinngemäßen Befehl verwenden, der der Taste oder den Tasten, die Ihr programmieren möchtet, keine Maus-Taste zuweist. HOTAS Cougar Referenz - Buch 164 THRUSTMASTER 7.3 USE MICROSTICK AS MOUSE Die zweite Möglichkeit der Zuweisung der Maus auf den Microstick ist mittels des USE MICROSTICK AS MOUSE Befehls. Dieser hat den Vorteil gegenüber dem USE MTYPE Befehl, dass Ihr das Verhalten der Maus, d.h. ihre Geschwindigkeit und Beschleunigung, beeinflussen könnt. Auch dieser Befehl legt standardmäßig die linke Maus-Taste auf T1, doch dies könnt Ihr durch den - NO_BUTTON Modifizierer unterbinden. Für die meisten Flug-Simulationen werden wir natürlich die linke MausTaste auf T1 wollen. Der USE MICROSTICK AS MOUSE Befehl veranlasst den Kompilierer, entweder einen Typ 5 oder einen Typ 6 Digitale Achse Befehl zu erstellen, oder einen Typ 5, wenn ein Start-Wert angegeben wird. Und so wird er verwendet: Konfigurations-Befehle Für Typ 6 Befehle: (ohne Angabe eines Start-Wertes) USE MICROSTICK AS MOUSE (Anzahl Schritte, Beschleunigungs-Wert) Modifizierer Für Typ 5 Befehle: (bei Angabe eines Start-Wertes) USE MICROSTICK AS MOUSE (Anzahl Schritte, Beschleunigungs-Wert, StartWert) - Modifzierier (Anmerkung: USE MICROSTICK AS MOUSE ( ) Befehle weisen die linke MausTaste der Microstick-Taste T1 zu, außer wenn der - NO_BUTTON Modifizierer angehängt wird.) wobei gilt: Anzahl Schritte: Eine Zahl zwischen 2 und 12. Diese gibt an, in wie viele Abschnitte = Schritte die Achsen des Microsticks unterteilt werden sollen. Beschleunigungs-Wert: Beschleunigungs-Wert für jeden Schritt, als Zahl zwischen 1 und 63. (Beachtet, dass die Anzahl der Schritte multipliziert mit dem Beschleunigungs-Wert weniger als 128 betragen muss. Denkt nicht mal daran, nach dem warum zu fragen!) Start-Wert: Der Start-Wert für einen Typ 5 Befehl, von dem aus die Beschleunigung anfängt. Dies ist die anfängliche Geschwindigkeit der Maus, wenn der Microstick aus seiner Mittel-Stellung heraus bewegt wird. HOTAS Cougar Referenz - Buch 165 THRUSTMASTER Modifizierer: REVERSE_UD: REVERSE_LR: NO_BUTTON: Kehrt die Microstick Y-Achse um. Kehrt die Microstick X-Achse um. Weist den Kompilierer an, nicht T1 als linke MausTaste zu verwenden. Dies erlaubt Euch, die JoystickTaste T1 durch einen BTN T1 Befehl anderweitig zu programmieren. Lasst uns direkt mal einige Beispiele ansehen. USE MICROSTICK AS MOUSE (12, 2) Dieser Konfigurations-Befehl würde die Maus dem Microstick zuweisen und T1 als die linke Maus-Taste einrichten. Schaut Euch diese beiden Befehle mal an: USE MICROSTICK AS MOUSE (6, 4) USE MICROSTICK AS MOUSE (7, 3, 2) Auch diese würden die Maus dem Microstick zuweisen und T1 als die linke Maus-Taste einrichten. Wir haben also jetzt 3 Befehle, die eindeutig voneinander verschieden sind, doch ich habe ja gerade gesagt, dass sie alle das Gleiche machen. Nun, das stimmt insofern als dass sie alle die Maus dem Microstick zuweisen, doch sie unterscheiden sich in der Art, wie sich diese Maus auf dem Microstick verhält. Das bedeutet natürlich, dass ich jetzt erst einmal erklären sollte, was die Zahlen in den Klammern genau bewirken. Also, im nächsten Abschnitt werden wir uns ganz genau damit befassen, was sie bewirken, und das wird schon etwas anstrengender werden. Hier also eine vereinfachte Erklärung für mein einfacheres Gehirn! Lasst uns mal nur die Microstick X-Achse betrachten. Was jeder USE MICROSTICK AS MOUSE Befehl macht ist, die Achse in mehrere Abschnitte zu unterteilen, wie auf dem Diagramm unten zu sehen ist. (Zur Veranschaulichung habe ich alle Abschnitte gleich groß dargestellt, obwohl das streng genommen eigentlich nicht der Fall ist – dies nur für alle Puristen unter Euch.) Der Bereich „C” repräsentiert das Zentrum der Achse, d.h. der Microstick befindet sich unberührt in seiner Mittel-Stellung. Hier wollen wir natürlich nicht, dass sich die Maus bewegt. Auf jeder Seite des Zentrums liegen die gelb dargestellten Bereiche (1), in denen die Maus anfangen soll, sich zu bewegen, wenn wir den Microstick dort hinein bewegen. Darüber hinaus gibt es noch einige weitere Regionen (2 & 3), die der Microstick „betreten“ wird, wenn wir ihn von seinem Zentrum weg bewegen. HOTAS Cougar Referenz - Buch 166 THRUSTMASTER Zurück zur Schreibweise: USE MICROSTICK AS MOUSE (Anzahl Schritte, Beschleunigungs-Wert, optionaler Start-Wert) Die Anzahl der Schritte gibt an, in wie viele Regionen die Microstick-Achse unterteilt werden soll. Dieser Wert ist nicht das Gleiche wie die Anzahl der Regionen, er ist Teil einer Gleichung, und je größer dieser Wert ist, desto größer ist die Anzahl der Regionen, in die die Achse unterteil wird. Anmerkung des Übersetzers: Schön formuliert – alles klar? Dieser Wert gibt schlicht die Anzahl der Regionen vom Zentrum aus nach außen hin an ! (siehe oben: 3, und zwar auf jeder Seite)! Der Beschleunigungs-Wert bestimmt, um wie viel die Geschwindigkeit der Maus jeweils zunimmt, wenn der Microstick in die nächste Region bewegt wird. Lasst mich das an einem Beispiel erklären, um zu zeigen, was geschieht, wenn der Microstick von seiner Mittel-Stellung aus bis ganz an seinen Anschlag bewegt wird, wobei er diese Regionen durchquert. Den Start-Wert werde ich später erklären. USE MICROSTICK AS MOUSE (4, 2) Region C: Der Microstick befindet sich in seiner Mittel-Stellung, und daher bewegt sich die Maus nicht. Region 1: Die Maus beginnt nun, sich zu bewegen, und zwar mit einer Geschwindigkeit, die sich aus dem Beschleunigungs-Wert ergibt, einer „Geschwindigkeit von 2” sozusagen. Region 2: Die Geschwindigkeit der Maus erhöht sich um den BeschleunigungsWert, so dass sie sich nun mit einer Geschwindigkeit von 4 bewegt. Region 3: Die Geschwindigkeit der Maus erhöht sich um den BeschleunigungsWert, so dass sie sich nun mit einer Geschwindigkeit von 6 bewegt. Region 4, 5, 6 usw. Je nach Anzahl der durch die Angabe der Schritte erzeugten Regionen könnt Ihr beobachten, wie die Maus immer schneller und schneller wird, wenn der Microstick durch diese Regionen bewegt wird. Wenn Ihr ihn dann durch diese Regionen wieder zurück zur Mitte bewegt, dann wird die Maus natürlich entsprechend langsamer und langsamer. HOTAS Cougar Referenz - Buch 167 THRUSTMASTER Lasst uns nun mal sehen, welchen Effekt die Angabe eines Start-Wertes hat. USE MICROSTICK AS MOUSE (4, 2, 1) Der Start-Wert bestimmt die Start-Geschwindigkeit, mit welcher sich die Maus in Region 1 bewegt. Danach wird die Geschwindigkeit wie gehabt um den Beschleunigungs-Wert erhöht oder verringert, wenn der Microstick durch die restlichen Regionen bewegt wird. Also: Region C: Der Microstick befindet sich in seiner Mittel-Stellung, und daher bewegt sich die Maus nicht. Region 1: Die Maus beginnt nun, sich zu bewegen, und zwar mit einer Geschwindigkeit, die sich aus dem Start-Wert ergibt, einer „Geschwindigkeit von 1” sozusagen. Region 2: Die Geschwindigkeit der Maus erhöht sich um den BeschleunigungsWert, so dass sie sich nun mit einer Geschwindigkeit von 3 bewegt (Start-Wert 1 + Beschleunigungs-Wert 2 = Geschwindigkeit 3). Region 3: Die Geschwindigkeit der Maus erhöht sich um den BeschleunigungsWert, so dass sie sich nun mit einer Geschwindigkeit von 5 bewegt. Region 4, 5, 6 usw. Je nach Anzahl der durch die Angabe der Schritte erzeugten Regionen könnt Ihr beobachten, wie die Maus immer schneller und schneller wird, wenn der Microstick durch diese Regionen bewegt wird. Wenn Ihr ihn dann durch diese Regionen wieder zurück zur Mitte bewegt, dann wird die Maus natürlich entsprechend langsamer und langsamer. Macht Euch keine Sorgen, wenn Ihr noch nicht alles gleich auf Anhieb versteht, ich versuche lediglich, einen generellen Überblick zu vermitteln: größere Werte führen immer zu einer schnelleren Maus. Außerdem können wir die Richtung der Maus-Bewegung durch den Microstick umkehren, wie wir das schon mit anderen Befehlen in anderen Kapiteln getan haben, nämlich folgendermaßen: USE MICROSTICK AS MOUSE (7, 3, 2) - REVERSE_UD USE MICROSTICK AS MOUSE (7, 3, 2) - REVERSE_LR Ehe ich diesen Abschnitt beende, sollte ich der Vollständigkeit halber noch die sonstigen Verwendungsmöglichkeiten dieses Befehls behandeln, nämlich die Zuweisung der Maus auf andere Achsen. HOTAS Cougar Referenz - Buch 168 THRUSTMASTER 7.3.1 Zuweisung anderer Achsen zu Maus-Achsen Nun, der USE MICROSTICK AS MOUSE Befehl ist eigentlich nur eine spezielle Variante des folgenden Befehls („speziell“ da er zusätzlich die linke Maustaste der Microstick-Taste T1 zuweist): Konfigurations-Befehle Für Typ 6 Befehle: USE Achse(n) AS Maus-Achse(n) (Anzahl Schritte, Beschleunigungs-Wert) - REVERSE_Typ Für Typ 5 Befehle: USE Achse(n) AS Maus-Achse(n) (Anzahl Schritte, Beschleunigungs-Wert, Start-Wert) - REVERSE_type wobei gilt: Achse(n) ist eine der folgenden Bezeichnungen: JOYX, JOYY (zusammen als JOYSTICK bezeichnet) THR RNG, ANT (zusammen ROTARIES bezeichnet) MIX, MIY (zusammen MICROSTICK bezeichnet) LBRK, RBRK (zusammen TOEBRAKES bezeichnet) RDDR Maus-Achse(n) ist eine der folgenden Bezeichnungen: MOUSE MOUSEX MOUSEY MOUSEZ (das Maus-Rad) Anzahl Schritte: Eine Zahl zwischen 2 und 12. Diese gibt an, in wie viele Abschnitte = Schritte die Achse unterteilt werden sollen. Beschleunigungs-Wert: Beschleunigungs-Wert für jeden Schritt, als Zahl zwischen 1 und 63. (Beachtet, dass die Anzahl der Schritte multipliziert mit dem Beschleunigungs-Wert weniger als 128 betragen muss. Denkt nicht mal daran, nach dem warum zu fragen!) Start-Wert: Der Start-Wert für einen Typ 5 Befehl, von dem aus die Beschleunigung anfängt. Dies ist die anfängliche Geschwindigkeit der Achse, wenn sie aus ihrer MittelStellung heraus bewegt wird. HOTAS Cougar Referenz - Buch 169 THRUSTMASTER REVERSE_Typ: REVERSE_UD: REVERSE_LR: REVERSE_DIR: kehrt die Richtung der Achse um: wenn eine Sammelbezeichnung von 2 Achsen angegeben ist (JOYSTICK, ROTARIES, MICROSTICK, TOEBRAKES). wenn eine Sammelbezeichnung von 2 Achsen angegeben ist, kann dies in Verbindung mit REVERSE_UD verwendet werden. kehrt eine einzelne Achse um. Kann nicht in Verbindung mit REVERSE_UD, oder REVERSE_LR verwendet werden. So können wir andere Achsen zur Steuerung der Maus-Achsen verwenden, auf genau die gleiche Weise. Hier also einige Beispiele: USE ROTARIES AS MOUSE (6, 4) USE JOYSTICK AS MOUSE (11, 2, 0) USE ANT AS MOUSEY (5, 2) - REVERSE_DIR USE JOYY AS MOUSEZ (9, 3) Das letzte Beispiel steuert das Maus-Rad mit der Joystick Y-Achse! Bisher haben wir uns also zwei Befehle angesehen, mit denen wir die MausSteuerung auf den Microstick legen können, und im letzten Teil auch auf andere Achsen. Erinnert Euch an die HÜTCHEN Programmierung, wir könnten nämlich auch die Maus-Steuerung einem Hütchen zuweisen, z.B. so: USE HAT1 AS MOUSE (2) Tatsächlich könnten wir sogar die Maus-Steuerung dem Microstick und gleichzeitig noch einem Hütchen zuweisen, wobei wir mit dem Microstick die Maus schnell zu jeder gewünschten Position bewegen und das Hütchen zur Feineinstellung dieser Position verwenden könnten! [Applaus, bitte] Ich möchte nun erklären, was genau hier vorgeht, oder vielleicht sollte ich eher sagen: wie der Kompilierer diesen Befehl verarbeitet und in was er ihn umwandelt, nämlich in einen Digitaler Typ Befehl für die Microstick-Achsen. Das wird ein wenig kompliziert zu erklären, und eben deshalb habe ich auch nicht direkt damit angefangen. Der nächste Abschnitt ist nur für bereits fortgeschrittene Anwender gedacht (glaubt mir, ich hab’ eine Ewigkeit gebraucht, das in meinen Schädel zu bekommen!). Aber wenn Ihr es erst einmal in Eure Schädel bekommen habt, dann könnt Ihr Eure eigene, maßgeschneiderte Maus-Steuerung für welche Achse auch immer programmieren, um genau das Resultat zu bekommen, welches Ihr haben möchtet. Ihr werdet dann außerdem in der Lage sein, Maus-Befehle mit anderen digitalen Befehlen zu mischen, z.B. auf dem Microstick, um z.B. ohne gedrückte Joystick-Taste S3 Euren RadarCursor zu steuern, und mit gedrückter Taste S3 Eure Maus. Pfiffig, was! HOTAS Cougar Referenz - Buch 170 THRUSTMASTER 7.4 BenutzerBenutzer-Definierte Maus & Microstick Microstick Wir haben in den vorigen Kapiteln gesehen, wie wir die Maus dem Microstick durch die USE MTYPE und USE MICROSTICK AS MOUSE Befehle zuweisen können. Was diese Befehle machen ist ziemlich einfach, nämlich den Microstick mittels digitaler Befehle programmieren. In diesem Kapitel möchte ich nun erklären, wie Ihr Eure eigenen digitalen Befehle zur Programmierung der Maus auf den Microstick oder wo anders erstellen könnt. Man kann den Microstick mittels jedes digitalen Befehls programmieren, da es sich im Grunde auch nur um Achsen handelt, die den gleichen Regeln wie alle anderen Achsen auch unterliegen. Ich werde also einfach mal mit den Typ 1 und Typ 2 Befehlen beginnen, obwohl es keinen Grund gibt, warum wir nicht auch jeden anderen der 6 digitalen Typ Befehle verwenden sollten. Lasst uns also einen Blick auf einen geeigneten Typ 1 Digitaler Befehl werfen: MIX 1 14 MSX (2+) MSX (2-) MSX (0) MIY 1 14 MSY (2-) MSY (2+) MSY (0) Nun, diese sehen wie ganz normale Typ 1 Befehle aus, außer, dass wir einige „-" und „+" Zeichen in ihnen finden. Um diese zu verstehen, werde ich Euch genau erklären, was passiert wenn wir nun den Microstick bewegen. Rufen wie uns also in Erinnerung, wie ein Typ 1 Befehl funktioniert. Wenn wir folgendes hätten: MIX 1 6 u d c dann würde die Microstick X-Achse, wenn sie von ganz links nach ganz rechts und wieder zurück bewegt würde, folgende Zeichen produzieren: uuucuuudddcddd Für unser Beispiel nehmen wir nun: MIX 1 14 MSX (2+) MSX (2-) MSX (0) Nun erhalten wir keine Zeichenfolge mehr. Die Zahlen in den Klammern geben an, wie viel zum derzeitigen Maus-Buffer hinzugezählt oder von ihm abgezogen werden soll – mit anderen Worten, um wie viel schneller oder langsamer die Maus sich bewegen soll. Angenommen, die Maus steht still und der Microstick ist zentriert. Der Wert für die Mittel-Stellung dieser Microstick-Achse wird durch den Zentrum-„Zeichen"-Teil des Digitale Achse Befehls angegeben – d.h. MSX (0). Dies weist der Maus-Steuerung eine Geschwindigkeit von Null zu, d.h. keine Bewegung auf der X-Achse. Wenn wir den Microstick nach rechts bewegen, wird die Maus beginnen, sich nach rechts mit einer „Geschwindigkeit von 2” zu bewegen, da eine positive 2 zum MausZwischenspeicher addiert wird. Bewegt den Microstick weiter nach rechts, und die Maus bewegt sich mit einer Geschwindigkeit von 4… bewegt ihn ganz nach rechts, und sie wird sich mit einer Geschwindigkeit von 14 (7 x 2) bewegen. Lasst den HOTAS Cougar Referenz - Buch 171 THRUSTMASTER Microstick wieder los und die Geschwindigkeit der Maus-Bewegung nach rechts nimmt wieder ab, da die entsprechenden Werte wieder vom Maus-Zwischenspeicher, und damit auch von der Geschwindigkeit, abgezogen werden, bis der Microstick wieder zentriert ist. Dort hört die Maus auf sich zu bewegen, da wir wieder beim Zentrums„Zeichen" des Befehls angekommen sind, d.h. MSX (0). Das gleiche geschieht aus genau den gleichen Gründen, wenn der Microstick nach oben oder unten bewegt wird. Beachtet bitte: wenn wir wollen, dass die Y-Achse des Microsticks die Maus in der gleichen Weise steuert wie ein Joystick das täte (zurückziehen und die Maus wandert hoch), dann müssten wir den Befehl entsprechend abändern: MIY 1 14 MSY (2+) MSY (2-) MSY (0) Dies funktioniert deshalb, weil eine Erhöhung des Maus-Y-Achsen Buffers (MSY) die Maus nach unten bewegt, und vice versa. Eine wichtige Regel, die es zu beachten gilt, ist die Verwendung von „+" oder „-" Zeichen innerhalb der Klammern, und der Umstand, dass sie hinter der Zahl stehen. So zeigen sie an, dass der Wert vor ihnen entweder zum Maus-Buffer der entsprechenden Maus-Achse hinzugezählt (+) oder von ihm abgezogen (-) werden soll. Das ist einfacher zu verstehen, wenn wir uns jetzt mal Typ 2 Befehle ansehen. Ich hoffe, Ihr seid dabei. Noch! Ich könnte auch Typ 2 Befehle benutzen, um die Maus auf die Microstick-Achsen zu legen: MIX 2 9 MSX(-8) MSX(-4) MSX(-2) MSX(-1) MSX(0) MSX(1) MSX(2) MSX(4) MSX(8) MIY 2 9 MSY(8) MSY(4) MSY(2) MSY(1) MSY(0) MSY(-1) MSY(-2) MSY(-4) MSY(-8) Dies sind ganz normale Digitaler Typ 2 Befehle. Sie unterteilen jede Achse in 9 gleich große Bereiche und weisen jedem die angegebenen Maus-Buffer Werte zu. Eine Bewegung des Microsticks nach rechts entlang seiner X-Achse führt also zu einer Anfangs-Bewegung mit einer Geschwindigkeit von 1, und dann einer Geschwindigkeit von 2... dann 4... und schließlich 8. Beachtet dabei die Position des „-" Zeichens. Es steht diesmal vor den Werten, was bedeutet, dass diese diesmal nicht vom MausBuffer abgezogen werden. Stattdessen geben sie den genauen (hier negativen) Wert an, der gelten soll, wenn der Microstick in diesen Bereich bewegt wird. Bezüglich der Syntax sind die folgenden Befehle genau gleich: MIX 2 7 MSX(-4) MSX(-2) MSX(-1) MSX(0) MSX(1) MSX(2) MSX(4) MIX 2 7 MSX(-4) MSX(-2) MSX(-1) MSX(0) MSX(+1) MSX(+2) MSX(+4) d.h., wenn ein „+" Zeichen fehlt, wird angenommen, dass es links des Wertes stehen würde. Im Gegensatz dazu würden die folgenden Befehle: MIX 2 7 MSX(-4) MSX(-2) MSX(-1) MSX(0) MSX(1) MSX(2) MSX(4) MIX 2 7 MSX(4-) MSX(2-) MSX(1-) MSX(0) MSX(1+) MSX(2+) MSX(4+) ganz andere Ergebnisse liefern. HOTAS Cougar Referenz - Buch 172 THRUSTMASTER Mit all dem im Hinterkopf wollen wir mal sehen, was der Kompilierer macht, wenn er einen USE MICROSTICK AS MOUSE Befehl in Eurer Joystick-Datei findet. Der Kompilierer „übersetzt“ diese Befehle in Typ 5 und Typ 6 Digitale Befehle, welche im Prinzip das gleiche wie Typ 2 und Typ 1 Befehle sind, nur dass wir hier die Größe der Regionen angeben können. Wir erinnern uns an die Syntax dieses Befehls: USE MICROSTICK AS MOUSE (Anzahl Schritte, Beschleunigungs-Wert, optionaler StartWert) Ich habe zuvor gesagt, dass die Anzahl der Schritte benutzt wird, um die Anzahl der Regionen anzugeben, in die die Achse unterteilt werden soll. Dies geschieht nach der Formel: Anzahl Regionen = (Anzahl Schritte x 2) - 1 Der Kompilierer erstellt dann diese Regionen mit unterschiedlichen Größen, wobei er eine komplizierte Formel, auf die ich nicht näher eingehen werde, benutzt, und erstellt Digitale Typ 6 Befehle, wenn kein Start-Wert angegeben wird. Typ 6 Digitaler Befehl USE MICROSTICK AS MOUSE (2, 2) MIX 6 3 (2 24 75 98) MSX(2+) MSX(2-) ^ MIY 6 3 (2 24 75 98) MSY(2-) MSY(2+) ^ BTN T1 /H MOUSE_LB Rem Halte die linke Maus-Taste wenn T1 gedrückt wird Nun, etwas haben wir hier anders gemacht. Ich habe kein MSX(0) und MSY(0) für die Mitte der Achsen angegeben, wie bei: MIX 6 3 (2 24 75 98) MSX(2+) MSX(2-) MSX (0) MIY 6 3 (2 24 75 98) MSY(2-) MSY(2+) MSY(0) Lasst mich den Grund erklären, da die Angabe eines „Null”-Zeichens anstelle von MSX (0) und MSY (0) sowohl Vor- als auch Nachteile hat. Diese Typ 6 Befehle unterscheiden sich von Typ 5 Befehlen insofern, als dass sie die Werte zu den X- und Y-Werten im Maus-Buffer hinzuzählt bzw. abzieht, während Typ 5 Befehle direkt absolute Werte in den Maus-Buffer schreiben. Wenn wir MSX(0) und MSY(0) für die Mittel-Stellung angeben, dann setzen diese den Maus-Buffer auf Null zurück, so dass garantiert wird, dass die Maus an der Mittel-Position der sie kontrollierenden Achse anhält und sich nicht weiter bewegt. Im allgemeinen ist das gut so. Doch der Sinn im Gebrauch von „Null“-Zeichen für die Mitte ist der, dass wir dann die Maus zusätzlich zum Microstick noch mit einem Hütchen und/oder einer Joystick-Taste steuern können, und zwar mit absehbaren Resultaten. Ich könnte z.B. folgendes haben: USE MICROSTICK AS MOUSE (2, 2) BTN H1L MSX(1-) BTN H1R MSX(1+) HOTAS Cougar Referenz - Buch 173 THRUSTMASTER und so den Microstick zur generellen Steuerung der Maus verwenden, und hätte darüber hinaus noch Hütchen 1 links und rechts zur Fein-Kontrolle der X-Achse der Maus. Das solltet Ihr Euch merken… alles hängt nur davon ab, was Ihr mit Eurer Maus anstellen wollt. Leider gibt es keine Möglichkeit, den Kompilierer anzuweisen, MSX(0) und MSY(0) als mittlere Zeichen für einen USE MICROSTICK AS MOUSE Befehl zu verwenden. Falls Ihr so etwas möchtet, dann müsst Ihr die eigentlichen MIX und MIY Befehle verwenden, oder einen Start-Wert angeben, so dass dann ein Typ 5 Befehl erzeugt wird, der eben diese MSX(0) und MSY(0) als mittlere Werte annimmt. Lasst uns also mal sehen, was der Kompilierer mit einigen weiteren USE MICROSTICK AS MOUSE Typ 6 Befehlen macht. USE MICROSTICK AS MOUSE (3, 4) wird umgewandelt in: MIX 6 5 (2 16 32 68 84 98) MSX(4+) MSX(4-) ^ MIY 6 5 (2 16 32 68 84 98) MSY(4-) MSY(4+) ^ BTN T1 /H MOUSE_LB USE MICROSTICK AS MOUSE (4, 2) wird umgewandelt in: MIX 6 7 (2 12 23 36 65 78 89 98) MSX(2+) MSX(2-) ^ MIY 6 7 (2 12 23 36 65 78 89 98) MSY(2-) MSY(2+) ^ BTN T1 /H MOUSE_LB USE MICROSTICK AS MOUSE (12, 3) wird umgewandelt in: MIX 6 23 (2 4 6 8 11 14 17 21 25 30 36 43 58 65 71 76 80 84 87 90 93 95 97 98) MSX(3+) MSX(3-) ^ MIY 6 23 (2 4 6 8 11 14 17 21 25 30 36 43 58 65 71 76 80 84 87 90 93 95 97 98) MSY(3-) MSY(3+) ^ BTN T1 /H MOUSE_LB USE MICROSTICK AS MOUSE (4, 2) - REVERSE_UD wird umgewandelt in: MIX 6 7 (2 12 23 36 65 78 89 98) MSX(2+) MSX(2-) ^ MIY 6 7 (2 12 23 36 65 78 89 98) MSY(2+) MSY(2-) ^ BTN T1 /H MOUSE_LB HOTAS Cougar Referenz - Buch 174 THRUSTMASTER Jetzt lasst uns mal sehen, was passiert, wenn wir einen Start-Wert für den USE MICROSTICK AS MOUSE Befehl angeben. Der Kompilierer wandelt dies in einen Digitalen Typ 5 Befehl um. Typ 5 Digitaler Befehl USE MICROSTICK AS MOUSE (2, 2, 3) wird umgewandelt in: MIX 5 3 (0 24 75 100) MSX(-3) MSX(0) MSX(3) MIY 5 3 (0 24 75 100) MSY(3) MSY(0) MSY(-3) BTN T1 /H MOUSE_LB Beachtet, dass die Anzahl der Regionen, die erzeugt werden, 3 ist. Der mittlere Bereich sorgt dafür, dass die Maus stehen bleibt, und die beiden Regionen auf jeder Seite übernehmen diesen Start-Wert, so dass der Beschleunigungs-Wert in diesem Fall ignoriert wird. Jetzt vergleicht diese Funktion mit der nächsten: USE MICROSTICK AS MOUSE (3, 2, 3) wird umgewandelt in: MIX 5 5 (0 14 31 69 86 100) MSX(-5) MSX(-3) MSX(0) MSX(3) MSX(5) MIY 5 5 (0 14 31 69 86 100) MSY(5) MSY(3) MSY(0) MSY(-3) MSY(-5) BTN T1 /H MOUSE_LB Nun könnt Ihr den Zusammenhang zwischen Start-Wert und Beschleunigungs-Wert sehen. Oder falls nicht, vergleicht es mit dem folgenden Befehl, dann sollte das klar werden. USE MICROSTICK AS MOUSE (3, 8, 1) wird umgewandelt in: MIX 5 5 (0 14 31 69 86 100) MSX(-9) MSX(-1) MSX(0) MSX(1) MSX(9) MIY 5 5 (0 14 31 69 86 100) MSY(9) MSY(1) MSY(0) MSY(-1) MSY(-9) BTN T1 /H MOUSE_LB USE MICROSTICK AS MOUSE (12, 2, 3) wird umgewandelt in: MIX 5 23 (0 2 4 6 9 12 16 20 25 30 36 43 59 66 72 77 82 86 90 93 96 98 99 100) MSX(-23) MSX(-21) … MSX(-3) MSX(0) MSX(3) … MSX(21) MSX(23) MIY 5 23 (0 2 4 6 9 12 16 20 25 30 36 43 59 66 72 77 82 86 90 93 96 98 99 100) MSY(23) MSY(21) … MSY(3) MSY(0) MSY(-3) … MSY(-21) MSY(-23) BTN T1 /H MOUSE_LB HOTAS Cougar Referenz - Buch 175 THRUSTMASTER USE MICROSTICK AS MOUSE (3, 8, 1) - REVERSE_UD, REVERSE_LR wird umgewandelt in: MIX 5 5 (0 14 31 69 86 100) MSX(9) MSX(1) MSX(0) MSX(-1) MSX(-9) MIY 5 5 (0 14 31 69 86 100) MSY(-9) MSY(-1) MSY(0) MSY(1) MSY(9) BTN T1 /H MOUSE_LB Und, der Vollständigkeit halber, das gleiche für die Zuweisung anderer Achsen: USE JOYSTICK AS MOUSE (3, 2, 3) JOYX 5 5 (0 14 31 69 86 100) MSX(-5) MSX(-3) MSX(0) MSX(3) MSX(5) JOYY 5 5 (0 14 31 69 86 100) MSY(5) MSY(3) MSY(0) MSY(-3) MSY(-5) USE JOYY AS MOUSEZ (4,2) wird umgewandelt in: JOYY 6 7 (2 12 23 36 65 78 89 98) MSY(2-) MSY(2+) ^ Nun, ich hoffe, ich habe Euch das klar machen können! Also weiter im Text. HOTAS Cougar Referenz - Buch 176 THRUSTMASTER 7.5 USE ZERO_MOUSE Dieser Konfigurations-Befehl ist nützlich, um zu verhindern, dass die Maus „klemmt“, wenn Ihr Eure eigenen Maus-Befehle in Verbindung mit /I und /O Modifizierern für den Microstick verwendet. Wir haben im vorigen Kapitel gesehen, wie wir Digitale Befehle benutzen können, um unsere „eigene“ Maus auf den Microstick zu programmieren. Ein USE ZERO_MOUSE Konfigurations-Befehl kann verwendet werden, um zu verhindern, dass Ihr eine „klemmende” Maus bekommt, wenn Ihr Maus-Befehle in Verbindung mit /I und /O Modifizierern benutzt. Betrachtet einmal dieses Beispiel: MIX MIY /I 1 6 MSX(2+) MSX(2-) /O 1 6 RARROW LARROW /I 1 6 MSY(2-) MSY(2+) /O 1 6 UARROW DARROW Nach diesem Beispiel bewegt der Microstick die Maus, wenn die Joystick-Taste S3 gedrückt gehalten wird. Wenn Ihr S3 loslasst, während sich die Maus bewegt, wird diese sich weiter bewegen, und sie wird „klemmen“, wenn sie einen Rand Eures Bildschirms erreicht hat. Die Angabe des USE ZERO_MOUSE Befehls wird dies verhindern, indem sie die Maus zwingt, anzuhalten, wenn die Joystick-Taste S3 gedrückt/losgelassen wird. Es ist hier sicherlich erwähnenswert, dass diese „klemmende” Maus eigentlich kein Bug, d.h. ein Fehler des Cougars, ist. Die Steuerung der Maus durch den Microstick verhält sich genau so, wie sie laut ihrer Programmierung soll. Ihr könnt auch im obigen Beispiel eine „klemmende“ Maus immer ganz einfach verhindern, indem Ihr den Microstick erst wieder zentriert, ehe Ihr S3 loslasst. Die goldene Regel, wenn es um „klemmenden” Tasten oder Maus-Bewegungen geht, lautet hier: Ihr müsst die Joystick-Tasten, Hütchen und Achsen Eurer Controller so verwenden, wie sie durch ihre Programmierung zu benutzen gedacht sind. Dieser Befehl ist natürlich eine großartige Erleichterung für jene unter uns, die sich nie an diese Regel halten ! ! HOTAS Cougar Referenz - Buch 177 THRUSTMASTER 7.6 Programmierung der MausMaus-Tasten Ihr könnt die Maus-Tasten in Joystick-Tasten Befehlen, Achsen Befehlen … eigentlich allen möglichen Befehlen zuweisen. Hier ist ihre Syntax: Maus-Tasten Syntax: MOUSE_LB MOUSE_RB MOUSE_MB (MB = mittlere Taste auf einer 3-Tasten-Maus) Hier ist ein Beispiel: BTN T1 /I /H MOUSE_RB /O /H MOUSE_LB Mit diesem Befehl weisen wir die linke Maus-Taste der Taste T1 des Microsticks zu, wenn die Joystick-Taste S3 nicht gedrückt wird, und die rechte Maus-Taste ebenfalls, und zwar bei gedrückter Joystick-Taste S3. Ihr könnt auch KD und KU mit den Maus-Tasten verwenden: BTN S1 KD(MOUSE_LB) DLY(2000) KU (MOUSE_LB) Wenn die Joystick-Taste S1 gedrückt wird, wird die linke Maus-Taste für 2 Sekunden gedrückt und dann wieder los gelassen HOTAS Cougar Referenz - Buch 178 THRUSTMASTER 7.7 Die StandardStandard-Zuweisung der Maus auf den Microstick ausschalten Im „Präferenzen” („Vorlieben” „Defaults" (Voreinstellungen). Kompilierer anzuweisen, die übernehmen, wenn in einer vorkommt. ! ) Fenster von Foxy ist ein Reiter namens Der Zweck dieser Einstellungen ist es, den ausgewählten Einstellungen automatisch zu Joystick-Datei kein anders lautender Befehl Eine dieser Optionen ist „Weise die Maus dem Microstick zu". Wenn diese ausgewählt ist, weist der Kompilierer beim Laden einer Datei in die Controller die Maus dem Microstick zu und legt die linke Maus-Taste auf dessen Taste T1. Dies wurde so umgesetzt, da die meisten Anwender den Microstick sicherlich zur MausSteuerung benutzen werden, und zwar als Voreinstellung, auch ohne dass sie vielleicht schon bis hierher alles gelesen und verstanden haben, welche Befehle dazu nötig wären! Falls Ihr es vorziehen solltet, die Microstick-Achsen für die Zuweisung im Spiel zur Verfügung zu haben, ohne dass die Maus standardmäßig zugewiesen wird und ohne dass Ihr die Voreinstellungen in Foxy ändern müsst, dann solltet Ihr den Konfigurations-Befehl: Konfigurations-Befehl DISABLE MOUSE in Eurer Joystick-Datei verwenden. Dies wird den Kompilierer daran hindern, die erwähnten Digitalen Befehle für den Microstick zu erstellen wenn Ihr ihn in Foxy's Voreinstellungen angewiesen habt, dies standardmäßig zu tun. Ihr könnt immer noch die Maus einem Hütchen, einer Joystick-Taste oder anderen Achsen zuweisen. Denkt daran, dass die Maus-Steuerung immer vorhanden ist – Ihr müsst sie nur irgendwem zuweisen, wenn Ihr sie verwenden wollt. HOTAS Cougar Referenz - Buch 179 THRUSTMASTER 7.8 Fortgeschrittene Fortgeschrittene MausBewegungsMausBewegungs-Befehle Wir haben bereits gelernt, dass es möglich ist, die Maus mittels ProgrammierBefehlen zu bewegen. Zum Abschluss dieses Themas werden wir uns mit komplexeren Mausbewegungen befassen. 7.8.1 Angabe der Bildschirm-Aufloesung Für alle der im Folgenden erklärten Befehle gilt, dass es wesentlich für sie ist, dass Ihr die von Euch in dem entsprechenden Spiel verwendete BildschirmAuflösung angebt, und zwar mit dem Konfigurations-Befehl: Konfigurations-Befehl: USE SCREEN_RESOLUTION (X,Y) Ein Beispiel: USE SCREEN_RESOLUTION (800,600) Die niedrigsten Werte, die Ihr angeben könnt, sind 640, 480 für X bzw. Y. Technische Anmerkung: Die Werte 800 und 600 beschreiben die BildschirmAuflösung in Pixeln (Bildpunkten). Ein Pixel ist der kleinste Punkt, der auf einem Bildschirm dargestellt werden kann. In diesem Beispiel beträgt die BildschirmAuflösung also 800 Linien und 600 Spalten von Punkten. Offensichtlich ist eine Bildschirm-Auflösung von 1600 x 1200 höher, was bedeutet, dass Bilder weniger abgetreppt, also schärfer erscheinen. Danach stehen uns die folgenden Befehle für die Maus zur Verfügung: Befehle: Bewegung zu einer genauen Position auf dem Bildschirm MOUSEXY (Ursprung,X,Y) Bewegung relativ zur derzeitigen Mausposition MOUSEMOVE (X,Y) Drehbewegung / mehreckige Bewegung MOUSEROTATE (Ursprung, Mittelpunkt, Radius, Anfangswinkel, Makro1, Drehrichtung, Endwinkel, Schrittanzahl, Makro2) HOTAS Cougar Referenz - Buch 180 THRUSTMASTER 7.8.2 Bewegung zu einer genauen Position auf dem Bildschirm Befehl: MOUSEXY (Ursprung,X,Y) MOUSEXY (Ursprung,X%,Y%) wobei gilt: • • • Ursprung ist eine der Eck-Positionen des Bildschirms: UL, DL, UR, DR. X,Y sind die X- und Y-Koordinaten auf dem Bildschirm, an die sich die Maus bewegen soll. X%, Y% ist eine prozentuale Bewegung von 0 bis 100% (3 Nachkommastellen Genauigkeit) der Maus. Die Angabe prozentualer Werte erlaubt es Euch, die Bildschirmauflösung zu wechseln, ohne diese Werte ändern zu müssen. Es gibt für ein Spiel keine Möglichkeit, die derzeitige Position der Maus abzufragen oder ihre Bewegung zu verfolgen. Um also in der Lage sein zu können, sie an eine bestimmte Stelle zu bewegen, müssen wir die Maus zuerst in eine der BildschirmEcken bewegen, da wir diese Koordinaten durch den SCREEN_RESOLUTION Befehl ja kennen, und erst dann kann der Kompilierer berechnen, wohin die Maus von dort bewegt werden soll. Dies geschieht ziemlich schnell, so dass das keine Probleme verursachen sollte, doch Ihr solltet sicherstellen, dass keine der Maus-Tasten gedrückt wird, ehe dies geschehen ist. Also, der folgende Befehl: BTN H3D MOUSEXY (UL, 400, 300) wird die Maus zuerst in die linke obere Bildschirmecke bewegen, und dann an den Punkt 400, 300, d.h.. die Bildschirm-Mitte bei einer Auflösung von 800 x 600. Angenommen, Ihr müsstet F2 drücken, um die Cockpit-Ansicht zu erhalten, dann müsstet Ihr die Maus zu einem Knopf in Eurem Cockpit bewegen, die Maus-Taste drücken, und wolltet dann durch Druck auf F1 wieder geradeaus sehen. Dieser Befehl macht alles das: BTN H3D F2 MOUSEXY (UL, 400, 300) MOUSE_LB F1 Wenn wir nun diesen Befehl folgendermaßen änderten: BTN H3D F2 MOUSEXY (UL, 50%, 50%) MOUSE_LB F1 dann könnte jemand, der dieses Spiel mit einer Bildschirm-Auflösung von 1600 x 1200 spielt, die Werte des USE SCREEN_RESOLUTION Befehls dementsprechend abändern, und der obige Befehl würde genauso gut funktionieren, wie er das bei 800 x 600 tat. HOTAS Cougar Referenz - Buch 181 THRUSTMASTER ANMERKUNGEN 1. Ihr müsst einen USE SCREEN_RESOLUTION ( ) Konfigurations-Befehl angegeben haben, um diesen Befehl verwenden zu können. 2. Alle Maus-Befehle unterliegen Geschwindigkeits-Beschränkungen aufgrund des RATE Wertes. Wenn die Maus-Bewegung Euch zu langsam ist, verringert den Wert des RATE Konfigurations-Befehls. Beachtet, dass, wenn Ihr den USE RATE (nnnn) Befehl nicht in Eurer Joystick-Datei verwendet, dieser Wert auf Null gesetzt wird – ohnehin die schnellste Geschwindigkeit. 7.8.3 Bewegung der Maus relativ zu ihrer derzeitigen Position Befehl: MOUSEMOVE (X,Y) MOUSEMOVE (X%,Y%) wobei gilt: • X,Y ist die Anzahl der Pixel, um die sich die Maus, ausgehend von ihrer derzeitigen Position, bewegen soll. • X%, Y% ist eine prozentuale Bewegung zwischen 0 und 100% (3 NachkommaStellen Genauigkeit*) der Maus. Die Angabe prozentualer Werte erlaubt es Euch, die Bildschirmauflösung zu wechseln, ohne diese Werte ändern zu müssen. Im Allgemeinen wisst Ihr, wo sich die Maus gerade befindet, da Ihr zuerst einen MOUSEXY Befehl zur genauen Positionierung verwendet. Lasst uns einige Beispiele zur Verwendung des MOUSEMOVE Befehls ansehen: BTN TG1 MOUSEMOVE (20, 50) Der Abzug wird die Maus 20 Pixel nach rechts auf der horizontalen X-Achse des Bildschirms und 50 Pixel nach unten bewegen. BTN S1 MOUSEMOVE (20%, 50%) Die Joystick-Taste S1 wird die Maus um 20% der Bildschirmauflösung horizontal nach rechts und 50% senkrecht nach unten bewegen. Bei einer Auflösung von 800 x 600 bewegt sich die Maus also um 160 Pixel nach rechts (20% von 800) und 300 Pixel nach unten (50% von 600). HOTAS Cougar Referenz - Buch 182 THRUSTMASTER BTN H2R MOUSEMOVE (30, 0) Wird Hütchen 2 nach rechts gedrückt, dann bewegt sich die Maus nur 30 Pixel nach rechts, d.h. entlang einer waagerechten Linie. Wenn Ihr wollt, dass sich die Maus nach links bewegt, dann könnt Ihr ein „-“ Zeichen vor der 30 angeben. BTN H2U MOUSEMOVE (0%, -50%) Wird Hütchen 2 nach oben gedrückt, dann bewegt sich die Maus um 50% der Bildschirmauflösung senkrecht nach oben – entsprechend 300 Pixel bei einer Auflösung von 800 x 600. ANMERKUNGEN 1. Ihr müsst einen USE SCREEN_RESOLUTION ( ) Konfigurations-Befehl angegeben haben, um diesen Befehl verwenden zu können. 2. Alle Maus-Befehle unterliegen Geschwindigkeits-Beschränkungen aufgrund des RATE Wertes. Wenn die Maus-Bewegung Euch zu langsam ist, verringert den Wert des RATE Konfigurations-Befehls. Beachtet, dass, wenn Ihr den USE RATE (nnnn) Befehl nicht in Eurer Joystick-Datei verwendet, dieser Wert auf Null gesetzt wird – ohnehin die schnellste Geschwindigkeit. 3. Ihr könnt keine absoluten und prozentualen Angaben in einem Befehl zusammen verwenden. D.h.: BTN H2U MOUSEMOVE (0%, -50%) ist in Ordnung, doch: BTN H2U MOUSEMOVE (0, -50%) wird einen Kompilier-Fehler verursachen. 4. Durch einen MOUSEMOVE Befehl bewegt sich die Maus gleichzeitig entlang beider Achsen. Ein Befehl wie dieser: BTN S1 MOUSEMOVE (100, 100) wird die Maus also diagonal nach unten rechts bewegen, nicht aber erst 100 Pixel nach rechts auf der X-Achse und dann erst 100 Pixel nach unten auf der Y-Achse. * Anmerkung des Übersetzers: Das Komma ist gemäß des US-amerikanischen Standards ein Punkt, kein Komma !: 31.2% 31,2% wäre korrekt, wäre falsch! HOTAS Cougar Referenz - Buch 183 THRUSTMASTER 7.8.4 Drehung/polygonale Bewegung Befehl: MOUSEROTATE (Ursprung, Mittelpunkt, Radius, Anfangswinkel, Makro1, Drehrichtung, Endwinkel, Schrittanzahl, Makro2) Wobei gilt: • Ursprung ist eine der Bildschirm-Ecken: UL, DL, UR, DR. • Mittelpunkt ist der Mittelpunkt der Drehung als X,Y Koordinaten oder als Prozent-Wert %. • Radius ist der Radius des Kreises, der den Drehungs-Bogen definiert, in Pixel oder Prozent (aber siehe den Abschnitt Anmerkungen) • Anfangswinkel ist zwischen 0 und 360° • Makro ist ein einfaches Makro… typischerweise ein Maustasten-Druck (aber siehe die Einschränkungen im Abschnitt Anmerkungen). Verwendet ein „Null”-Zeichen, wenn Ihr kein Makro angeben wollt. Das Makro muss von eckigen Klammern [ ] eingeschlossen sein. • Drehrichtung ist CW für den Uhrzeigersinn (ClockWise) oder CCW für gegen den Uhrzeigersinn (CounterClockwise) • Endwinkel ist die Länge der Drehung als Winkel zwischen 0 und 1800° (5 komplette Umdrehungen) • Schrittanzahl gibt an, wie sauber die Drehung erscheint. Erlaubte Werte sind 1 oder 2. Diese bewirken eine Bewegung mit folgender Form: Schrittanzahl = 1: ein Quadrat (ähem... 4-Eck!), Schrittanzahl = 2: ein Oktagon (8-Eck) Je größer die Anzahl der Schritte wird, desto langsamer wird die Maus-Bewegung, auch wenn’s nicht gar so dramatisch ist. Alle Zahlenwerte sind genau bis zu einer Nachkommastelle (z.B. 244.3, 301.8) Diese Funktionalität wurde eingeführt, um dem Anwender zu erlauben, mit einem einfachen Druck auf eine Joystick-Taste seiner Controller einen Regler im Cockpit seiner Flug-Simulation zu drehen. HOTAS Cougar Referenz - Buch 184 THRUSTMASTER Lasst uns ein Beispiel ansehen, bei welchem ich einen Radio-Regler, dessen Mittelpunkt auf meinem Bildschirm bei 300, 400 liegt, in meinem Cockpit drehen möchte, und zwar mittels meiner Maus und ihrer linken Taste. # Mouse_LB Mittelpunkt z.B.. 300, 400 Drehung im Uhrzeigersinn (CW) Anfangswinkel z.B.. 30° Radius z.B. 40 Pixel Endwinkel z.B. 90° 0° Die Befehle, die ich dafür brauche, sind: USE SCREEN_RESOLUTION (1024,768 ) BTN S2 MOUSEROTATE (DL, 300, 400, 40, 30, [MOUSE_LB], CW, 90, 2) Lasst uns das Schritt für Schritt durchgehen. Die Joystick-Taste S2 wird gedrückt: 1. 2. 3. 4. 5. 6. 7. 8. 9. DL - die Maus bewegt sich sehr schnell in die untere linke Ecke des Bildschirms, den sie dann als Bezugspunkt nimmt. Erinnert Euch, dass die Maus gerade überall und nirgends auf dem Bildschirm sein kann, weshalb wir sie erst einmal in eine Ecke oder die Mitte des Bildschirms bewegen müssen, um ihre weitere Bewegung von dort ausgehend angeben zu können. 300, 400 - die Maus benutzt den Mittelpunkt des auf dem Bildschirm sichtbaren Radio-Reglers, um zu berechnen, um welchen Punkt sie gedreht werden soll. 40 – der Radius des Drehungs-Bogens. 30 – der Anfangswinkel relativ zur Senkrechten (0°) bestimmt in Kombination mit den bisherigen Informationen, wo Makro1 aktiviert wird. [MOUSE_LB] – die linke Maus-Taste wird gedrückt (und gehalten) CW – die Maus wird im Uhrzeigersinn um den Regler gedreht 90 – bis sie 90° zur Vertikalen (0°) erreicht 2 – die Bewegung folgt der Form eines Oktagons (8-Ecks). Benutzt den kleinsten Wert, um den Radio-Regler so zu drehen, wie Ihr das wollt. Der Befehl ist abgearbeitet, also wird das Makro beendet – d.h. die linke MausTaste wird losgelassen. Es ist komplex, ich weiß, aber die Beschreibung des Weges bei einer Kreisbewegung der Maus ist halt komplex! :-) HOTAS Cougar Referenz - Buch 185 THRUSTMASTER ANMERKUNGEN BEZÜGLICH DES MAKROS 1. Das Makro wird immer gehalten – als ob ein unsichtbarer /H (halten) Schrägstrich-Modifizierer am Anfang stünde. Das Makro wird automatisch unterbrochen, sobald die Mausbewegung vorbei ist. 2. Hier ist die Liste der erlaubten Tasten: • • • • • • Einfache Zeichen (a, b, 1, 2, `, usw.) SHF, ALT, CTL Zeichen (A, ALT b, usw.) DirectX und POV Tasten (DX1, POVL, usw.) MOUSE_LB / RB / MB Tasten XFlag Aktivierungen ( X1, X2, usw.) USB Tasten 3. Ihr könnt keine Schrägstrich-Modifizierer, DLY( ) oder RPT( ) im Makro verwenden. ANMERKUNGEN 1. Ihr könnt MOUSEROTATE Befehle nicht mit anderen Tasten-Drücken gruppieren, d.h. dies: BTN S2 a b DLY(30) MOUSEROTATE (blah blah) PRNTSCRN ist in Ordnung, aber: BTN S2 a b DLY(30) {MOUSEROTATE (blah blah) PRNTSCRN} führt zu einem Kompilier-Fehler. 2. Ihr müsst einen USE SCREEN_RESOLUTION ( ) Konfigurations-Befehl angegeben haben, um diesen Befehl verwenden zu können. 3. Alle Maus-Befehle unterliegen Geschwindigkeits-Beschränkungen aufgrund des RATE Wertes. Wenn die Maus-Bewegung Euch zu langsam ist, verringert den Wert des RATE Konfigurations-Befehls. Beachtet, dass, wenn Ihr den USE RATE (nnnn) Befehl nicht in Eurer Joystick-Datei verwendet, dieser Wert auf Null gesetzt wird – ohnehin die schnellste Geschwindigkeit. 4. Als Makro könnt Ihr Makro-Definitionen angeben, anstatt die Zeichen direkt in den Befehl einzusetzen. Die gebräuchlichsten Makros werden ohnehin MOUSE_LB oder MOUSE_RB (die linke und rechte Maus-Taste) sein. HOTAS Cougar Referenz - Buch 186 THRUSTMASTER 5. Tasten-Kombinationen mit SHF, CTL oder ALT (chorded keys) funktionieren nicht in einem MOUSEROTATE Befehl. Da ohnehin alles im Makro für die Maus-Drehung gruppiert ist, solltet Ihr LSHF und nicht SHF verwenden. 6. Der Radius kann entweder in Pixeln oder als % der X-Achse der BildschirmAuflösung angegeben werden. Das erscheint zunächst ein wenig seltsam, also lasst mich das erklären. Der Radius ist eine feste Länge, normalerweise in Pixeln. Angenommen, wir haben eine Bildschirmauflösung von 800 x 600, und einen Radius von 600 Pixeln (mit dem Mittelpunkt der Drehung unten auf der X-Achse). Unwahrscheinlich, aber nicht unmöglich. Also beträgt der Radius in Prozenten (600/800*100) = 75%. Wenn Ihr nun eine andere Auflösung benutzen wollt, z.B. 1024 x 768, dann wäre der Radius 75% von 1024, d.h.. 768 Pixel lang. Wenn es also möglich ist, einen Radius zu haben, der größer sein kann als die Y-Auflösung des Bildschirms, dann macht es Sinn, seine Größe, wenn man sie schon prozentual angibt, auf die X-Achse zu beziehen. Hierbei gilt es allerdings, einen wichtigen Punkt zu beachten. Das Verhältnis der X- zur Y-Achse ist hierbei kritisch. Für Auflösungen von 800 x 600, 1024 x 768, 1152 x 864, 1600 x 1200 usw. ist dieses Verhältnis konstant und liegt bei 1.333. Wenn Ihr allerdings eine Auflösung von z.B. 1280 x 1024 (Verhältnis = 1.25) verwendet, dann wird sich der Radius nicht exakt anpassen, da eben das Verhältnis verschieden ist. Das nur, damit Ihr Euch dessen bewusst seid, wenn Ihr für Eure MOUSEROTATE Befehle % Werte anstelle von Pixel-Werten angebt. 7. Dies ist ein komplexer Befehl, und daher ist die Wahrscheinlichkeit, dass Ihr einen Kompilier-Fehler verursacht, wenn Ihr einen der Teile vergesst oder ein Komma falsch setzt, ziemlich hoch! Ich empfehle Euch daher, den „Fortgeschrittene Maus-Programmierung“s-Wizard in Foxy zur Erstellung dieser Befehle zu verwenden. Zum einen war der eine ziemlich harte Nuss zu programmieren, und ich würde es wirklich begrüßen zu wissen, dass das nicht umsonst war! HOTAS Cougar Referenz - Buch 187 THRUSTMASTER 8. Logische Programmierung 8.1 Logische Programmierung - Grundlagen 8.1.1 Logische Schalter (Flags) verstehen Logische Programmierung basiert auf dem Konzept der logischen Schalter (flags). Was ist also ein logischer Schalter? Lasst uns mit einigen Fakten beginnen, die Euch total verwirren werden, um es dann plötzlich an einem einfachen Beispiel klar werden zu lassen. Hier sind also die Fakten: • • • Ein logischer Schalter kann an oder aus sein. Es gibt 32 logische Schalter, und sie heißen X1 bis X32. Ein logischer Schalter macht gar nichts. Er ist einfach nur an oder aus. Durcheinander? (Ich war’s ganz sicher, als ich anfing, darüber zu lesen!) Dann lasst uns die Caps Lock -Taste unserer Tastatur nehmen, um das Konzept der logischen Schalter zu verstehen. Lasst uns annehmen, die Caps Lock-Taste hieße X1. Wenn Ihr die Caps LockTaste drückt, geht das Caps Lock-Licht auf Eurer Tastatur an, also ist X1 an. Die Tastatur, wissend, dass X1 an ist, sendet nun ein großes „W" anstelle des normalen kleinen „w"s, wenn Ihr die Taste „w“ drückt. Wenn wir die Caps LockTaste durch nochmaliges Drücken ausschalten, dann geht das Caps Lock-Licht wieder aus, also ist X1 jetzt aus, und nun wird wieder ein „w" an den Computer gesendet. Wir könnten also sagen, dass die Caps Lock-Taste eigentlich gar nichts macht – sie schaltet lediglich X1 an oder aus, doch es ist eben dieser Umstand, dass X1 an oder aus ist, der beeinflusst, welches Zeichen von der Tastatur an den Computer gesendet wird. Und dies ist das wichtige Konzept, welches Ihr verstehen müsst. Ein logischer Schalter tut überhaupt gar nichts. Er wird halt nur an- oder ausgeschaltet. Ihr könnt nicht einmal sehen, ob er an oder aus ist. Aber Ihr könnt die Tatsache, dass er an oder aus ist, benutzen, um das Verhalten Eures Joysticks zu verändern. Was wir also mit logischer Programmierung machen, ist, dass wir programmieren, was abhängig davon, ob ein logischer Schalter an oder aus ist, passieren soll. HOTAS Cougar Referenz - Buch 188 THRUSTMASTER 8.2 Definition von logischen Schaltern und ihre Adressierung Lasst uns also damit anfangen, wie man einen logischen Schalter an oder aus schaltet. Hier ist die Syntax: Konfigurations-Befehl: DEF X1 S2 Tasten-Befehl: BTN X1 /H Fire_rockets Im obigen Beispiel haben wir einen logischen Schalter namens X1 DEFiniert, indem wir den DEF Befehl benutzt haben, und haben angegeben, dass er von der Joystick-Taste S2 gesteuert werden soll. Wenn die Joystick-Taste S2 gedrückt wird, dann ist der logische Schalter X1 an, und wenn die Joystick-Taste S2 losgelassen wird, dann ist X1 aus. Wenn ein logischer Schalter erst einmal definiert wurde, kann er mittels des normalen BTN Befehls programmiert werden. Und nach dem obigen Beispiel feuert die JoystickTaste S2 fortgesetzt Raketen ab. Das geschieht, weil Ihr gesagt habt, dass sie abgefeuert werden sollen, wenn der logische Schalter X1 an ist, und X1 bleibt solange an, wie die Joystick-Taste S2 gedrückt wird. Es ist wichtig zu beachten, dass logische Schalter-Befehle den gleichen Regeln unterliegen wie normale Joystick-Tasten Befehle, mit der Ausnahme, dass man bei ihnen keine /T Wechsel-Schalter Schrägstrich-Modifizierer verwenden kann. Sie verhalten sich also als „nichtwiederholend“, selbst wenn der logische Schalter weiterhin an bleibt, wenn Ihr nicht so etwas wie einen /H „Halten“-Modifizierer angebt, um diesen logischen Schalter an zu lassen. OK, Ihr kratzt Euch wahrscheinlich im Moment am Kopf und fragt Euch: „Und warum schreiben wir nicht einfach: BTN S2 /H Fire_rockets in unsere Joystick-Datei? Wofür brauchen wir hier logische Schalter?" diesem Beispiel habt Ihr ganz offensichtlich recht, wir brauchen keine Schalter, und beide Befehle machen das gleiche. Aber wir werden bald Beispiel kommen, welches man nicht mit der normalen Programmierung kann – ich möchte Euch im Moment nur in die Syntax einführen. Nun, bei logischen zu einem erreichen Es ist außerdem möglich, logische Schalter direkt in Digitalen Typen oder direkt in Tasten-Befehlen zu definieren:: RNG 2 5 X1 X2 X3 X4 X5 BTN H1L X8 sind gültige Befehle. HOTAS Cougar Referenz - Buch 189 THRUSTMASTER Nun gibt es einen kleinen Unterschied zwischen der Definition eines logischen Schalters durch einen Konfigurations-Befehl und seiner Aktivierung direkt auf einer Joystick-Taste. Wenn Ihr so etwas habt: DEF X20 S1 dann geht der logische Schalter X20 an und bleibt an, solange Ihr die Joystick-Taste S1 gedrückt haltet. Wenn Ihr aber so etwas habt: BTN S1 X20 (ohne einen DEF Befehl) dann verhält er sich wie eine normale Joystick-Taste, d.h. X20 wird an gehen und direkt wieder aus, selbst wenn Ihr S1 weiter gedrückt haltet. BTN S1 /H X20 wird sich genau so verhalten wie ein DEF X20 S1 Befehl. Beachtet, dass Ihr nicht erst einen logischen Schalter mittels eines DEF Befehls definieren und ihn dann noch auf einer Joystick-Taste oder in einem Achsen-Befehl haben könnt. Wie bereits erwähnt, folgt die Platzierung eines logischen Schalters und damit seine Definition den gleichen Programmier-Regeln wie der normale BTN-Befehl. Daher könnt Ihr logische Schalter auch mittels eines solchen Befehls erzeugen: BTN S1 KD(X8) DLY(2000) KD(X6) KU(X6 X8) Der Vorteil mag nicht unbedingt offensichtlich sein, doch wenn Ihr z.B. einen Vorbereitungs-Schritt, gefolgt von einem „auto-repeating“-Schritt bräuchtet, könntet Ihr das folgendermaßen erreichen: BTN X1 /A Fire_Main_Guns BTN S1 /H Switch_to_Main_Guns X1 Also, der /H Modifizierer gilt für den X1 Teil des Befehls. Der Effekt ist, dass das Makro Switch_to_Main_Guns nur einmal ausgeführt wird, doch das Fire_Main_Guns durch den logischen Schalter auto-wiederholt wird. Cool, oder? ANMERKUNGEN Seid vorsichtig, wenn Ihr den gleichen logischen Schalter sowohl durch einen DEF Befehl als auch direkt durch eine Joystick-Taste definiert. Ein Beispiel: DEF X1 S4 BTN S2 /H X1 ist effektiv das gleiche als würden wir sagen: DEF X1 S4 OR S2 so dass X1 an geht, wenn entweder S4 oder S2 gedrückt werden. HOTAS Cougar Referenz - Buch 190 THRUSTMASTER 8.3 Logische Vergleiche Vergleiche Die logischen Vergleiche bestehen aus den folgenden: AND, NOT und OR, welche auch in Verbindung mit Klammern verwendet werden können. Konfigurations-Befehle: DEF X1 S2 OR T6 DEF X2 S4 AND S3 AND H1U DEF X3 S1 AND NOT X1 Tasten-Befehl: BTN X1 Fire_missile BTN X2 Engines_off Gather_belongings Eject BTN X3 AutoPilot Lasst uns das erste Paar ansehen: DEF X1 S2 OR T6 BTN X1 Fire_missile Der logische Schalter X1 kann entweder von der Joystick-Taste S2 oder T6 an geschaltet werden. Und daher führt das Drücken der Joystick-Taste S2 oder T6 zum Abschuss einer einzelnen Rakete. Na gut, das gleiche hätten wir auch so haben können: BTN S2 Fire_missile BTN T6 Fire_missile Also betrachten wir mal eine Situation, die so nicht direkt auf eine Joystick-Taste programmiert werden kann: DEF X2 S4 AND S3 AND H1U BTN X2 Engines_off Gather_belongings Eject Nach diesem Beispiel geht X2 nur an, wenn die Joystick-Tasten S4 und S3 gedrückt werden während das Hütchen 1 nach oben gedrückt wird. Nichts, was man unbeabsichtigt tun könnte! Aber wenn Ihr das tut, dann landet Ihr buchstäblich auf dem Hintern. HOTAS Cougar Referenz - Buch 191 THRUSTMASTER Und das letzte Beispiel: DEF X1 S2 OR T6 DEF X3 S1 AND NOT X1 BTN X3 AutoPilot wir haben X3 als an definiert, wenn S2 gedrückt wird, aber nicht, wenn die Joystick-Tasten S2 oder T6 auch gedrückt werden. Also schaltet die JoystickTaste S1 den Autopiloten an, es sei denn, S2 oder T6 werden gedrückt. Beachtet, dass logische Schalter das gleiche standardmäßige nichtwiederholende Verhalten wie alle anderen Tasten auch zeigen, wenn sie direkt auf eine Joystick-Taste programmiert werden. Als abschließende Bemerkung bevor wir die logischen Vergleiche verlassen sei noch erwähnt, dass Klammern zur Zusammenfassung von logischen Befehlen verwendet werden können. DEF Befehle können aus jeder Kombination von AND, OR, und NOT Vergleichen, linken und rechten Klammern, und Bezügen auf andere Joystick-Taste oder logische Schalter bestehen, solange sie eine gültige logische Gleichung ergeben; dies z.B.: DEF X1 (S1 AND NOT S2) OR (X5 AND (H1U OR H2U)) ist durchaus gültig. HOTAS Cougar Referenz - Buch 192 THRUSTMASTER 8.4 Der Logische SchalterSchalter-Status In den bisher gezeigten Beispielen haben wir logische Schalter so definiert, dass sie an waren, wenn eine Joystick-Taste oder Kombination von Joystick-Tasten gedrückt wurde, und dass sie wieder aus gingen, wenn diese Tasten losgelassen wurden. Es ist aber auch möglich, einen logischen Schalter zu zwingen, sich ein bisschen mehr wie ein Lichtschalter zu verhalten – d.h. nach dem an Schalten an zu bleiben, auch wenn die Taste wieder losgelassen wird, und erst wieder aus geschaltet zu werden, wenn die Taste wieder gedrückt wird. Mit anderen Worten, wir schalten zwischen einem „an”- und einem „aus”-Status eines logischen Schalters um. Wir erreichen dies, indem wir ein „*" hinter einem logischen Schalter oder einer Joystick-Taste angeben. Konfigurations-Befehl: DEF X1 S4* Tasten-Befehl: BTN X1 /A Chaff DLY(30) Flare DLY(30) Wenn S4 gedrückt wird geht der logische Schalter X1 an. Er bleibt an, selbst wenn S4 wieder losgelassen wird, und zwar wegen des Schalter-Status’ * nach S4. Erst wenn die Joystick-Taste S4 wieder gedrückt wird, wird der logische Schalter wieder ausgeschaltet. Der Effekt ist dabei bei obigem Beispiel der, dass Ihr nach einem einfachen Druck auf S4 anfangt, Täuschkörper auszustoßen, während Ihr versucht, diesen SAMs und Sidewinders auszuweichen (unglücklicher Tag, schätze ich!), und erst ein erneuter Druck auf S4 beendet dieses wiederholte Ausstoßen von Chaff und Flares (falls die Euch bis dahin nicht schon längst ausgegangen sind!) ANMERKUNGEN 1. Ihr könnt Euch nicht direkt auf einer Joystick-Taste auf einen logischen SchalterStatus beziehen. Ein Beispiel: BTN T6 X1* Dies führt zu einer Fehler-Meldung. (Dieses Verhalten ist anders als bei der originalen TM F-22 PRO logischen Syntax). Logische Wechsel-Schalter sind nur in DEF Befehlen zulässig. Dies hier ginge also: DEF X1 T6* 2. Beachtet, dass anders als bei normalen Joystick-Tasten der /T SchrägstrichModifizierer bei logischen Schaltern nicht zulässig ist. Also: BTN X7 /T a /T b führt zu einem Kompilier-Fehler. Doch das hier ist zulässig:: BTN S4 /T X1 /T X2 /T X3 HOTAS Cougar Referenz - Buch 193 THRUSTMASTER 8.5 logische Verzoegerung und PULS Funktionen 8.5.1 Die DELAY (Verzoegerung) Funktion Die DELAY Funktion fügt eine bestimmte Zeit zwischen dem Zeitpunkt, an dem die logische Gleichung wahr wird, und dem Zeitpunkt, an dem der logische Schalter AN geht, ein. Die Syntax ist: Konfigurations-Befehl: DEF Xlog.Schalter Gleichung DELAY(Verzögerung_log.Schalter_AN) Logische Seht Euch einmal dieses Beispiel an: DEF X1 DELAY(1000) S1 AND S4 BTN X1 Eject Dieser Befehl sagt aus, dass X1 nach 1 Sekunde (1000 Millisekunden), die S1 und S4 gleichzeitig gedrückt wurden, an geht. Wenn eine der beiden Tasten S1 oder S4 losgelassen wird, dann wird der Verzögerungs-Zähler gestoppt. Wenn X1 noch nicht AN gegangen ist, dann bleibt er AUS, wenn er schon AN ist, dann geht er direkt wieder AUS. Die Verzögerung wird dabei zurück gesetzt, so dass beim erneuten gleichzeitigen Drücken von S1 und S4 die gesamte Verzögerung von 1 Sekunde wieder beginnt. Und in diesem Beispiel macht es sicher Sinn, sich das für den Schleudersitz zu Nutze zu machen. ANMERKUNGEN 1. Die logische DELAY-Funktion ist etwas ganz anderes als die DLY( ) Funktion. Die zulässigen Werte für die logische DELAY Funktion liegen zwischen 0 und 327670 (d.h.. 5 Stunden 46 Minuten – fragt nicht, warum!). 2. DELAY Funktionen müssen in einem logischen Ausdruck immer am Anfang stehen. D.h.: DEF X1 DELAY(1000) S1 AND S4 ist OK, aber: DEF X1 X2 AND DELAY(1000) S1 AND S4 ergibt einen Fehler. HOTAS Cougar Referenz - Buch 194 THRUSTMASTER 8.5.2 Die PULSE Funktion Die PULSE Funktion sendet eine wiederholte AN-AUS Sequenz während die logische Gleichung wahr ist. Die beiden Zahlen der Funktion geben die Zeitdauer der AN- und AUS-Periode in Millisekunden an. Hier ist die Syntax: Konfigurations-Befehl: DEF Xlog.Schalter PULSE(Zeit_AN Zeit_AUS) Logische Gleichung Ein Beispiel: DEF X1 PULSE(100 1000) H1U BTN X1 Trim_up_increase Wird das Hütchen 1 nach oben gedrückt und dort gehalten, dann geht X1 sofort AN für 1/10s, dann AUS für 1s, dann wieder AN für 1/10s, usw. Dies geht so weiter, solange H1U gehalten wird. Und in diesem Beispiel würden wir die Trimmung jeweils um 1 Schritt alle 1,1s erhöhen. Beachtet, dass es 1,1s sind. Wenn wir die Trimmung jede Sekunde erhöhen wollten, müssten wir den Befehl folgendermaßen abändern: DEF X1 PULSE(100 900) H1U Beachtet, dass ein LEERZEICHEN die beiden numerischen Werte trennen muss. Die Verwendung eines Kommas oder eines anderen Trenn-Zeichens würde zu einer Fehler-Meldung führen. ANMERKUNGEN 1. PULSE Funktionen müssen immer am Anfang einer logischen Gleichung stehen. D.h.: DEF X1 PULSE(100 1000) S1 AND TG1 DEF X1 X2 AND PULSE(100 1000) S1 ist OK, aber ist nicht zulässig. 2. Die tatsächliche Empfindlichkeit für jedes DELAY, RATE, PULSE liegt bei ca. 30ms, und der kleinste effektive Wert beträgt auch 30ms, so dass jeder Wert zwischen 1 und 30 tatsächlich als 30ms verarbeitet wird, von 31 bis 60 als 60ms, von 61 bis 90 als 90ms, usw. 3. Die zulässigen Werte für die logische PULSE Funktion liegen zwischen 0 und 82800000 (d.h. 23 Stunden). HOTAS Cougar Referenz - Buch 195 THRUSTMASTER 8.6 Logische Programmierung - Beispiele 8.6.1 Einen Typ 4 Befehl an und aus schalten Mit einem Typ 4 Digitalen Befehl können wir wiederholte, oder pulsierende, Zeichen mit dem Reichweiten-Regler produzieren: RNG 4 1000 a ^ b Hierbei ist der einzige Weg, diese Ausgabe abzustellen der, den Regler in seine MittelPosition zu drehen, wo ein „Null”-Zeichen (^), also gar nichts, generiert wird. Aber angenommen, wir würden lieber in der Lage sein wollen, durch einen Druck auf den Reichweiten-Regler, also T6, diese Funktion an und aus zu schalten. Mit logischer Programmierung ist das einfach, und zwar folgendermaßen: DEF X3 T6* DEF X4 X1 AND NOT X3 DEF X5 X2 AND NOT X3 RNG 4 1000 X1 ^ X2 BTN X4 a BTN X5 b Das ganze funktioniert folgendermaßen. Der Reichweiten-Regler produziert nun nicht mehr direkt pulsierende Zeichen, sondern stattdessen die logischen Schalter X1 und X2. Erst die logischen Schalter X4 und X5 generieren dann ein „a” oder ein „b”, aber nur, wenn der logische Schalter X3 nicht AN ist, und da die Joystick-Taste T6 den logischen Schalter X3 An und AUS schaltet, haben wir so eine Möglichkeit, die Ausgabe der vom Reichweiten-Regler produzierten Zeichen an und aus zu schalten. HOTAS Cougar Referenz - Buch 196 THRUSTMASTER 8.6.2 Eine langsame Trimm-Funktion Ehre wem Ehre gebührt: das nächste Beispiel hat Mark geschrieben! Wir gehen davon aus, dass in einer Flugsimulation die Tasten KP7 und KP1 zur Trimmung der Höhe nach oben und unten dienen. Wir werden nun für Hütchen 1 eine langsame Trimm-Funktion programmieren, so dass, wenn wir H1U drücken und loslassen alle 5s ein KP7 generiert wird, und wenn wir H1U noch einmal benutzen, dann stoppen wir diese Trimm-Funktion. Und sinngemäß das ganze auch für H1D mit KP1. Und hier ist wie: DEF X1 H1U* AND (NOT X2) DEF X2 H1D* AND (NOT X1) BTN X1 /A KP7 DLY(5000) BTN X2 /A KP1 DLY(5000) Lasst mich erklären, was hier vorgeht. Wenn Hütchen 1 nach oben gedrückt wird, dann geht X1 an und bleibt auch an, da wir es mit dem Schalter-Status (*) umgeschaltet haben. Wenn X1 an ist wenn wir seine Gleichung verarbeiten, dann bekommen wir unser KP7 alle 5s. Wenn Hütchen 1 wieder benutzt wird, dann schaltet es X1 wieder aus, eben wegen des Bezugs auf den Schalter-Status (*), und KP7 wird nicht weiter produziert. Für X2 ist es genau das selbe. Die Erwähnung von (NOT X1) gewährleistet, dass wenn Hütchen 1 nach unten gedrückt wird und daher KP1 generiert, und Ihr drückt es dann nach oben, nicht gleichzeitig KP1 und KP7 gesendet werden. Ihr findet einige von Mark Mooney geschriebene Dateien mit weiteren Beispielen logischer Programmierung in Eurem Dateien-Ordner. Anmerkung des Übersetzers: Bei diesem Thema habe ich bewusst auf Anmerkungen verzichtet (auch wenn’s schwer fiel ! ), da dies hier nicht der geeignete Rahmen wäre: dies hier ist die Übersetzung der HOTAS Cougar Handbücher – meinen eigenen Senf zum Thema logische Programmierung werde ich bei Gelegenheit an geeigneterer Stelle dazu geben... HOTAS Cougar Referenz - Buch 197 THRUSTMASTER 9. Fehlerbehebung 9.1 Zuruecksetzen der Kontroller Es gibt verschiedene, im folgenden beschriebene, Wege, mit ControllerProblemen umzugehen. 9.1.1 In einem Spiel: EMPTY_BUFFERS und STICK_OFF Es ist (unter großen Schwierigkeiten!) möglich, z.B. zu viele Kommandos gleichzeitig zu produzieren, sei es durch gleichzeitiges oder zu schnelles Drücken von zu vielen Joystick-Tasten (eher unwahrscheinlich), oder durch ein unsauber programmiertes Setup (wohl eher wahrscheinlich), und so fehlerhafte Ergebnisse zu produzieren. Dies kann dazu führen, dass der Joystick scheinbar „hängt” – die analogen Achsen funktionieren weiterhin, aber die digitalen Joystick-Tasten scheinen nicht mehr zu funktionieren. In einer solchen Situation ist es möglich, den Speicher des Joysticks zu löschen, um das Spiel weiter spielen zu können. Befehl:: EMPTY_BUFFERS Beispiel: BTN S2 EMPTY_BUFFERS Offensichtlich wird dieser Befehl wohl eher selten gebraucht werden, weshalb es Sinn machen würde, ihn mit etwas logischer Programmierung zu kombinieren, so dass eine spezielle Kombination mehrerer Joystick-Tasten nötig ist, bevor dieser Befehl aktiviert wird, so dass Versehen ausgeschlossen werden können. DEF X1 DELAY(2000) S1 AND S4 BTN X1 EMPTY_BUFFERS Nach diesem Beispiel müssten S1 und S4 gleichzeitig für mindestens 2 Sekunden gehalten werden, bevor der logische Schalter X1 an geht, welcher dann einen einzelnen EMPTY_BUFFERS Befehl an den Joystick senden würde. In ähnlicher Weise kann man auch den Joystick aus einem Spiel heraus ausschalten und alle Joystick-Tasten in den Windows-Modus zurücksetzen, indem man den STICK_OFF Befehl benutzt. HOTAS Cougar Referenz - Buch 198 THRUSTMASTER Befehl: STICK_OFF Beispiel: BTN S2 STICK_OFF Auch dieser Befehl wird wohl eher selten benutzt werden, und auch hier bietet sich eine „Kindersicherung” mittels logischer Programmierung an: DEF X1 DELAY(2000) S1 AND S4 BTN X1 STICK_OFF Nach Benutzung dieses Kommandos gibt es keine direkte Möglichkeit, den Joystick wieder AN zu schalten, daher sollte es nur im Notfall benutzt werden, wenn die Controller, aus welchen Gründen auch immer, Tastaturkommandos produzieren, die sich anders nicht stoppen lassen. In diesem Falle kann nach Benutzung dieses Befehls das Spiel verlassen werde, um den Grund für dieses Verhalten zu suchen und zu beheben. HOTAS Cougar Referenz - Buch 199 THRUSTMASTER 9.1.2 Unter Windows Wenn Ihr Euch Foxy's Cougar Menü anschaut, seht Ihr dort Menüeinträge, um verschiedene Aspekte der Controller zurückzusetzen. Hier sind also die Schritte, die Ihr in der angegebenen Reihenfolge unternehmen solltet, während Ihr versucht, Eure Fassung zu bewahren! 1. Zwischenpuffer leeren Auf genau die gleiche Weise wie zuvor könnt Ihr den Zwischenspeicher leeren, was sowohl das Programm im Speicher belässt, als auch die Controller in ihrem derzeitigen Modus. 2. Ausschalten des Programmierungs-Modus’ Es ist sehr einfach, die Controller aus Foxy heraus in den reinen Windows-Modus zu versetzen, so dass sie aufhören, die Tastatur zu emulieren, falls sie aus irgendeinem Grunde einen unablässigen Strom von Tastatur-Kommandos ausspucken. Wenn Ihr Pech habt und diese Taste z.B. die F1-Taste sein sollte, werdet Ihr die moralische Unterstützung durch die unzähligen sich öffnenden „Hilfe“-Fenster sicher zu schätzen wissen, während Ihr nach dem USB-Stecker taucht, um die Controller auszustöpseln! 3. Speicher löschen Beim Aktivieren des Windows-Modus’ wird das derzeitig geladene Programm aus dem Joystick-Speicher entfernt. 4. EPROM flashen Im Falle eines ernsthaften Problems mit den Controllern, wenn sie z.B. von Windows zwar erkannt werden, aber weder die Achsen noch die Tasten funktionieren, oder falls eine neuere Version der Firmware erhältlich ist, könnt Ihr den Firmware-Speicher jederzeit zurück-flashen oder upgraden. 5. Wendet Euch an die Technische Hilfe! Falls die Controller überhaupt nicht erkannt werden, sind entweder die WindowsTreiber nicht richtig installiert, oder es handelt sich um ein ernstes Hardware-Problem. In diesem Falle solltet Ihr Euch an die Technische Hilfe wenden um herauszufinden, ob die Controller gegebenenfalls eingeschickt und/oder umgetauscht werden müssen. HOTAS Cougar Referenz - Buch 200 THRUSTMASTER 10. Anhang Anhang 1. Zusammenfassung von TMTM-Befehlen Tasten-Befehle und -Modifikationen Befehl Entsprechung BTN Button (Taste) REM Remark (Anmerkung) RESET_TOGGLES REVERSE_TOGGLES Toggle reset (Wechselschalter zurücksetzen) Reverse toggles (Wechselschalter umkehren) DLY Delay (Verzögerung) RPT Repeat (Wiederholung) () Klammern {} Geschwungene Klammern <> Winkelklammern DX DirectX-Taste KD KU KeyDown (TasteRunter) KeyUp (TasteHoch) USB USB Tastatur-Kürzel REVERSE_UD REVERSE_LR REVERSE_DIR Reverse UpDwn / LftRgt (Umkehr der Richtung) HOTAS Cougar Referenz - Buch Beschreibung zu programmierende JoystickTaste: Hütchen H1-4, JoystickTasten S1-4 und T1 -10, Abzug TG1+2. Jeglicher Text nach einem REM wird vom Kompilierer ignoriert; benutzt für Kommentare, Titel, usw. Setzt eine Wechselschalter-Reihe auf die erste Position zurück. Kehrt die Richtung einer Wechselschalter-Reihe um. Fügt eine Verzögerung zwischen Tasten oder Makros ein.. Wiederholt eine Taste oder ein Makro. Fasst Tasten/Makros zu einer Gruppe zusammen und führt diese nacheinander komplett aus. Zusammenfassung zu einer Gruppe, die gleichzeitig ausgeführt wird. Zusammenfassung zu einer Gruppe, die zuerst komplett ausgeführt wird, bevor irgend ein anderes Makro ausgeführt wird. DirectX-Taste, welcher mittels jedes Befehls programmiert werden kann. Kürzel für das Drücken oder Loslassen einer Taste zur genaueren Kontrolle. Das gleiche als Länderunabhängige Hardware-Kürzel. Umkehrung der Richtung einer Achse oder eines Hütchens. 201 THRUSTMASTER Befehl Entsprechung NOHOLD, KP5 Wirkt sich auf USE HAT AS Befehle aus FORCED_CORNERS Eckpositionen der Hütchen S3_LOCK, S3_UNLOCK Ver-/Entriegelung von S3 SHIFTBTN Umschalt-Taste POVn, (n = D, L,R,UL, DL,UR, DR) MOUSE_LB, MOUSE_RB, MOUSE_MB Positionen des BlickpunktHütchens Linke, rechte, mittlere Maustaste Beschreibung Verhindert die fortdauernde Ausgabe für die HütchenPositionen. KP5 fügt dieses Kommando bei Verwendung von USE HAT AS KEYPAD zur Mittelposition hinzu. Erzwingt die Eckpositionen als Kombination ihrer benachbarten Hauptrichtungen; 4-wege Funktion. Ver-/entriegelt S3 Wählt eine andere Joystick-Taste als S3 zum Umschalten Ermöglicht die Programmierung des „POV“-Hütchens Erlaubt die Verwendung einer Joystick-Taste als Maustaste Schraegstrich(Slash)-Modifizierer SchrägstrichModifizierer Entsprechung /U, /M, /D Up, Middle, Down (Oben, Mitte, Unten) /I, /O In, Out /P, /R /T Press, Release (Drücken, Loslassen) Toggle (Weiter-/Wechselschaltung) Beschreibung Verdreifacht die programmierbaren Positionen aller Joystick-Tasten und Hütchen (außer T7+8) durch Verwendung des „Luftkampf”-Schalters und seiner Positionen. Verdoppelt die programmierbaren Positionen durch Verwendung von S3 (kann nicht für S3 selbst verwendet werden) Unterscheidet zwischen dem Drücken und dem Loslassen einer Joystick-Taste oder Hütchens. Schaltet mit jedem Drücken der Joystick-Taste einen Listenpunkt weiter. /H Hold (Halten) Hält die der Joystick-Taste zugewiesene Tastatur-Taste/Makro, auch wenn andere Joystick-Tasten gedrückt werden. /A Auto-Repeat (selbständige Wiederholung) Wiederholt die Taste oder das Makro solange die Joystick-Taste gedrückt bleibt. HOTAS Cougar Referenz - Buch 202 THRUSTMASTER Konfigurations-Befehle Verwendung USE MDEF USE Btn AS DXn USE ALL_DIRECTX_BUTTON USE HATn FORCED_CORNERS USE HAT AS MOUSE, POV, ARROWKEYS, KEYPAD USE RATE USE S3_LOCK USE S3_UNLOCK USE S3 AS SHIFTBTN USE HATx_SENSITIVITY USE T1_SENSITIVITY USE FOXY USE NULLCHR USE TASTATUR USE PROFILE USE CURVE DISABLE AXIS USE SWAP USE REVERSE USE AXES_CONFIG USE MTYPE USE MICROSTICK AS MOUSE NO_TASTE USE Achse AS Maus-Achse USE ZERO_MOUSE DISABLE MOUSE USE SCREEN_RESOLUTION Beschreibung Legt fest, welche Makro-Datei die Makrodefinitionen für eine Programmdatei enthält. Weist DirectX-Taste zu; ersetzt PORTB1 IS . Verwendet Hütchen 1 als POV und alle anderen Positionen entsprechend DirectX. Verwendet ein 8-wege Hütchen als 4-wege Hütchen, so dass die Eck-Positionen die Funktionen der beiden benachbarten HauptPositionen gleichzeitig produzieren Verwendet ein Hütchen anders als für die normale Programmierung durch den BTN Befehl Voreinstellung der Geschwindigkeit, mit welcher Zeichen generiert / wiederholt werden Lässt S3 mehr wie einen Kipp-Schalter funktionieren Verwendet eine andere Joystick-Taste als S3 für /I, /O Verringert die Empfindlichkeit eines Hütchens zur leichteren Anwahl der Eck-Positionen Gibt die Empfindlichkeit von T1 an Von Foxy für verschieden interne Funktionen verwendet, z.B. USE FOXY GRAPHIC USE FOXY README Gibt an, welches Zeichen als nicht zu sendendes „Null“-Zeichen verwendet wird - Standard ist ^ AZERTY - für Azerty Tastaturen und Probleme mit der Tastatur-Belegung französischer Spiele Lädt Kalibrierungs-Profil des TM Cougar Control Panel Verändert den Verlauf der Empfindlichkeits-Kurve einer Achse Schaltet eine analoge Achse aus Vertauscht analoge Achsen miteinander Kehrt die Richtung einer Achse um Gibt an, welche Achsen wie verwendet werden sollen, und ändert ihre Eigenschaften Weist die Maus-Steuerung dem Microstick zu und gibt an, welche Joystick-Taste für welche MausTaste verwendet werden soll Legt die Maus-Steuerung auf den Microstick und verwendet T1 als linke Maus-Taste (es sei denn NO_BUTTON ist angegeben) Verwendet eine Achse für eine Maus-Achse Verhindert eine „klemmende“ Maus bei /I, /O Verhindert die standardmäßige Zuweisung der Maus Wird für komplexere Maus-Bewegungen benötigt HOTAS Cougar Referenz - Buch 203 THRUSTMASTER Achsen-Programmierung Achsen-Befehl JOYX, JOYY THR RDDR ANT RNG MIX, MIY LBRK and RBRK MSX, MSY, MSZ Entsprechung Joystick X und Y Throttle Rudder Antenna knob Range knob Microstick X und Y Linke und rechte Einzelpedale Maus X, Y, Z Digitaler Typ Befehle 1 bis 6 FORCE_MAKROS Erzwinge Makros CURVE Achsen-Verlaufskurve TRIM TO_CURRENT HOLDTRIM LOCK, UNLOCK, LASTVALUE SWAP REVERSE FORWARD Achsen-Trimmung Achsen-Verriegelung Achsen-Tausch Achsen-Richtung Beschreibung Joystick Achsen Schubkontrolle Achse Ruder Achse Antennen-Regler Achse Reichweiten-Regler Achse Microstick Achsen Ruder Toe-Brake Achsen Maus Achsen - Z ist das Maus-Rad Produziert Tastatur-Zeichen/Tasten entlang einer Achse. Auch verwendet mit Maus-, VerlaufsBefehlen und logischen Schaltern. Erzwingt, dass die Zeichen/Makros von Typ 1, 2, 5, 6 Befehlen immer komplett generiert werden Achsen-Kurve – verändert ihre Empfindlichkeit und Verhalten Trimmt eine Achse auf bestimmte analoge Werte Hält einen analogen Wert, so dass die Achse rein digital verwendet werden kann vertauscht Achsen miteinander Kehrt die Richtung einer Achse um, stellt normale Orientierung wieder her fortgeschrittene Maus-Befehle Maus-Befehl MOUSEXY MOUSEMOVE MOUSEROTATE Beschreibung Positioniert den Maus-Zeiger an einer bestimmten BildschirmKoordinate Bewegt die Maus relativ zu ihrer aktuellen Position Programmiert die Maus, sich kreisförmig zu bewegen, um Cockpit-Drehregler steuern zu können HOTAS Cougar Referenz - Buch 204 THRUSTMASTER Logische Befehle Schreibweise Entsprechung DEF Definiere BTN Taste X1 to X32 AND, OR, NOT logischer Schalter logischer Vergleich * Schalter-Status DELAY Verzögerung PULSE Puls Beschreibung Definiert logische Schalter durch Gleichungen Zuweisung virtueller Joystick-Tasten für die logischen Schalter X1 bis X32 Logische Schalter sind entweder AN oder AUS. Konstruiert logische Gleichungen Schaltet einen logischen Schalter wechselweise AN und AUS Verzögert die Bedingung, unter der eine logische Gleichung WAHR=AN wird. Schaltet einen logischen Schalter wiederholt AN / AUS Hardware-Befehle Schreibweise EMPTY_BUFFERS STICK_OFF Beschreibung Leert den Zwischenspeicher des Controllers Schaltet den Controller in einem Spiel ab HOTAS Cougar Referenz - Buch 205 THRUSTMASTER Anhang 2. Thrustmaster TastaturTastatur-Schema ESC F1 ` 1 F2 F3 F4 2 3 4 5 F5 6 F6 7 F7 8 F8 F9 F10 9 0 = TAB q w e r t y u i o p [ CAPS LSHF a s d f g h j k l ; ’ LCTL z x c v b LALT n m , SPC . / RALT F11 F12 BSP ] RCTL PRNTSCRN SCRLCK BRK INS HOME PGUP NUML KP/ KP* DEL END PGDN KP7 KP8 KP9 KP4 KP5 KP6 KP1 KP2 KP3 UARROW LARROW DARROW RARROW KP0 KP. \ ENT RSHF KPKP+ KPENT ANMERKUNGEN 1. Die Syntax für Tasten-Kombinationen, bei denen man die ALT oder CTRLTaste gedrückt hält, ist SHF a, ALT b, CTL c. Es ist nicht LSHF a, LALT b LCTL c 2. Einige Tasten sind reserviert: ( ) { } < > und müssen durch die entsprechende Kombination mit „SHF“ (gemäß US-Tastaturschema) programmiert werden: ( = SHF 9 ) = SHF 0 { = SHF [ } = SHF ] < = SHF , > = SHF . HOTAS Cougar Referenz - Buch 206 THRUSTMASTER Anhang 3. USB KeyDown und KeyUp Kuerzel Beispiel: BTN S2 /P USB (D04) Rem “a” KeyDown = Taste drücken /R USB (U04) Rem “a” KeyUp = Taste loslassen Tastatur-Taste aA bB cC dD eE fF gG hH iI jJ kK lL mM nN oO pP qQ rR sS tT uU vV wW xX yY zZ 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) Eingabe (Return) Abbruch (Escape) TM Syntax a b c d e f g h I j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7 8 9 0 ENT ESC HOTAS Cougar Referenz - Buch USB HID Kürzel 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 207 THRUSTMASTER Rückschritt (Backspace) Tabulator Leertaste (Space) -_ =+ [{ ]} \| Europa 1 (siehe Anmerkungen) ;: '" `~ ,< .> /? Caps Lock F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Druck (Print Screen ) Rollen (Scroll Lock) Pause (Break (Ctrl-Pause)) Pause Einfügen (Insert) Pos 1 (Home ) Bild auf (Page Up) Entfernen (Delete) Ende (End) Bild ab (Page Down) Pfeil rechts (Right Arrow) Pfeil links (Left Arrow) Pfeil ab (Down Arrow) Pfeil auf (Up Arrow) Num Lock Ziffernblock (Keypad) / Ziffernblock (Keypad) * Ziffernblock (Keypad) - BSP TAB SPC = [ ] \ 2A 2B 2C 2D 2E 2F 30 31 32 ; ' ` , . / CAPS F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 PRNTSCRN SCRLCK BRK BRK INS HOME PGUP DEL END PGDN RARROW LARROW DARROW UARROW NUML KP/ KP* KP- HOTAS Cougar Referenz - Buch 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 208 THRUSTMASTER Ziffernblock (Keypad) + Ziffernblock Eingabe Ziffernblock 1 Ende Ziffernblock 2 Runter Ziffernblock 3 PageDn Ziffernblock 4 Links Ziffernblock 5 Ziffernblock 6 Rechts Ziffernblock 7 Pos 1 Ziffernblock 8 Hoch Ziffernblock 9 Bild auf Ziffernblock 0 Einfügen Ziffernblock . Entfernen Europa 2 (Siehe Anmerkungen) Ziffernblock = F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 Tastatur Ausführen Tastatur hilfe Tastatur Menü Tastatur Auswahl Tastatur Stop Tastatur Wiederholen Tastatur Rückgängig Tastatur Ausschneiden Tastatur Kopieren Tastatur Einfügen Tastatur Finde Tastatur Stummschaltung Tastatur Lautstärke lauter Tastatur Lautstärke leiser Tastatur Caps Lock AN Tastatur Num Lock AN Tastatur Scroll Lock AN Ziffernblock , (brasilianischer Ziffernblock .) TastaturGleich HOTAS Cougar Referenz - Buch KP+ KPENT KP1 KP2 KP3 KP4 KP5 KP6 KP7 KP8 KP9 KP0 KP. 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 209 THRUSTMASTER Tastatur International 1 (Ro) Tastatur Intl'2 (Katakana/Hiragana) Tastatur International 2 ¥ (Yen) Tastatur International 4 (Henkan) Tastatur Int'l 5 (Muhenkan) Tastatur International 6 (PC9800 Keypad , ) Tastatur International 7 Tastatur International 8 Tastatur International 9 Tastatur Sprache 1 (Hanguel/English) Tastatur Sprache 2 (Hanja) Tastatur Sprache 3 (Katakana) Tastatur Sprache 4 (Hiragana) Tastatur Sprache 5 (Zenkaku/Hankaku) Tastatur Sprache 6 Tastatur Sprache 7 Tastatur Sprache 8 Tastatur Sprache 9 Tastatur Alternativ Löschen Tastatur SysReq/Achtung Tastatur Stornieren Tastatur Leeren Tastatur Vorige Tastatur Eingabe Tastatur Trennung Tastatur Out Tastatur Oper Tastatur Clear/Again Tastatur CrSel/Props Tastatur ExSel Links Strg Links Hochstellen Links Alt Links GUI Rechts Strg Rechts Hochstellen Rechts Alt Rechts GUI HOTAS Cougar Referenz - Buch 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 LCTL LSHF LALT RCTL RSHF RALT 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 E0 E1 E2 E3 E4 E5 E6 E7 210 THRUSTMASTER ANMERUNGEN Diese Tasten haben abhängig vom Land, für welches Tastaturen hergestellt wurden, verschiedene Verwendungen. Europa 1 befindet sich üblicherweise auf der AT-101 Position 42 neben der Eingabe-Taste, Europa 2 auf Position 45, zwischen der linken Hochstell-Taste und dem Buchstaben Z. Anhang 4. Unterschiede zwischen den alten TMTM- und den neuen CougarCougar-Dateien Es gibt einige leichte (und andere nicht so leichte) Unterschiede zwischen den „originalen“ alten TM-Dateien für die digitalen Chips, F22 Pro, F16 FLCS, FCS, TQS, WCS MkII. Dieser Anhang fasst diese Unterschiede zusammen – siehe auch die Thrustmaster Dokumentation für genauere Erklärungen. 1. Aenderungen von Tasten-Bezeichnungen alte Bezeichnung LSFT RSFT AUXUAROW, UAROW AUXDAROW, DAROW AUXLAROW, LAROW AUXRAROW, RAROW AUXENT AUX/ AUXINS AUXHOME AUXPGUP AUXPGDN AUXDEL AUXEND HOTAS Cougar Referenz - Buch neue Bezeichnung LSHF RSHF PRNTSCRN UARROW DARROW LARROW RARROW KPENT KP/ INS HOME PGUP PGDN DEL END 211 THRUSTMASTER 2. Aenderungen der Schraegstrich-Modifizierer SchrägstrichModifizierer /U /M /D /I /O /P /R /T /A /H /F /Q /N Kommentar Wie zuvor Wie zuvor, allerdings müssen /I Befehle immer vor /O Befehlen stehen und zwingend in verschiedenen Zeilen stehen Wie zuvor Wie zuvor Bezeichnet jetzt die automatische Wiederholung Wie zuvor, gilt in komplexen Befehlen nur für das letzte TastaturKommando Nicht mehr unterstützt Nicht mehr unterstützt Nicht mehr unterstützt – alle Befehle ohne /H, /A Modifizierer verhalten sich standardmäßig als /N 3. nicht laenger unterstuetzte Befehle Befehl RAW ( ) BTN MT BTN T11 – T14 (nicht mehr vorhanden) USE RCS USE TQS USE WCS USE RCSPRO USE NOMAUS USE NOTHR USE MTYPE (B oder C) Kommentar Ersetzt durch USB ( ) (HID Kürzel), und die einfacher zu benutzenden KD( ) und KU( ) Kürzel Benutzt den Typ 5 Befehl stattdessen – er kann mehr! Der Microstick ist sozusagen ein 2-Achsen Joystick – kein 4-wege Schalter. Daher kann er mittels Typ 1 bis 6 Befehlen digital programmiert werden Nicht mehr benötigt Nicht mehr benötigt Nicht mehr benötigt Nicht mehr benötigt Nicht mehr benötigt Nicht mehr benötigt Diese Maus-Typen werden nicht mehr unterstützt, allerdings können 3-Tasten Maus Befehle erzeugt werden. 4. Datei-Endungen und -Namen Die Joystick-Datei muss auf „.tmj” und die Makro-Datei auf „.tmm” enden. Außerdem fallen diese Dateinamen nicht unter die DOS-Beschränkungen, dürfen also Leerzeichen enthalten und länger als 8 Zeichen sein. Allerdings müssen sich beide zusammengehörigen Dateien im gleichen Verzeichnis befinden. Als Voreinstellung ist das Foxy's „Files“-Verzeichnis. HOTAS Cougar Referenz - Buch 212 THRUSTMASTER 5. Voreinstellungen Der Kompilierer wird einige Voreinstellungen bezüglich seines Verhaltens hinsichtlich Eurer Dateien vornehmen, abhängig davon, wie Ihr Eure Vorlieben in Foxy eingestellt habt. Diese Einstellungen werden ignoriert, wenn sie entweder in Foxy ausgeschaltet werden, oder wenn in Euren Dateien gegensätzliche Angaben programmiert wurden. Diese Voreinstellungen sind: • • • • Hütchen 1 oder ein Hütchen Eurer Wahl als Blickwinkel-Hütchen (Point Of View = POV). TG1 als DX1, S2 als DX2 – d.h. als DirectX-Taste, so dass diese Taste ihre Funktion vom Spiel zugewiesen bekommt, wenn das Spiel dies unterstützt. Wenn keine USE MDEF Zeile vorhanden ist, und die Joystick-Datei Makros enthält, dann wird der Kompilierer nach einer gleichnamigen Datei mit der Endung „.tmm” suchen. Der Microstick wird die Maus-Bewegung steuern, wobei T1 auf dem Microstick als linke Maus-Taste dient. Die Gründe für diese Voreinstellungen liegen darin, es auch Anfängern zu erleichtern, in die Programmierung herein zu kommen. Wenn also ein Anwender eine Joystick-Datei hat, die lediglich folgendes enthält: BTN S1 Autopilot und eine Makro-Datei mit nichts weiter als: Autopilot = a dann kann er diese Joystick-Datei einfach laden und trotzdem wird sein Abzug funktionieren, seine Maus wird sich steuern lassen, usw. Die einzige Gefahr besteht dabei, wenn diese Dateien an jemand anderen weiter gegeben werden, der seine Voreinstellungen in Foxy geändert hat, z.B. dahingehend, dass eine Fehler-Meldung ausgegeben wird, wenn keine USE MDEF Zeile gefunden wird – diese Dateien werden dann so nicht bei diesem Anwender funktionieren. HOTAS Cougar Referenz - Buch 213 THRUSTMASTER 6. Digitale und analoge Achsen In den originalen TM Dateien konnte eine Achse entweder digital programmiert werden, so dass sie Tastatur-Tasten/-Zeichen produzierte, oder im standardmäßigen analogen Zustand belassen werden, in welchem ihre Funktion vom Spiel zugewiesen wurde (z.B. Schubkontroll-Achse = Schub in einer FlugSimulation). Mit dem HOTAS Cougar können Achsen gleichzeitig sowohl analog als auch digital benutzt werden, wenn das gewünscht wird. Um eine Achse als reine digitale Achse zu verwenden, muss ihre analoge Funktion durch den DISABLE Befehl ausgeschaltet werden. Beachtet auch, dass Ihr beim Cougar nichts mehr in den Spiele-Optionen der Systemsteuerung ändern müsst, um eine Achse nur digital zu verwenden, wie das bei den original TM Controllern erforderlich war. 7. Typ 1 Digitale Befehle Die Syntax für diese ist leicht geändert worden – siehe den entsprechenden Abschnitt im Referenz-Buch. 8. Schubkontrolle nicht angeschlossen Wenn Ihr eine Datei für Joystick und Schubkontrolle habt, und die Schubkontrolle ist nicht angeschlossen, dann wird von /U, /M, /D Befehlen nur der /M Befehl kompiliert – /U, /D werden ignoriert. Achsen-Befehle für die Schubkontrolle werden ebenfalls ignoriert. 9. Makros – nicht zulaessige Zeichen Ihr könnt keine der folgenden Zeichen in Makronamen verwenden: = < > { } ( ) ^ , Leerzeichen HOTAS Cougar Referenz - Buch 214 THRUSTMASTER 10. RPT Mit einem solchen Makro: Makro1 = a b c und einem Befehl wie diesem: BTN S2 RPT (3) Makro1 ergibt ein Druck auf S2: aaabc Um dies zu verhindern, kann man entweder das Makro oder die TastaturKommandos dieses Makros in Klammern setzen, d.h.: BTN S2 RPT (3) (Makro1) oder BTN S2 RPT (3) Makro1 mit: Makro1 = (a b c) 11. Das // Kommentar-Zeichen Mit den digitalen Chips konnte man // alternativ zum REM-Befehl verwenden. Dies wird in Foxy nicht unterstützt. HOTAS Cougar Referenz - Buch 215