Bedienungsanleitung des Wacom - Grafiktabletttreibers für den Amiga Zusammenfassung Das Programm erlaubt es ein drucksensitives Grafiktablett der Firma Wacom am Amiga zu betreiben. Das Tablett kann dann zusammen mit der Maus (oder auch ohne sie) als direktes Eingabegerät benutzt werden. Dadurch ist der Tabletttreiber zu (fast) jeder Software kompatibel. Die (drucksensitiven) Daten werden darüberhinaus über allgemein zu- gängliche und dokumentierte Schnittstellen anderen Programmen zur Ver- fügung gestellt. Ab AmigaOS 3.0 werden die Stiftdaten auch direkt von Intuition ausgewertet und jedem Fenster zur Verfügung gestellt. (c) 1993-1996 Roland Schwingel 1. Einleitung und Rechtliches Das Programm erlaubt es ein drucksensitives Grafiktablett der Firma Wacom am Amiga zu betreiben. Der Amigamauszeiger wird durch das Pro- gramm gesteuert um eine Kompatiblität zu (fast) jeder Software zu erreichen. Das Grafiktablett kann sowohl im drucksensitiven als auch im "normalen" Modus betrieben werden. Sowohl die drucksensitiven Daten als auch allgemeine Daten wie z.B.: die aktuelle Koordinate auf dem Grafiktablett werden über eine allgemein zugängliche Schnittstelle anderen Programmen zur Verfügung gestellt. Ab AmigaOS 3.0 werden die Andruckdaten auch direkt von Intuition ausgewertet und jedem Fenster zur Verfügung gestellt. 1.1 Rechtliches Der Wacom Treiber ist Shareware. Wenn sie das Programm nutzen wollen, sollten sie nach einer gewissen Prüfungs- und Testphase (ca. 14 Tage) die Sharewaregebühr (25.00DM oder mehr) zusammen mit dem ausgefüllten Registrationsformular dem Autor zusenden. Sie helfen so mit, gute Software für den Amiga zu entwickeln. Die hier vorliegende Programmversion ist in keinster Weise eingeschränkt. Die Programme im Ordner Develop sind nicht Shareware. Sie dienen als Bei- spielprogramme für den Datenaustausch mit eigenen selbstgeschriebenen Applikationen. Sie sind zusammen mit ihrem Sourcecode Freeware. Die Software und alle hier angebenen Verfahren wurden unter bestem Wissen und Gewissen sowie unter Beachtung der Amiga Entwicklungs- vorschriften entwickelt. Das Paket wurde ausgiebig getestet und für fehlerfrei befunden. Da jedoch niemand vor Fehlern geschützt ist MUSS ich die folgenden Zeilen schreiben. Lesen sie sie bitte genau durch. +------------------------------------------------------------+ | ACHTUNG: | | | | SIE BENUTZEN DEN WACOM-TREIBER NUR AUF EIGENE GEFAHR. DER | | AUTOR KANN IN KEINSTER WEISE FUR ETWAIGE SCHäDEN AN IHRER | | HARD- ODER SOFTWARE ODER SONSTIGEN SCHäDEN DIE DURCH DIE | | BENUTZUNG DER SOFTWARE ODER SEINER DOKUMENTATION ENTSTEHEN | | HAFTBAR GEMACHT WERDEN. ES GIBT KEINERLEI GARANTIE AUF | | DIESES PROGRAMMPAKET ! | +------------------------------------------------------------+ Das Programm darf jederzeit an Dritte unter folgenden Voraussetzungen weitergegeben werden: o Das Programmpaket darf nur vollständig und in unveränderter Form weitergegeben werden. Es dürfen weder Dateien gelöscht noch ver- ändert oder hinzugefügt werden. Eine Komprimierung des Pakets mit einem Packprogramm ist solange erlaubt wie dadurch keine Informationen verloren gehen. o Das Programmpaket darf auf keiner PD-Diskette enthalten sein die mehr als 5DM kostet. Eine Ausnahme sind hier PD-CD-ROMs. o Eine kommerzielle Vermarktung des Programms ist nur mit ausdrück- licher Genehmigung des Autors gestattet. Die Firma Wacom hat die Genehmigung dieses Treiberprogramm ihren Grafiktabletts beizulegen. Das entbindet aber den Käufer des Tabletts nicht davon die Share- waregebühr zu bezahlen. 1.2 Registrierung und Adresse des Autors Wenn sie das Programm brauchen können, so müssen sie sich regis- trieren lassen. Die Sharewaregebühr beträgt 25.00DM oder 20.00 US$. Bitte nach Möglichkeit keine anderen Währungen. Wenn sie das Geld überweisen wollen, so sollten sie unbedingt auf dem Überweiungsfor- mular im Feld "Verwendungszweck" ihren vollständige Anschrift ein- tragen. Im gleichen Verzeichnis wie diese Dokumentation befindet sich ein Vordruck des Registrationsformulars mit dem Namen "Register-D.Txt". Drucken sie diesen bitte aus, füllen sie ihn aus und schicken sie ihn zusammen mit der Sharewaregebühr an: Roland Schwingel Lilienthalstrasse 9 92421 Schwandorf GERMANY Wenn noch irgendwelche Fragen oder Probleme mit der Software bestehen, können sie den Autor auch über Email oder Telefon erreichen: Email: roland.schwingel@extern.uni-regensburg.de Telefon: +49-(0)9431-5779 1.3 Updates Die Sharewaregebühr beeinhaltet auch den Versand der aktuellen Version auf Diskette. Ist jedoch eine neue Version kurz vor der Vollendung warte ich mit dem Versand, bis die neue Version fertig ist. Updates werden auch kostenlos via Email versandt. Wird ein Update via Diskette gewünscht so wird dies auch gegen Erstattung der Unkosten für Porto, Verpackung etc. erledigt. Senden sie hierfür 10DM (oder US$8) an oben genannte Adresse. Die jeweils aktuelle Version befindet sich auch auf diversen Aminet- FTP-Servern und wird auch auf PD-Diskettenserien veröffentlicht. 2. Systemanforderungen und Installation 2.1 Systemanforderungen Der Wacom-Treiber benötigt zum Betrieb mindestens Kickstart und Work- bench 2.04. Dem Paket liegt ausserdem ein deutsches Katalogfile bei, mit dessen Hilfe sie ab Workbench 2.1 sämtliche Programmtexte statt in Englisch in Deutsch erhalten. Natürlich wird auch noch ein Wacom- tablett benötigt. Folgende Tabletts werden unterstützt: o SD-013 o SD-113 o SD-210 o SD-310 SD-311 SD-312 o SD-320 SD-321 SD-322 o SD-420 SD-421 SD-422 o SD-510 o Alle Tabletts der UD-Serie z.B.: ArtZ, UD-1212, ... o Alle Tabletts der KT-Serei z.B.: ArtPad Das Grafiktablett sollte so konfiguriert sein, wie es von Wacom geliefert wird. Der Grafiktabletttreiber läuft mit jeder Prozessorversion. Allerdings wird ein etwas schnellerer Prozessor empfohlen, da unter 68000 Be- dingungen der Mauszeiger etwas träge reagiert. Speicher wird nur sehr wenig durch den Treiber belegt (ca. 48KB), er kann also zusammen mit jedem anderen Programm benutzt werden. Lediglich manche Mausbe- schleuniger und automatische Fensteraktivierungsprogramme reagieren teilweise etwas "merkwürdig". Sollten sie also Probleme beim Posi- tionieren der Maus haben schalten sie also bitte diese Programme aus. 2.2 Installation Die Installation gestaltet sich äussert einfach. Das Treiberprogramm sollte am besten zusammen mit seinem Icon in den WBStartup-Ordner der Bootpartition ihrer Festplatte (oder in den WBStartup-Ordner im Root- verzeichnis ihrer Bootdiskette) kopiert werden. Dort wird er dann automatisch beim Booten aktiviert. Der absolute Pfad für die Installation des Grafiktabletttreibers lautet also: SYS:WBStartup Haben sie bereits Workbench 2.1 oder 3.x installiert, so können sie, falls ihre auf der Workbench eingestellte Sprache "Deutsch" ist, noch das deutsche Katalogfile des Trei berprogramms installieren indem sie catalogs/deutsch/Wacom.catalog nach LOCALE:catalogs/deutsch/Wacom.catalog kopieren. Um die Installation zu erleichtern liegt ein SHELL-Skript bei, welches diese Installationsarbeiten übernimmt. Einfach "Install" vom Shell oder von der WB aus starten. Das Grafiktablett wird am seriellen Port des Amigas angeschlossen. Wenn sie ein Multi-IO Board mit seriellen Ports haben können sie das Tablett auch dort anschliessen. Eine Kabelbelegung für den Anschluss des Tabletts am normalen seriellen Port des Amigas befindet sich in Form einer IFF-Datei mit dem Namen "Wacom-SD.ilbm" im gleichen Ver- zeichnis wie diese Anleitung, falls sie kein passendes Kabel haben. Das Schaltbild zeigt den Anschluss eines SD-Tabletts an einen A500/2000. Der Anschluss an einen A3000/A4000/A600/A1200 sollte mit dem gleichen Kabel ebenfalls möglich sein. Lediglich A1000-Besitzer müssen sich ein etwas anderes Kabel basteln, da die Belegung des seriellen Ports dieses Rechners (leider) etwas anders ist. Man kann sich jedoch am Schaltplan orientieren. Falls sie ein UD- oder KT-Tablett verwenden, müssen sie das mitgelieferte Kabel verwenden, da die Stromversorgung nun ebenfalls über dieses Kabel erfolgt. 3. Bedienung und Konfiguration des Treibers Der Wacom-Treiber ist ein sog. Commodity. Commodities klinken sich in den Eingabedatenstrom des Amiga ein und senden bzw. filtern Eingabe- daten. Ein Commodity ist also für den Zweck eines Grafiktablett- treibers hervorragend geeignet. Das Treiberprogramm ist als Programm für den WBStartup-Ordner der WB (WB = Workbench) entwickelt worden. Dort wird es automatisch beim Laden der Workbench gestartet. Das Programm kann auch nur einmal ge- startet werden. Wird es ein zweitesmal gestartet und das erste Pro- gramm befindet sich noch aktiv im Speicher, so wird das Kon- figurationsfenster des ersten Programms geöffnet und das Zweite sofort beendet. Es kann jedoch auch von jedem anderen Ordner aus sowohl von der Shell als auch von der WB aus gestartet werden. Das Programm nimmt beim Start eine Reihe von Parametern entgegen. Diese können sowohl von der WB als auch von der Shell aus übergeben werden. Beim Start von der WB aus werden die sog. TOOLTYPES verwendet. Diese Tooltypes werden im Icon des Programms gespeichert. 3.1 Die Icon Tooltypes Im Regelfall braucht man die Tooltypes des Wacom-Treibers nicht von Hand zu editieren, da das Programm seine Einstellungen automatisch in den Tooltypes speichert (doch dazu später mehr). Es werden folgende Tooltypes erkannt: CX_PRIORITY (Default: 0) Die Priorität des Wacom-Commodities. Die Voreingestellte Priorität von 0 sollte für alle Anwendungen passen. CX_POPUP (Default: YES) Ist dieses Tooltype auf yes so wird das Fenster des Commodities beim Start des Programms geöffnet und man kann den Treiber bequem vor der Ini- tialisierung konfigurieren. Ist das Tooltype auf no, so wird der Treiber direkt gestartet und das Tablett mit den gespeicherten Voreinstellungen aktiviert. Das Konfigurationsfenster lässt sich bei akiviertem Treiber jederzeit bequem per Tastendruck öffnen. Doch dazu später mehr. CX_POPKEY (Default: lalt w) Hier wird die Tastenkombination gespeichert mit der man das Konfigurationsfenster bei aktiviertem Commodity jederzeit öffnen kann. Voreingestellt ist die linke Alt-Taste zusammen mit der Taste w. APPICON (Default: NO) Das Konfigurationsfenster kann jedoch auch bei deaktiviertem Commodity geöffnet werden. Setzt man APPICON = yes, so wird auf der Workbench ein Icon erzeugt, das bei Doppelklick das Konfi- gurationsfenster öffnet. APPMENU (Default: NO) Im Tools-Menü der Workbench wird ein Eintrag erzeugt, der es bei Anwahl ebenfalls er- möglicht das Fenster des Treibers zu öffnen. BEEPER (Default: OFF) Gibt an ob der Tablettsummer^1 bei Druck auf eine Taste eines Tabletteingabegeräts kurz eingeschaltet werden soll oder nicht. MODE (Default: NORMAL) Einstellung ob das Tablett im An- druck Modus oder im "normalen" Modus betrieben wird. Bei MODE= pressure wird der Andruckmodus gewählt. Es kann dann der sog. "pressure Stylus" verwendet werden. Bei MODE = normal können der "standard Stylus" oder die Lupe zur Eingabe benutzt werden. Dieses Tooltype ist nur von Bedeutung bei SD- Tabletts und bei UD-Tabletts die mit den Wacom II-S Kommandos betrieben werden. LMB_EMULATION (Default: OFF) Wenn das Tablett im Andruckmodus be- trieben wird, wird kein Tastenstatus sondern nur der Andruck der Tabletteingabegeräte übermittelt. Es ist deshalb normalerweise nicht möglich irgendwelche Gadgets oder Icons zu bedienen. Das Treiberprogramm ist jedoch in der Lage ab einem bestimmten Andruck des Stifts einen Druck auf die linke Maustaste zu emulieren. Dazu muss dieses Tooltype auf on gesetzt werden. Nur relevant wenn MODE = pressure ist und Wacom II-S Kommandos benutzt werden. LMB_LIMIT (Default: 15) Die Andruckschwelle des Stiftes ab der ein Druck auf die linke Maustaste emuliert werden soll. Nur relevant wenn MODE = pressure und LMB_EMULATION = on sind und Wacom II-S Kommandos be- nutzt werden. Der Wertebereich liegt zwischen -30 und +30. DEVICE (Default: serial.device) Hier steht der Name des Systemgerätetreibers über den der Wacom-Treiber mit dem Tablett kommuniziert. Wenn sie das Grafiktablett an ein MultiIO-Board angeschlossen haben, müssen sie hier den Namen des Gerätetreiber des MultiIO-Boards eintragen. Haben sie das Tablett am normalen seriellen Port des Amigas angeschlossen muss hier "serial.device" stehen. (Siehe dazu auch die Do- kumentation ihres MultiIO-Boards) UNIT (Default: 0) Der hier voreingestellte Wert von 0 braucht auch nur geändert zu werden, wenn das Grafiktablett an ein MultiIO-Board angeschlossen wird. Es muss dann hier die Nummer des seriellen Ports des MultiIO-Boards eingetragen werden. (Siehe dazu auch die Dokumentation ihres MultiIO-Boards) MOUSE (Default: FULL) Dieses Treiberprogramm ermöglicht es ja den Mauszeiger mit Hilfe des Tabletts zu steuern. Mit diesem Tooltype kann eingestellt werden welche Teile der Maus emuliert werden. Es gibt 3 Ein- stellungen: +-----------+--------------------------------------+ | FULL | Es werden der Mauszeiger und die bei-| | | den Maustasten durch das Programm ge-| | | setzt. | +-----------+--------------------------------------+ | POINTER | Es wird nur der Mauszeiger pos- | | | itioniert. | +-----------+--------------------------------------+ | NONE | Die Maus wird überhaupt nicht | | | emuliert. Die Tablettdaten gehen nur | | | an das Softwareinterface. | +-----------+--------------------------------------+ COMMANDSET (Default: WACOM_IV) Legt fest welche Kommandos zur Kommunikation mit dem Tablett benutzt werden. Man kann zwischen WACOM_IV und WACOM_II-S wählen^2. AREA (Default: BLANK) Dieses Tooltype dient zur Definition des Arbeitsbereiches auf dem Tablett. +-----------+--------------------------------------+ | FULL | Es steht die gesamte Arbeitsfläche | | | des Tabletts zur Dateneingabe zur | | | Verfügung. | +-----------+--------------------------------------+ | BLANK | Das gleiche wie bei FULL nur dass ein| | | Rand von 4 Millimetern gelassen wird.| | | Es ist so einfacher möglich die Rän- | | | der eines Bildschirmes anzufahren. | | | Ebenso ist ein Rand nötig um das | | | Scrollen von sog. Autoscroll-Screens | | | zu ermöglichen. | +-----------+--------------------------------------+ | CUSTOM | Es wird ein selbstdefinierter Bereich| | | als Arbeitsfläche benutzt. | | | Siehe auch CUSTOM_AREA-Tooltypes. | +-----------+--------------------------------------+ MULTIMODE (Default: OFF) Es ist mit Hilfe der Wacom IV-Komman- dos möglich 2 Eingabegeräte^3 gleichzeitig zu ver- wenden. Mit diesem Tooltype kann der Multimode ein bzw. ausgeschaltet werden. Voraussetzung ist, dass das Tablett mit Wacom IV Kommandos betrieben wird. MULTI_MOUSE (Default: PEN) Da im Multimode 2 Geräte gleichzeitig benutzt werden können muss hier festgelegt werden, welches der beiden Geräte als Maus verwendet werden soll. Entweder Stift (PEN) oder Lupe (DIGITIZER). Dies wirkt natürlich nur, wenn die Mausemulation eingeschaltet ist. CUSTOM_AREA_LEFT (Default: 0) CUSTOM_AREA_TOP (Default: 0) CUSTOM_AREA_RIGHT (Default: 15239) CUSTOM_AREA_BOTTOM (Default: 15239) Mit Hilfe dieser 4 Tooltypes werden die Grenzen des selbstdefinierten Arbeitsbe- reichs beschrieben. Alles was innerhalb dieser Grenzen liegt wird als Arbeitsbereich benutzt. Der Rest wird ignoriert. Dieser Bereich wird nur benutzt, wenn AREA = CUSTOM. Der Bereich muss mindestens 1000 auf 1000 Punkte gross sein. INPUT_EVENT (Default: TABLET) Legt fest welche Inputevents^4 zum Positionieren des Mauszeigers benutzt werden. Das Programm bietet hier zwei Möglichkeiten an: Zum einen TABLET. Hier werden die Daten über eine Inputeventsubklasse als eine Eingabe von einem Grafiktablett ans Betriebssystem geschickt. Dies ermöglicht auch die übergabe eines Andrucks. Unter AmigaOS 2.0 ist diese Schnittstelle noch nicht vollständig ausgereift. Dieses Verfahren ist relativ langsam und der Andruck wird auch nicht vom Betriebs- system ausgewertet. Ausserdem gibt es Probleme bei Autoscroll-Screens. Ab AmigaOS 3.0 gibt es eine andere, bessere Tablett- schnittstelle, die alle oben erwähnten Nachteile be- seitigt. Tablettdaten wie der Andruck werden vom Betriebssystem angenommen und an alle Intuition- fenster weitergegeben. Eine Applikation muss dann nur noch die Daten auswerten. Je nachdem welcher AmigaOS Version sie benutzen wird automatisch die richtige Version verwendet. Die andere Möglichkeit bei diesem Tooltype ist PIXEL. Hier werden die Daten eher in Form von Mausdaten an das Betriebssystem übergeben. Dies ist prinzipiell schneller, macht aber Probleme beim Ziehen von Screens und erfordert eine Umrechnung von Tablett- koordinaten auf Bildschirmkoordinaten innerhalb des Treibers. Ausserdem kann kein Andruck übergeben werden. Sie sollten es einfach einmal ausprobieren welche Einstellung ihnen besser gefällt. Mögliche Werte sind TABLET und PIXEL. DONOTWAIT Dieses Tooltype wird nicht vom Treiberprogramm son- dern von der WB ausgewertet. Es wird beim Start vom WBStartup Ordner aus benötigt. Der Wacom Treiber setzt es automatisch. Noch einmal sei erwähnt, dass die Tooltypes normalerweise nicht von Hand verändert werden müssen. Alle Einstellungen können auch von den Fenstern des Commodities aus gemacht werden. Das Programm spei- chert dann ihre Einstellungen automatisch hier in den Tooltypes ab. _______________________________ ^1: Der Tablettsummer exisitiert nur bei Tabletts der SD-Serie. ^2: Aber Achtung: SD-Tabletts können kein Wacom IV. ^3: Stift und Lupe. Es müssen 2 verschiedene Eingabegeräte sein. ^4: Inputevents: Codefolgen die für alle Eingaben (z.B.: Maus, Tas- tatur) an das Betriebssystem (genauer gesagt "input.device") gesendet werden um die eigentliche Aktion auszulösen. 3.2 Start von der Shell Beim Start von der Shell aus werden die Icon Tooltypes nicht ausge- wertet. Man muss hier vielmehr die Parameter in der Kommandozeile übergeben. Stimmt ein Parameter mit dem Defaultwert (siehe oben) überein, so braucht er nicht mit angegeben zu werden. Beipiel für den Aufruf: Wacom MOUSE=POINTER 3.3 Unterschiede zwischen den Grafiktabletts Der Wacom Treiber unterstützt drei verschiedene Arten von Tablett- typen. Zum einen die Tabletts der SD-Serie und zum anderen die Tabletts der UD- und KT-Serie. Die Letzteren können prinzipiell alles was die SD- Serie Tabletts auch können. Einzige Ausnahmen sind hier der Tablett- summer und der Resettaster. Die Tabletts der UD-Serie verfügen über keinen Tablettsummer. Auch haben sie keinen eigenen Resettaster^5. _______________________________ ^5: Ist auch nicht unbendingt nötig, da UD-Tabletts über die Menü- leiste konfiguriert werden können. Dabei wird dann bei Bedarf eine Art Reset ausgelöst. 3.3.1 Tabletts der Wacom-SD Serie Die Tabletts der SD-Serie unterscheiden 3 verschiedene Arten von Ein- gabegeräten: o Standard Stylus: Dieser Stift verfügt über 2 Schalter (einen in der Spitze und einen an der Seite) und dient im wesentlichen zum Zeich- nen. Er übermittelt keinen Andruck. o Pressure Stylus: Dieser Stift hat eigentlich keinen Schalter sondern nur eine federnde Spitze mit der Andruckdaten übermittelt werden können. o Fadenkreuz-Lupe: Gedacht zum Digitalisieren von Vorlagen. Sie hat 4 Tasten und übermittelt logischerweise keine Andruckdaten. Die Tabletts der SD-Serie verfügen neben Tablettemulationen anderer Hersteller nur über den Wacom II-S Befehlssatz. 3.3.2 Tabletts der Wacom-UD Serie Die Tabletts der UD-Serie unterscheiden nur 2 Arten von Eingabege- räten: o Stylus: Dieser Stift verfügt über zwei Schalter (wiederum einen in der Spitze und einen an der Seite). Der Spitzenschalter übermit- telt auch Andruckdaten, es wird also kein spezieller Andruckstift benötigt. Seit kurzer Zeit gibt es auch andere Stifte mit unterschiedlicher Anzahl von Tasten und unterschiedlicher Charakteristik. o Fadenkreuz-Lupe: Es gibt zwei verschiedene Typen. Eine mit 4 Tasten und eine mit 16 Tasten. Auch hier können keine Andruckdaten übermit- telt werden. Neben Tablettemulationen können der Wacom II-S und der Wacom IV Be- fehlssatz verwendet werden. Der Wacom IV Befehlssatz hat zusammen mit den UD-Tabletts einige signifikante Verbesserungen: o Größerer Andruckbereich: Bei Wacom II-S gibt es 60 Andruckstufen, bei Wacom IV sind es 120 bzw. 256^6 Stufen die beim Andruck unter- schieden werden. o Multimode: Es besteht die Möglichkeit 2 (verschiedene) Eingabegeräte gleichzeitig zu betreiben. o Macrokeys: Die UD-Tabletts verfügen über ogenannte "Makrotasten" ausserhalb der Arbeitsfläche. Sie können mit eigenen Funktionen be- legt werden. o Die Andruckcharacteristik kann geändert werden^7. o Ab Tablettromversion 1.4 wird auch Stiftneigung zur Verfügung ge- stellt. o Etliche Erweiterungen die das Programmieren vereinfachen, darunter ein kompakteres Datenformat, welches eine schnellere Auswertung der Daten möglich macht. Auch arbeitet Wacom IV grundsätzlich andruck- sensitiv und übermittelt trotzdem gleichzeitig den Tastenstatus. _______________________________ ^6: Ab Romversion 1.2, außerdem doppelt so große Auflösung. ^7: Wenn auch nur in 2 Stufen. 3.3.3 Tabletts der Wacom-KT Serie Zur Zeit gibt es nur ein Tablett dieser Serie (ArtPad) deshalb bezieht sich die Beschreibung hier auf dieses Tablett. Diese Tabletts können eigentlich alles was die UD Tabletts auch können, mit ein paar Einschränkungen. o Das Tablett beherrscht Wacom II-S und Wacom IV Kommandos. o Es hat genau wie die UD-Tabletts mit Romversion 1.2 und höher eine doppelt so hohe Auflösung^8 und einen doppelt so großen Andruckbe- reich^9 wie UD-Tabletts mit einer Romversion kleiner als 1.2. o Es gibt keine Menüleiste. o Das Tablett kann nur mit dem Stift bedient werden. Eine Fadenkreuz- lupe gibt es nicht, deshalb steht auch der Multimode nicht zur Ver- fügung. 3.4 Maussteuerung mit Hilfe des Grafiktabletts Bei aktiviertem Tabletttreiber kann der Mauszeiger zusätzlich zur nor- malen Maus mit dem Grafiktablett positioniert werden (wenn die Maus- emulation eingeschaltet ist). Dabei repräsentiert der ausgewählte Ar- beitsbereich auf dem Tablett den ganzen Bildschirm. Die linke obere Ecke des Arbeitsbereiches stellt die linke obere Ecke des Bildschirms dar. Die rechte untere Ecke stellt die rechte untere Ecke des Bild- schirms dar. Die Tasten der Eingabegeräte sind folgendermassen be- legt: Standard Stylus: Der Spitzenschalter entspricht der linken Maus- taste, der Seitenschalter verhält sich genauso wie die rechte Maustaste. Dies gilt auch für den kombinierten Stift der UD/KT-Tabletts im Wacom IV Modus. Pressure Stylus^10:Dieser Stift kann nur im Andruckmodus verwendet werden. Man kann jedoch eine Andruckschwelle für die Emulation der linken Maustaste angeben. Andruckstifte haben einen Wertebereich von -30 bis +30. Lupe: Von den 4 Tasten entsprechen die linke und die rechte Taste den Funktionen einer normalen Maus. Die Tasten in der Mitte oben und in der Mitte unten sind unbelegt und können in eigenen App- likationen verwendet werden. Bei einer 16 Tasten- lupe sind es die Tasten mit der Nummer 2 und 4 die belegt sind. _______________________________ ^8: maximal 2540 lpi ^9: 256 Abstufungen ^10: Nur bei SD-Tabletts verfügbar. 3.5 Das Hauptfenster Das Hauptfenster wird geöffnet wenn (mindestens) eines der folgenden Ereignisse eintritt: o Beim Programmstart war das Tooltype CX_POPUP=yes. o Das Commodities Exchange^11 Programm sendet einen Öffnungsimpuls an das Treiberprogramm. o Der Hotkey wurde gedrückt. (nur wenn Commodity aktiv) o Es wurde auf das Appicon doppelgeklickt. (nur wenn Appicon einge- schaltet) o Im Toolsmenü der Workbench wurde der Wacom Eintrag ausgewählt. (nur wenn Appmenu eingeschaltet) o Das Programm wurde obwohl bereits aktiv nocheinmal gestartet. Das Fenster teilt sich in 5 Bereiche auf. Zur Beschreibung der Texte werden hier nun die deutschen Texte verwendet, so wie sie sie erhalten wenn sie bereits unter WB 2.1 oder höher arbeiten und das deutsche Katalogfile installiert haben. Die meisten Funktionen des Tablett- treibers können bei geöffnetem Fenster auch von der Tastatur aus bedient werden. Drücken sie dazu jeweils die Taste deren Buchstabe unterstrichen ist. _______________________________ ^11: Commodities Exchange ist Teil der Workbench Diskette. 3.5.1 Info Bei erfolgreich aktiviertem Grafiktabletttreiber werden hier der Typ und die Romversion des Tabletts ausgegeben. 3.5.2 Commodity Einstellung Es werden hier alle für das Commodity relevanten Daten eingestellt. Hotkey In diesem Texteingabefeld wird die Tastenkombination gespeichert mit der man das geschlossene Fenster bei aktiviertem Commodity wieder öffnen kann. Gefällt ihnen diese Tastenkombination nicht, so sehen sie bitte in ihrem Workbench Handbuch im Commodities Ka- pitel nach welche Tastenkombinationen erlaubt sind und geben sie die neue Tastenkombination ein. Sie wird nach Eingabe sofort aktiviert. Popup Gibt an, ob beim Programmstart das Fenster geöffnet werden soll oder nicht. Pri Priorität des Commodities. Braucht normalerweise nicht verändert werden. Commodity Nur bei aktivem Commodity kann die Maus mit Hilfe des Tabletts positioniert werden. Auch ein Öffnen des Fensters mit Hilfe des Hotkeys ist nur im aktiven Zustand möglich. Bei jedem Wechsel vom inaktiven in den aktiven Zustand wird das Tablett neu init- ialisiert. AppIcon Ist dieses Gadget mit einem Häckchen versehen, so kann das Fenster auch mit einem dann auf der Work- bench dargestellten Appicon durch Doppelklick mit der linken Maustaste geöffnet werden. Als Image für das Appicon wird das Icon von Disk geladen mit dessen Hilfe der Treiber gestartet wurde. Wird kein Icon gefunden wird ein eingebautes Defaulticon ver- wendet. AppMenu Wenn dieses Gadget mit einem Häckchen versehen ist wird auf der Workbench im Tools-Menü ein Eintrag mit dem Namen WacomII-S/IV Driver: Popup generiert. Wird dieser Eintrag ausgewählt, wird ebenfalls das Fenster geöffnet. 3.5.3 Maus Emulation In diesem Bereich wird die verwendete Mausemulation eingestellt. Bei der Tablet Einstellung wird das AmigaOS Tabletinterface benutzt. Intuition bekommt vom Treiber auch Daten wie Andruck und Stiftneigung zur Verfügung gestellt. Ist Pixel ausgewählt, so wird eine reine Maus emuliert. Intuition bekommt dann nichts von einem evtl. vorhandenen Andruck oder einer vorhandenen Stiftneigung mit. Programme, welche eine der eigenen Soft- wareschnittstellen benutzen, werden über diese Schnittstellen trotz- dem mit diesen Daten versorgt. Dieser Modus ist auch empfehlenswert, wenn sie Programme benutzen, die direkt auf richtige Mausevents wert legen und evtl. durch Tabletevents verwirrt werden. Wie zum Beispiel manche Screenblanker oder Maustools. 3.5.4 Tablett Einstellungen Hier werden alle Konfigurationseinstellungen getroffen die das Tablett direkt betreffen. Device Hier steht der Name des Systemgerätetreibers über den der Wacom Treiber mit dem Tablett kommuniziert. Wenn sie das Grafiktablett an ein MultiIO-Board ange- schlossen haben müssen sie hier den Namen des Ge- rätetreiber des MultiIO-Boards eintragen. Haben sie das Tablett am normalen seriellen Port des Amigas an- geschlossen so muss hier serial.device stehen. (Eine änderung wirkt erst bei der nächsten Init- ialisierung des Tabletts) Unit Der hier voreingestellte Wert von 0 braucht auch nur geändert zu werden, wenn das Grafiktablett an ein MultiIO-Board angeschlossen wird. Es muss dann hier die Nummer des seriellen Ports des MultiIO-Boards eingetragen werden. (Eine Änderung wirkt erst bei der nächsten Initialisierung des Tabletts) Kommandos Man kann hier einstellen welche Kommandos benutzt werden sollen um mit dem Tablett zu kommunizieren. Es stehen "WACOM II-S" und "WACOM IV" zur Auswahl. Wacom IV ist erst bei Tablets der UD/KT-Serie verfüg- bar und sollte dann auch benutzt werden. Wenn sie ein SD Tablett mit Wacom IV betreiben wollen wird das während der Tablettinitialisierung erkannt und sie werden darüber informiert. Multimodus Der Wacom IV Kommandosatz ermöglicht es zwei von- einander verschiedene Eingabegeräte zur gleichen Zeit zu benutzen. Hier kann man einstellen ob man dies haben will oder nicht. Summer Gibt an ob der Tablettsummer bei Druck auf eine Taste eines Tabletteingabegeräts kurz eingeschaltet werden soll oder nicht. Nur Tabletts der SD-Serie haben einen Summer. (Eine Änderung wirkt erst bei der nächsten Initialisierung des Tabletts) Maus-Emu Legt fest welche Teile der normalen Maus emuliert werden sollen. Man kann wählen zwischen "Zeiger + Tasten", "nur Mauszeiger" und gar keiner. Wird "Keine" gewählt, so sind die ankommenden Tab- lettdaten nur über das Softwareinterface verfügbar. Multi-Maus Wenn der Multimodus und Mausemulation aktiv sind muss festgelegt sein welcher der beiden Eingabegeräte als Maus dienen soll. Andrucksensitiv Ist dieses Gadget angewählt, wird das Tablett beim nächsten Initialisieren in den drucksensitiven Modus versetzt. Es muss dann der drucksensitive Stift (Pressure Stylus) benutzt werden, wenn sie ein Tab- lett der SD-Serie verwenden. Wird der Wacom IV Befehlssatz verwendet, so arbeitet das Tablett automatisch drucksensitiv. LMB emulieren Wenn angewählt, wird ab einem bestimmten Andruck ein Druck auf die linke Maustaste emuliert, falls der Wacom II-S Befehlssatz angewählt ist. Wird Wacom IV benutzt, so wird parallel zum Andruck ja auch der Tastenstatus übermittelt. Deshalb ist dieser Punkt bei Wacom IV nicht anwählbar. Schwelle für LMB Andruck der mindestens erreicht werden muss um die linke Maustaste zu emulieren. (Wert zwischen -30 und +30.) Nur relevant wenn Wacom II-S aktiv und LMB Emulation eingeschaltet ist. Arbeitsbereich einstellen Wird dieser Knopf angewählt, so öffnet sich das Einstellungsfenster für den Arbeitsbereich. 3.5.5 Steuerbereich Mit diesen 3 Gadgets kann der Treiber entweder beendet oder das Fen- ster geschlossen werden oder die Konfiguration gespeichert werden. Fenster unsichtbar Mit diesem Gadget kann das Fenster geschlossen werden. Ist eine Neuinitialisierung des Tabletts durch veränderte Einstellungen nötig geworden, so wird das Tablett neu konfiguriert. Der Treiber wird durch diese Gadget nicht beendet. Ein ge- gebenenfalls durch den Treiber geöffnetes anderes Fenster wird ebenfalls geschlossen. Speichern Nach Auslösen dieses Gadgets wird die Einstellung so wie sie im Fenster angezeigt wird im Toolarray des Treibericons gespeichert. Ist kein Icon vor- handen wird ein Icon erzeugt. Ebenfalls wird eine gegebenfalls notwendige Initialisierung des Tabletts durchgeführt. Entfernen Nach einer Sicherheitsabfrage wird der Tablett- treiber komplett beendet. 3.5.6 Die Menüs Ab Version 1.16 hat der Wacom Treiber auch Menüs. Wenn auch nur ein Kleines. Info ... Öffnet ein kleines Fenster mit Informationen über den Treiber. Einstellungen speichern Speichert die aktuellen Einstellungen im Icon. Verbergen Schließen des Commodityfensters und ggfs. Initialisierung des Tabletts. Beenden Beendet nach einer Sicherheitsabfrage das Programm. 3.6 Das Fenster für den Arbeitsbereich Dieses Fenster dient dazu festzulegen welcher Bereich des Tabletts als Arbeitsbereich dienen soll. Es gliedert sich in zwei Bereiche. 3.6.1 Arbeitsfläche Es gibt hier 3 verschiedene Möglichkeiten: Ganzes Tablett Der gesamte sensitive Bereich des Tabletts wird bis zum letzten Punkt zur Dateneingabe zur Verfügung ge- stellt. Ganzes Tablett ohne Rand Es wird wiederum der gesamte sensitive Be- reich des Tabletts zur Verfügung gestellt. Es wird lediglich auf jeder Seite des Eingabebereichs ein Rand von 4 Millimetern frei gelassen. Das hat zwei Vorteile: 1. Die Ecken des Bildschirms können nun genauer angefahren werden. 2. Der Rand wird genutzt um das Scrolling von Auto- scroll Screens auszulösen. Selbstdefiniert Es wird ein eigener selbstdefinierter Bereich benutzt. Wird dieses Gadget angewählt, so werden die dafür vorgesehenen Gadgets freigegeben. Wenn jeweils ein paar Millimeter bis zum Tablettrand freigelassen werden, wird wieder das Scrolling von Autoscroll- screens möglich. 3.6.2 Eigener Bereich Ein eigener Bereich kann durch Festlegen der linken oberen und der rechten unteren Ecke bestimmt werden. Dazu können die Koordinaten ent- weder von Hand eingegeben oder direkt vom Tablett gelesen werden. Letztere Methode funktioniert sowohl bei aktivem als auch bei de- aktiviertem Treiber. Der selektierte Bereich muss mindestens 1000 auf 1000 Punkte gross sein. Das Lesen der Koordinaten vom Tablett kann durch einen Tastendruck auf ein Tabletteingaberät beendet, oder durch das Drücken der Escape-Taste auf der Tastatur abgebrochen werden. 4 Allgemeine Hinweise zum Treiber o Zum Abschluss jeder Initialisierung des Tabletts ertönt ein Piepton. Das ist normal und zeigt eine abgeschlossene Neuinitialisierung an. (Nur bei Tabletts der SD-Serie) o Folgende Gadgetänderungen machen eine Neuinitialisierung des Tab- letts nötig: - Device - Unit - Summer - Andrucksensitiv - Multimodus - Jede Änderung des Arbeitsbereichs o Manche Mausbeschleuniger und automatische Fensteraktivierungspro- gramme reagieren teilweise etwas "merkwürdig", da sie nicht mit einem Inputevent von einem Grafiktablett rechnen. Sollten sie also Probleme beim Positionieren der Maus haben schalten sie bitte diese Programme aus, oder wechseln sie die Mausemulation auf Pixel. o Aufgrund von Fertigungstoleranzen können Andruckstifte einen etwas grösseren Wertebereich haben. o Sollten sie während des Betriebs versehentlich auf den Resetknopf des Tabletts drücken, so ist eine Neuinitialisierung notwendig. Das Gleiche gilt wenn sie bei UD Tabletts die Tablettkonfiguration mittels der Menüzeile verändern. o Es wird empfohlen das Konfigurationsfenster nicht mit dem Tablett zu bedienen, da ankommende Daten vom Tablett eine ggfs. statt- findende Neukonfigurierung des Tabletts stören könnten. Diese Möglichkeit wurde zwar so gut wie möglich vermieden (und eigentlich geht eine Bedienung der Treibers mit dem Tablett immer gut) aber man kann nie wissen. o Egal welche Kommandosprache (Wacom II-S oder Wacom IV) verwendet wird, das Tablett braucht nicht darauf eingestellt werden. Das und jegliche andere Konfiguration wird durch das Treiberprogramm erledigt. Dabei wird immer nur die aktuell benutze Konfiguration vorübergehend angepasst. Es werden keinerlei im Tablettspeicher abgespeicherten Einstellungen überschrieben. 5 Tablettdaten in eigene Programme einbinden Sie wollen ein Malprogramm schreiben und mit Hilfe des Grafiktabletts die Grösse eines Malwerkzeuges bestimmen? Dann lesen sie dieses Kapitel, denn der Wacomtreiber bietet eine (komfortable) Schnittstelle für den direkten Datenexport. Dieses Kapitel beschreibt lediglich die programmeigenen Interface. Das OS 3.0 Interface ist in den Amiga Entwicklungsunterlagen beschrieben. Außerdem liegt im Ordner Develop des Treiberpaketes ein Demoprogramm mit Sourcecode, welches das 3.0 Interface benutzt. Die Implementierung dieser Schnittstelle in eigene Programme sollte selbst für ungeübtere Programmierer kein Problem darstellen. 5.1 Kommunikation zwischen Tabletttreiber und Applikation Da das Amiga Betriebssystem unter 2.0 drucksensitive Tabletts nur ansatzweise unterstützt, musste ein anderer Weg gefunden werden (An- druck)daten anderen Programmen zur Verfügung zu stellen. Der Treiber bedient sich dazu der Amiga Messageports. Da die Maus ja bereits durch den Treiber gesetzt werden kann brauchen sie sich eigentlich nur noch um eventuell vorhandene Andruck- und Stiftneigungsdaten kümmern, obwohl das Programm weitmehr als nur den Andruck zu Verfügung stellt. Der Wacom Treiber richtet beim Start einen öffentlichen Messageport ein über den Daten exportiert werden können. Im Ordner Develop des Treiberpakets befindet sich die C-Sourcecodes sowie die ausführbaren Versionen einiger Demo-Programme für den externen Empfang von Tablett- daten. Unter diesen Dateien befindet sich auch "Wacom.h" eine Hea- derdatei die sie auch in eigenen Projekten verwenden sollten mit allen nötigen Strukturdefinitionen und Defines die zum Programmieren von eigenen Tablettapplikationen benötigt werden. Bevor sie jedoch "Wacom.h" includen sollten sie ""^12 includen. Die Adresse des öffentlichen Messageports können sie folgendermassen erfahren: struct MsgPort *Wacom_data_Port; ... /* Der Portname ist auch als WACOM_PORT_NAME in Wacom.h defined */ Wacom_data_Port=FindPort("Wacom DataPort"); ... Nun muss noch ein eigener Messageport und eine WacomMsg installiert werden. struct IntuitionBase *IntuitionBase struct MsgPort *Our_Port; struct WacomMSG WMess; /* siehe Wacom.h */ ... if(Our_Port=CreateMsgPort()) { WMess.Mess.mn_Node.ln_Type=NT_MESSAGE; WMess.Mess.mn_Length=sizeof(struct WacomMSG); WMess.Mess.mn_ReplyPort=Our_Port; WMess.Command=WCMD_POLL_PASSIVE; WMess.Param=WACFLG_ALLOWSCREENEVENTS; WMess.AppScreen=IntuitionBase->ActiveScreen; } ... Jetzt kann die Datenanfrage an den WacomTreiber gerichtet werden: (Dies ist ein Beispiel für die passive API des Treibers.) if(Wacom_data_Port) { /* Anfrage senden */ PutMsg(Wacom_data_Port,(struct Message *)&WMess); /* Warten auf Antwort */ WaitPort(Our_Port); /* besser Wait(1L<mp_SigBit); */ if(GetMsg(Our_Port)) { printf("aktuelle X-Koordinate:%ld\n",WMess.WacomInfo.Tablett_X); ... } } Vor dem Programmende darf natürlich nicht vergessen werden alle be- legten Resourcen freizugeben. _______________________________ ^12: exec/exec.h ist ein Teil ihres C-Compilerpakets. 5.2 Die unterschiedlichen API's Neben der AmigaOS API existiert noch eine passive und eine aktive API über die direkt mit dem Treiber kommuniziert werden kann. Die Vor- gehensweise beim Benutzen der API's ist nahezu identisch. 5.2.1 Die passive API Diese Schnittstelle heisst passiv, weil eine Applikation, die Daten vom Treiber haben will, bei diesem jedesmal neu danach fragen muss. Der Treiber versendet also nicht automatisch die Daten an die App- likation, wenn sich ein Wert geändert hat. Um an die Tablettdaten zu kommen, muss jedesmal eine WacomMsg an den Datenport des Treibers geschickt werden. Siehe das Ende des vorher- gehenden Kapitels. Hierbei ist wichtig das im Feld Command der WacomMsg Struktur WCMD_POLL_PASSIVE steht. Generell sei zum Studium dieser Schnitt- stelle das PassiveAPIDemo zu empfehlen. 5.2.2 Die aktive API Im Gegensatz zur passiven API sendet hier der Treiber automatisch an die registrierten Applikationen Nachrichten, wenn sich etwas geändert hat. Dazu muss sich jede Applikation beim Treiber an und wieder abmelden. Nachdem sich eine Applikation beim Treiber angemeldet hat verschickt der Treiber automatisch Messages an die Applikation, sobald ein Datenpaket vom Tablett kommt. Diese Messages werden an den ReplyPort geschickt, der in der WacomMSG angegeben ist. Anmelden bei der aktiven API: Dazu schickt man eine WacomMSG mit Command=WCMD_START_ACTIVE an den Datenport des Treiber. Bei Param gibt es die Möglichkeiten WACFLG_ALLOWSCREENEVENTS und WACFLG_FORBIDSCREENEVENTS. Man kann damit die Mausemulation für den Screen des Clients (steht in AppScreen) ausschalten. Das ist nützlich, wenn man dies selbst (etwa auf einem 24bit Screen) übernehmen will. öffnet der Client auf einem Screen, der auch für andere Applikationen zugänglich ist sollte man kein WACFLG_FORBDSCREENEVENTS machen. In AppScreen muss die Adresse des Screens stehen, auch wenn man vom FORBIDSCREENEVENTS Feature keinen Gebrauch macht, denn der Client bekommt nur Nachrichten vom Treiber, wenn AppScreen der gerade aktive Screen ist. Wird in AppScreen NULL eingetragen, so werden alle Events an den Client weitergegeben, auch die, die eigentlich nicht für den Screen des Clients bestimmt sind. ... WMess.Command=WCMD_START_ACTIVE; WMess.Param=WACFLG_ALLOWSCREENEVENTS; WMess.AppScreen=IntuitionBase->ActiveScreen; PutMsg(Wacom_data_Port,(struct Message *)&WMess); /* Auf Reply warten */ WaitPort(Our_Port); /* Antwort vom Treiber holen */ GetMsg(Our_Port); if(WMess.Command==WCMD_OK) { ... /* alles ok */ } ... Datenaustausch mit dem Treiber: Nachdem Anmelden beim Treiber bekommt der Messageport, den man als Replyport in die WCMD_START_ACTIVE Message eingetragen hat Messages geschickt, sobald der Anwender etwas auf dem Tablett macht. Diese Message sollte man so schnell wie möglich replyen. Also am besten die gesamte Message kopieren, replyen und dann erst die Daten in der Kopie der Message auswerten. In empfangene Messages darf auf gar keinen Fall etwas hineingeschrieben werden, weder vor noch nach dem replyen ! Es gibt zwei Typen Messages, die vom Treiber an den Client geschickt werden. Zu unterscheiden sind diese am Command Feld. Steht dort WCMD_DATA_TRANS so wurde ein Paket mit Tablettdaten an den Client geschickt. Die Daten können nun ausgewertet werden. Die andere Möglichkeit ist WCMD_MSG. Wird eine solche Message empfangen, muss das Feld Param untersucht werden. Es gibt dann dort folgende Möglichkeiten: +----------------------+---------------------------------------------+ |Wert |Beschreibung | +----------------------+---------------------------------------------+ |WACMSG_DRIVER_DEACTIVE|Der Treiber wurde (vorübergehend) deaktiviert| | |Ab sofort werden keine Tablettdaten mehr | | |übertragen. | +----------------------+---------------------------------------------+ |WACMSG_DRIVER_ACTIVE |Der Treiber wurde wieder reaktiviert. Ab | | |jetzt können_wieder_Tablettdaten_kommen. | +----------------------+---------------------------------------------+ |WACMSG_DRIVER_QUIT | Der Treiber wurde vom Anwender beendet. Ab | | |sofort darf auf gar keinen Fall mehr auf den | | |Datenport des Treibers zugegriffen werden. | | |Auch ein WCMD_STOP_ACTIVE darf nicht | | |mehr gesendet werden. Es treffen jetzt na- | | |türlich auch keine Daten mehr vom Treiber ein| +----------------------+---------------------------------------------+ Empfängt man eine WCMD_ERROR Message können in Param folgende Werte stehen: +----------------------+---------------------------------------------+ |Wert |Beschreibung | +----------------------+---------------------------------------------+ |WACERR_REPLY_UNDERFLOW|Fehler beim Replyen des Clients | +----------------------+---------------------------------------------+ |WACERR_API_INSTAL |Fehler beim Installieren der aktiven API | +----------------------+---------------------------------------------+ |WACERR_API_UNINSTALL |Fehler beim Entfernen von der aktiven API | +----------------------+---------------------------------------------+ |WACERR_INVALID_COMMAND|Treiber_bekam_ungültiges_Kommando | +----------------------+---------------------------------------------+ Abmelden bei der aktiven API: Das Abmelden von der aktive API läuft ähnlich wie das Anmelden. War beim Anmelden das FORBIDSCREENEVENTS Feature an, so werden nach dem Abmelden vom Treiber wieder Events für diesen Screen erzeugt. ... WMess.Command=WCMD_STOP_ACTIVE; WMess.Param=WACFLG_ALLOWSCREENEVENTS; WMess.AppScreen=IntuitionBase->ActiveScreen; /* Nachsehen, ob Port noch da ist */ if(FindPort(WACOM_PORT_NAME)) { PutMsg(Wacom_data_Port,(struct Message *)&WMess); /* Auf Reply warten */ WaitPort(Our_Port); /* Antwort vom Treiber holen */ GetMsg(Our_Port); ... } ... Generelle Hinweise: Es gibt noch ein paar Sachen, die man beachten sollte: o Nur Kommandos zum Treiber schicken, wenn keine Messages mehr replyt werden müssen. o Den Screen des Clients nicht zwischenzeitlich schliessen und wieder öffnen, ohne sich vorher vom Treiber abzumelden. o Die Treiberkommandos nicht schachteln. Folgendes ist also tabu: WCMD_START_ACTIVE WCMD_START_ACTIVE WCMD_STOP_ACTIVE WCMD_STOP_ACTIVE Übersicht über das Feld Command: +----------------------+---------------------------------------------+ |Wert |Beschreibung | +----------------------+---------------------------------------------+ |WCMD_POLL_PASSIVE |Passiver API Request | | |(die "alte" API) | +----------------------+---------------------------------------------+ |WCMD_START_ACTIVE |Registrieren bei der aktiven API | +----------------------+---------------------------------------------+ |WCMD_STOP_ACTIVE |Abmelden bei der aktiven API | +----------------------+---------------------------------------------+ |WCMD_PAUSE_ACTIVE |Temporäres unterbrechen der aktiven API für | | |den Client (andere Clients sind davon nicht | | |betroffen) | +----------------------+---------------------------------------------+ |WCMD_RESTART_ACTIVE |Unterbrechung wieder aufheben | +----------------------+---------------------------------------------+ Wurde eine Message an den Treiber geschickt, steht im Feld Command auch, ob das Kommando erfolgreich durchgeführt wurde. +--------------------+-----------------------------------------------+ |Wert |Beschreibung | +--------------------+-----------------------------------------------+ |WCMD_OK |Befehl wurde ohne Fehler ausgeführt | +--------------------+-----------------------------------------------+ |WCMD_ERROR |Ein Fehler ist aufgetreten | +--------------------+-----------------------------------------------+ |WCMD_MSG |Der Treiber will noch etwas wichtiges mitteilen| +--------------------+-----------------------------------------------+ Bei WCMD_ERROR und WCMD_MSG wird, wie bereits beschrieben, im Feld Param noch genauer auf die aufgetretenen Probleme eingegangen. Auch bei dieser API seien zum Studium zwei Demoprogramme empfohlen. Und zwar ActiveAPIDemo und AvoidScreenDemo. 5.3 Die Datenstrukturen Die WacomInfo-Struktur, die Teil der WacomMSG-Struktur ist, enthält nicht nur die aktuellen Koordinaten auf dem Tablett, sondern auch den Andruck und alle anderen irgendwie wichtigen Daten. Für eine genaue Dokumentation siehe "Wacom.h"^13. _______________________________ ^13: Die Datei ist in Anhang A ausgedruckt. 5.3 Die Felder der WacomInfo-struktur o Sync BOOL Dieses Feld ist nur aus Kompatibilitätsgründen zur Version 1.0 noch vorhanden. Es diente dort dazu festustellen, ob der Mauszeiger zum Zeitpunkt der Datenübergabe auch schon richtig positioniert war. Dies ist ab Version 1.10 automatisch der Fall. Dieses Feld kann jetzt ignoriert werden da immer FALSE. o Driver_running BOOL Dient dazu festzustellen ob der Treiber auch aktiv ist. Ist TRUE wenn aktiv. o Wacom_Series UBYTE Hier steht welcher Wacom Serie das angeschlossene Tablett angehört. +-------+-----------------------+ | Wert |Tabletttyp | +-------+-----------------------+ | FALSE |Tablett der SD-Serie | +-------+-----------------------+ | TRUE |Tablett der UD/KT-Serie| +-------+-----------------------+ o Beeper BOOL Wenn TRUE wird bei Tabletts der SD-Serie bei jedem Tastendruck auf ein Eingabegerät des Tabletts kurz der Tablettsummer eingeschaltet. o Mode BOOL Spiegelt wieder ob das Tablett andrucksensitiv arbeitet. Wird Wacom IV als Kommandosprache verwendet, so arbeitet das Tablett auto- matisch andrucksensitiv. Bei Wacom II-S muss dies erst explizit aktiviert werden. TRUE wenn andrucksensitiv. o MB_Emu BOOL Dient dazu festzustellen, ob ein Druck auf die linke Maustaste emu- liert wird wenn die Mausemulation eingeschaltet ist und das Tablett andrucksensitiv mit Wacom II-S Kommandos arbeitet. Ab einem be- stimmten Andruck wird dann ein Druck auf die linke Maustaste emu- liert. Wird mit Wacom IV Kommandos gearbeitet wird immer der paral- lel zum Andruck gelieferte Tastenstatus zum Setzen der Maustasten verwendet. Dieses Feld ist dann immer FALSE. o Pressure_Limit integer Legt die Andruckschwelle fest, ab der ein Klick auf die linke Maus- taste emuliert werden soll. Nur mit einem Wert zwichen -30 und +30 belegt. Wird nur wenn im Wacom II-S Modus andrucksentiv gearbeitet wird und MB_Emu=TRUE ist. o Pressure WORD Aktueller Andruck im Andruckmodus. Ansonsten 0. Bei Treiberversion bis 1.12 einschließlich stand hhier NO_PRESS wenn kein Andruck vor- handen war. o input_device UBYTE Gerade benutztes Eingabegerät (Im Multimode gerade bewegtes Gerät). +---------+---------------------------------+ | Bit-Nr. |Eingabegerät wenn gesetzt | +---------+---------------------------------+ | 0 |Standard Stylus | +---------+---------------------------------+ | 1 |Pressure Stylus (nur SD-Tabletts)| +---------+---------------------------------+ | 2 |Fadenkreuzlupe | +---------+---------------------------------+ o Buttons UBYTE In Abhängigkeit des gerade benutzen Gerätes steht hier die Nummer der gerade gedrückten Taste. Ist gerade keine Taste gedrückt steht hier 0. Im Multimode steht hier der Tastenstatus des Stifts. Die Lupe hat im Multimode ein eigenes Feld. +-----------------+-----------------------------+ | Eingabegerät |Taste Wert | +-----------------+-----------------------------+ | Standard Stylus |Spitzenschalter 1 | | |Seitenschalter 2 | | |beide Tasten 3 | +-----------------+-----------------------------+ | Eraser |in Reichweite 4 | | |auf dem Tablett 5 | +-----------------+-----------------------------+ | Fadenkreuzlupe |Taste Mitte oben 1 | | (4-Tasten) |Taste Links 2 | | |Taste Mitte unten 3 | | |Taste Rechts 4 | +-----------------+-----------------------------+ | Fadenkreuzlupe |irgendeine Taste | +-----------------+-----------------------------+ o Tablett_Max_X ULONG o Tablett_Max_Y ULONG In diesen Feldern steht die maximale Auflösung des Tabletts. Die Werte die hier stehen sind jedoch auch abhängig vom ausgewählten Arbeitsbereich. Die Auswahl bzw. Darstellung des Arbeitsbereiches ist vollständig transparent. Wurde zum Beispiel auf einem Tablett mit einer physikalischen Auflösung von 15240 Punkten in beiden Richtungen ein Bereich mit einer Auflösung von von 6000 auf 7000 Punkten definiert, so stehen hier die Werte 6000 und 7000. Ist als Arbeitsbereich das ganze Tablett definiert, so steht hier die physikalische Auflösung des Tabletts. o Tablett_X long o Tablett_Y long Hier steht die aktuelle Position des gerade benutzten Eingabegerätes auf dem Tablett. Im Multimode stehen die Koordinaten des Stiftes, die Lupe hat wieder eigene Felder für die Koordinaten. Die hier dar- gestellten Koordinaten sind relativ zur linken oberen Ecke des Ar- beitsbereichs und unter Berücksichtigung der Grösse des Eingabebe- reichs. o Set_Mouse UBYTE Gibt an in welcher Weise die Maus emuliert wird. +------+---------------------------+ | Wert |Emulation | +------+---------------------------+ | 0 |keine Mausemulation | +------+---------------------------+ | 1 |Mauszeiger und Maustasten | +------+---------------------------+ | 2 |Nur Mauszeiger keine Tasten| +------+---------------------------+ Beachten sie auch, dass MB_Emu ebenfalls von dem hier eingestellten Wert abhängt. o Commandset UBYTE Zeigt an mit welchem Kommandsatz das Tablett momentan betrieben wird. +------+-----------------------------------------------------+ | Wert |Kommandosprache | +------+-----------------------------------------------------+ | 0 |Wacom IV (nicht verfügbar mit Tabletts der SD-Serie) | +------+-----------------------------------------------------+ | 1 |Wacom II-S | +------+-----------------------------------------------------+ o Multi_Mode BOOL Im Multimode können zwei verschiedene Eingabegeräte gleichzeitig benutzt werden. Nur verfügbar wenn Wacom IV Kommandos verwendet werden. Wenn der Multimode eingeschaltet ist steht hier TRUE. o Multi_Mouse UBYTE Wenn die Mausemulation und der Multimode eingeschaltet sind, steht hier das Eingabegerät, welches im Multimode als Maus verwendet wird. +------+------+ | Wert |Maus | +------+------+ | 0 |Stift | +------+------+ | 1 |Lupe | +------+------+ o Macrokey UBYTE Tabletts der UD-Serie verfügen über Macrotasten die mit eigenen Funktionen belegt werden können. Wenn Wacom IV Kommandos verwendet werden steht hier die Nummer der Macrotaste, falls sie angewählt wird ansonsten 0. o MM_Dig_Buttons UBYTE Hier steht im Multimode der Tastenstatus der Fadenkreuzlupe^14 an- sonsten 0. o MM_Dig_X ULONG o MM_Dig_Y ULONG Hier stehen im Multimode die Koordinaten der Fadenkreuzlupe^15 an- sonsten 0. o Proximity UBYTE Zeigt an, ob das Eingabegerät in Abtastreichweite des Tabletts ist. Es sollten nur Werte aus diesem Softwareinterface genommen werden wenn hier 1 steht. o MM_Dig_Proximity UBYTE Das Gleiche wie bei Proximity, nur für die Lupe im Multimode. o Min_Pressure WORD o Max_Pressure WORD Hier stehen der minimal/maximal möglichen Werte für den Andruck beim verwendeten Tablett. o Tilt_X WORD o Tilt_Y WORD Bei neueren Tabletts steht hier die Neigung des Stiftes. Der Werte- bereich für diese Einträge geht von -64 bis +63. Wie sich die einzelnen Werte der WacomInfo Struktur gegenseitig be- einflussen kann man auch schön sehen, wenn man ein Programm aus dem Ordner Develop parallel zum Treiber laufen lässt. _______________________________ ^14: siehe auch Feld Buttons. ^15: siehe auch die Felder Tablet_X und Tablet_Y. A Wacom.h Die Datei "Wacom.h" hat folgenden Inhalt: /***********************************************************************/ /* WACOM Digitizerdriver (C) 1993-1996 by ROLAND SCHWINGEL */ /***********************************************************************/ /* Headerfile for receiving tabletdata from the driver */ /* Revision 2.0 */ /***********************************************************************/ /* DEFINES *******************************/ #define WACOM_PORT_NAME "Wacom DataPort" /* Name of the DataPort */ /* The NO_PRESS define is for compatibility reasons to older versions */ /* Use the Proximity field instead with driverversion 1.12 and up ! */ #define NO_PRESS -64; /* No valid Pressure */ /* Available Commands for sending to the driver */ #define WCMD_POLL_PASSIVE 0 /* Passive API Request */ #define WCMD_START_ACTIVE 1 /* Start active API */ #define WCMD_STOP_ACTIVE 2 /* Stop Message stream of active API */ #define WCMD_PAUSE_ACTIVE 3 /* Pause sending of active API */ #define WCMD_RESTART_ACTIVE 4 /* Resume sening after WCMD_PAUSE_ACTIVE */ /* the following defines can be found in the command field of WacomMSG */ /* when _RECEIVING_ a message from the driver! Do not set by hand ! */ /* Only valid with active API ! */ #define WCMD_ERROR 5 /* Something went wrong. */ /* Check Param field for informations */ #define WCMD_MSG 6 /* Also check Param field now! */ #define WCMD_OK 42 /* Everything went ok */ #define WCMD_DATA_TRANS 99 /* A Data Package from the driver. */ /* Do not set by hand ! */ /* Possible values for Param field */ #define WACFLG_ALLOWSCREENEVENTS 0 /* Allow Tabletevents for your screen */ /* Use only with WCMD_START_ACTIVE */ #define WACFLG_FORBIDSCREENEVENTS 1 /* No Eventposting for your screen */ /* Use only with WCMD_START_ACTIVE */ #define WACERR_REPLY_UNDERFLOW 2 /* To few Replymessages received ! */ #define WACERR_API_INSTALL 3 /* Error adding client to active API */ #define WACERR_API_UNINSTALL 4 /* Error removing client from active API */ #define WACERR_INVALID_COMMAND 5 /* Invalid command was sent to API */ #define WACMSG_DRIVER_DEACTIVE 6 /* Driver was deactivated */ #define WACMSG_DRIVER_ACTIVE 7 /* Driver was reactivated */ #define WACMSG_DRIVER_QUIT 8 /* Driver quits NOW ! */ /* Structures ****************************/ struct Wacom { UBYTE Sync; /* Synchronisation with subprocess */ /* (internal must be 0)*/ UBYTE Driver_running; /* Driver active or not */ /* 0 = inactive */ /* 1 = active */ UBYTE Wacom_Series; /* 0 = SD-Series */ /* 1 = UD/KT-Series */ UBYTE Beeper; /* State of the Beeper */ /* 0 = off */ /* 1 = on */ UBYTE Mode; /* Pressure or "normal" Mode */ /* 0 = normal */ /* 1 = pressure */ UBYTE MB_Emu; /* Mousebuttonemulation in Pressure Mode */ /* 0 = inactive */ /* 1 = active */ int Pressure_Limit; /* Limit for LMB-Emulation (-30 ... 30) */ WORD Pressure; /* current Pressure when in Pressure Mode */ /* WacomII-S: -30 ... 30 */ /* WacomIV: -60 ... 60 */ /* -128 ... 127 (Rom 1.2 and up) */ UBYTE input_device; /* Type of current Stylus/Digitzer */ /* 1 = standard Stylus */ /* 2 = pressure Stylus */ /* 4 = Digitizer */ UBYTE Buttons; /* State of the current input_device Buttons */ /* Standard Stylus: 1 = Frontbutton */ /* 2 = Sidebutton */ /* 3 = both */ /* Digitizer: 1 = middle Button top */ /* 2 = left Button */ /* 3 = middle Button bottom */ /* 4 = right Button */ ULONG Tablett_Max_X; /* Maximum X-Value on the Digitizer */ ULONG Tablett_Max_Y; /* Maximum Y-Value on the Digitizer */ long Tablett_X; /* current X-Coordinate */ /* when in WacomIV and Multimode: */ /* X-Coordinate of the pen */ long Tablett_Y; /* current Y-Coordinate */ /* when in WacomIV and Multimode: */ /* Y-Coordinate of the pen */ /* Additions: 10.02.1994 */ UBYTE Set_Mouse; /* Mouseemulation */ /* 0 = off */ /* 1 = Mousepointer and Buttons */ /* 2 = only Mousepointer */ UBYTE Commandset; /* Commandset actually used */ /* 0 = Wacom IV */ /* 1 = Wacom II-S */ UBYTE Multi_Mode; /* Multimode on/off (only Wacom IV) */ /* 0 = off */ /* 1 = on */ UBYTE Multi_Mouse; /* inputdevice used as mouse when in */ /* Multi_Mode (only WacomIV) */ /* 0 = pen */ /* 1 = Digitizer */ UBYTE Macrokey; /* pressed Macrobutton (only Wacom IV) */ UBYTE MM_Dig_Buttons; /* pressed cursorbuttons in Multimode */ /* (only Wacom IV) */ ULONG MM_Dig_X; /* X-Coordinate of the cursor in Multimode */ /* (only Wacom IV) */ ULONG MM_Dig_Y; /* Y-Coordinate of the cursor in Multimode */ /* (only Wacom IV) */ /* Additions: 20.03.1994 */ UBYTE Proximity; /* shows proximitiy of the pointing device */ /* 0 = not in proximity*/ /* 1 = in proximity */ UBYTE MM_Dig_Proximity;/* shows digitizers proximity in multimode */ /* 0 = not in proximity */ /* 1 = in proximity */ /* Additions: 27.12.1994 */ WORD Min_Pressure; /* Bottom limit of pressure */ WORD Max_Pressure; /* top limit of pressure */ /* Additions: 13.01.1996 */ WORD Tilt_X; /* Tilt of stylus on X axis -64 ... +63 */ WORD Tilt_Y; /* Tilt of stylus on Y axis -64 ... +63 */ /* These two are only valid when stylus is */ /* in use ! */ UBYTE reserved[104]; /* for future Expansions */ }; /* Message Structure for getting the above for use with PutMsg() */ struct WacomMSG { struct Message Mess; struct Wacom WacomInfo; ULONG Command; /* Command for API */ ULONG Param; /* Parameters for the API command */ struct Screen *AppScreen; /* The screen of the client Application */ UBYTE reserved[20]; /* For future Expansions */ }; B Geschichtliches Das hat sich alles im Laufe der Zeit am Treiber geändert. Version 1.50 (14. Februar 1996) o UD/KT Tabletts ab Romversion 1.4 haben einen erweiterten Befehlssatz (Wacom IVe) und ein erweitertes Datenformat. Diese Tabletts unter- stützen jetzt auch Stiftneigung. Der Treiber unterstützt diese neuen Funktionen nun ebenfalls. o Neben der bisherigen passiven API gibt es nun auch eine Aktive. Ausserdem wurden die APIs um Sachen wie die Stiftneigung erweitert. o Der Tooltype INPUT_EVENT, der bisher nur über das Icon zu erreichen war, ist nun auch von der Oberfläche aus erreichbar. o Der Andruck wird nun, so wie in den Includes zur AmigaOS API vorge- schlagen, normalisiert an diese übergeben. o Anpassung an die aktuelle Fassung der Wacom IV/IVe Spezifikation. o überarbeitete und erweiterte Demoprogramme für die APIs. o Einige Optimierungen und strukturelle Änderungen. o Neu übersetzt mit SAS/C V6.55. Version 1.17 (26. Dezember 1994) o Veränderte Priorität des API Message Ports. o Einen kleinen Fehler beim öffnen des seriellen Ports beseitigt. Wenn das Gerät nicht geöffnet werden konnte wurde das zwar erkannt und das Fehlerfenster geöffnet, aber nachher hat das Programm weiter- gemacht, als ob kein Fehler aufgetreten ist. Das hat in einigen seltenen Fällen zu einem Absturz führen können. Entschuldigung. Version 1.16 (07. November 1994) o Unterstützt jetzt auch die neue KT Serie (z.b.: ArtPad), mit all ihren Fähigkeiten. o Ab Romversion 1.2 können UD Tabletts mit verdoppelter Auflösung und verdoppeltem Andruckbereich betrieben werden. Dies wird nun ebenfalls unterstützt. o Das Hauptfenster hat jetzt Menüs. o Cycle- und Buttongadgets werden nun bei Bedienung mit der Tastatur für kurze Zeit so dargestellt, als würden sie mit der Maus bedient werden. o Unter Kickstart 3.0 und höher werden die Checkboxen besser font- adaptiv dargestellt. o Das Fenster das erscheint wenn auf das Tablet zugegriffen wird wenn es noch ausgeschaltet ist hat jetzt einen "Wiederholen" Knopf. Das vereinfacht eine Neuinitialisierung für den Anwender. o Überarbeitete Tabletterkennung. Sie ist jetzt flexibler, wenn das Tablett nicht 100%-ig auf werkseitige Einstellungen eingestellt ist. o Verändertes SD-510C Handling. Es gab ein Problem mit einer be- stimmten Romversion bei diesem Tablett. Version 1.12 (07. Mai 1994): o Implementierung des Kickstart 3.0 Tabletthandlings. Jedes Intuitionfenster kann nun Andruckdaten direkt von Intuition empfangen. Wird nur benutzt wenn auch AmigaOS 3.0 oder besser vorhanden ist. o Anpassung an die aktuelle Fassung der Wacom IV Spezifikation vom April 1994. o vereinfachte serielle Kommunikation, um Kompatibilität zu MultIO Karten zu gewährleisten, die nicht den kompletten Befehlssatz im- plementiert haben. o kleinere Optimierungen im ganzen Programm. o Demoprogramm mit Source für AmigaOS 3.0 Tabletthandling beigefügt. o Neu übersetzt mit SAS/C V6.51. Version 1.10 (21. Februar 1994): o Direkte und komplette Unterstützung der Wacom IV Kommandos ein- schliesslich Makrotasten, Multimode und grösserem Andruckbereich. o Zweites Fenster für Einstellung eines selbstdefinierten Arbeits- bereichs. o mehrfach parametrisierbare Mausemulation (kann auch abgeschaltet werden). o Autoscrollscreens funktionieren jetzt richtig. o Mehrfachselektion mit Shifttaste funktioniert jetzt. o erweitertes Softwareinterface. o Optimierungen bezüglich geringerer CPU-Last. o komplette zweite Mausemulation. Version 1.0 (12. Oktober 1993): o Erstellung der Ursoftware. C Warenzeichen Amiga(c), Kickstart(c), Workbench(c) sind Warenzeichen von Amiga Technologies bzw. Commodore-Amiga, Inc. Wacom(c), Wacom II-S(c), Wacom IV(c) sind Warenzeichen der Wacom Co., Ltd.