![[SOUNDLIGHT]](../../soundll3.gif) |
VISUAL BASIC CRASHKURS VI |
Projekt 6: Die Interna der PC-Karte
In dieser Folge wollen wir Ihnen zwei Dinge vorstellen:
- Die korrekte Erkennung und Bedienung der PC-Karte
- Die Umsetzung der Projekte für Visual Basic 4/32 und Visual Basic 5
![[Delphi]](desk6k.gif) |
Bekannt: Das Desk6 |
Sie haben Visual Basic 3.0 auf Ihrem Rechner installiert? Die bisherigen Teile, Kursprojekt 1, Kursprojekt 2, Kursprojekt 3, Kursprojekt 4 und Kursprojekt 5 installiert und abgearbeitet? Prima. Dann können wir loslegen:
- Wir schlagen vor, daß Sie dies Kapitel ausdrucken, nachdem Sie es mit Ihrem Internet-Browser geladen haben.
- Die Beispieldateien können Sie am Ende des Kapitels laden, bitte beachten Sie dazu unbedingt die angegebenen Hinweise zur Installation.
Gehen Sie auf DATEI und dann auf Projekt laden und laden Sie aus dem Verzeichnis C:\VB\SLH das Projekt DESK6K.
Sie erhalten dann den oben dargestellten Arbeitsbildschirm und im Projektfenster werden zwei Dateien eingetragen, nämlich
- DESK6K.FRM, die Form-Datei (das Layout) des Pultes
- DEMOS.BAS, das Deklarations-Modul
Die PC-Karte 1512B
Nach wie vor ist die SOUNDLIGHT DMX PC-Karte 1512B einzigartig am Markt. Ihr besonderer Vorteil ist die Universalität dieser Karte, alle Parameter können per Software in die Karte geladen werden - Hardwaredefinitionen wurden nicht getroffen. Damit kann der Programmierer mit der Karte eigentlich alles machen, was er sich nur vorstellen kann - es verpflichtet ihn aber auch, alle erfoderlichen Parameter sehr sorgfältig zu setzen, damit die Karte richtig funktioniert und ein korrektes DMX-Protokoll abgibt.
Wer universell programmieren will, muß wissen, daß es mittlerweile mehrere Karten-Generationen gibt, die aber in Bezug auf die Bedienung alle kompatibel zueinander sind. Das sind:
- PC-Karte 1512A
Der "Urahn" aller DMX PC-Karten. Basiert auf einer mit 12 MHz betriebenen Intel 8031/8032 CPU.
- PC-Karte 1512B
Eine Weiterentwicklung, mit verbessertem Ausgangsteriber und einer optischen Trennung zwischen DMX-Ausgang und PC-Logik. Damit bühnenfest und äußerst störsicher. Taktfrequenz 12 MHz.
- PC-Karte 1512B Mk2, 1512B Mk3, 1512B/R, 1512C
wie 1512B, jedoch mit schnellerer CPU mit 16 MHz Clock. Die Karten ab 1512B Mk3 können zudem DMX-Signale empfangen.
- PC-Karte 1512B/LC
Eine besonders preiswerte Karte zum DMX Senden aus unserem Internet-Angebot. 12 MHz Clock.
-
Um die Karten betreiben zu können, bedarf es eines Betriebssystems, das Sie als Datei erhalten und das in die Karte übertragen werden muß. Dabei ist es wichtig, daß Taktfrequenz der Karte und Betriebssystem aufeinander angestimmt sind. Zwei Betriebssystem-Dateien werden ausgeliefert:
- SLHDMX12.BIN für Karten mit 12 MHz Clock
- SLHDMX16.BIN für Karten mit 16 MHz Clock
Wird das falsche Betriebssystem in die falsche Karte geladen, hat das Ausgangs-DMX-Signal ein inkorrektes Timing. Ohne den Rechner zu öffnen, kann man erkennen, um welche Karte es sich handelt, wenn man ihr zunächst ein beliebiges Betriebsprogramm anbietet und dann ein Statusregister abfragt. Es antwortet mit
- einem Ausgabewert von 80hex für 12-MHz Karten (außer 1512A)
- einem Ausgabewert von 01hex für 16-MHz Karten
Erkennt man durch diese Abfrage, daß man eine andere Karte als angenommen im Rechner hat, dann ist die Lösung sehr einfach: das zugehörige Betriebssystem einfach noch mal drüberladen!
Meldung des Kartentyps, 128 = 80hex
Wir haben ein Beispiel vorbereitet, das so geschrieben ist, daß es alle Kartentypen erkennt und automatisch das richtige Betriebssystem lädt. Die Routinen finden Sie in DMXINIT_CLICK, sie sind ausführlich kommentiert. Wie Sie sehen werden, haben wir -entgegen der früheren Beispiele- auf das Übertragen der BIN-Dateien verzichtet und stattdessen das Betriebssystem einfach mit der Sub vbWOS(cardadr, MHz) übertragen. Diese Routine wird mit der DLL SLHDMX2.DLL bereitgestellt und im Modul DEMOS.BAS deklariert. Bitte stellen Sie sicher, daß Sie alle Versionen dieser DLL durch die neueste, hiermit ausgelieferte Version ersetzen: in älteren DLL ist die Routine vbWOS nämlich noch nicht enthalten!
Tastatureingaben
Ein weiteres neues Kapitel sind Tastatureingaben. Sie kennen das: Shortcuts per Keyboard sind oftmals viel schneller als langwieriges Mausgefummel, und viele Funktionen eines Lichtpultes ließen sich auch durch ein schnelles Tastenkommando realisieren- alles auf Null fahren (Blackout) könnte dazu gehören.
Was wir dazu tun müssen ist einfach: lediglich alle Fader auf Null fahren.
Hierzu bietet Ihnen das Objekt FORM eine Prozedur an, die sehr gut geeignet ist, eine Tasteneingabe abzufangen und zu verarbeiten. Oben sehen Sie einen Teil der geschriebenen Routine.
![[Delphi]](prev_key.gif) |
Damit Tasteneingaben unmittelbar ausgewertet werden können, ist es ratsam, sie an der Form "vorbeizuschmuggeln", d.h., erst zur Auswertung der Key-Ereignisse zu verwenden und dann erst anderen Routinen zugänglich zu machen. Setzen Sie dazu in der Eigenschaften-Box der FORM den Eintrag KeyPreview auf True.
Wenn Sie nun die Taste C drücken (CLEAR), dann werden alle Fader auf Null (bzw. Grundposition) gestellt. |
Mausaktionen auf der Form
Sie sehen: für das Objekt FORM (und natürlich für alle anderen auch) stehen Ihnen eine Vielzahl von Prozeduren zur Vefügung. Überlegen Sie, welche davon Sie für eigene Zwecke sinnvoll nutzen können. Wir haben Ihnen hier zwei vorgegeben: Klicken Sie mit der rechten Maustaste einmal auf die Form, oder klicken Sie mit der linken Maustaste zweimal (Doppelklick). Leztere Eingabe öffnet eine Dailogbox, über die Sie das Programm verlassen können:
![[Delphi]](box_ende.gif) |
Hier haben wir auch etwas Neues eingebaut: eine Dialogbox mit zwei Schaltflächen. Normalerweise ist stets die erste Schaltfläche voreingestellt, das können Sie aber überschreiben. Wir haben dir zweite Schaltfläche mit Voreinstellung versehen, da ein irrtümlicher Aufruf, mit einem <ENTER> beantwortet, ja nicht zu einem Programmabbruch führen soll.
|
![[Delphi]](msgboxd.gif) |
Die Zuordung der Werte zu den angezeigten Signets, Anzahl und Voreinstellung der Schaltflächen zeigt Ihnen die Visual Basic Hilfe. Klicken Sie im Befehlsfenster, also in Ihrem laufenden Text, einfach auf das Befehlswort MsgBox und drücken Sie F1. Es werden Ihnen dann alle Möglichkeiten angezeigt.
|
Projekt-Quellcode laden
Erstellen Sie auf Ihrer Festplatte im Visual Basic Ordner ein Verzeichnis namens C:\VB\SLH. Laden Sie die Datei PROJ6.EXE in dies Verzeichnis und starten Sie sie dort. Es entpacken sich dann unter anderem folgende Dateien:
- DESK6K.MAK
- DESK6K.FRM
- DESK6K.FRX
- DEMOS.BAS
- SLHDMX2.DLL
- SLHDMX12.BIN
- SLHDMX16.BIN
Einige dieser Dateien könnten durch vorherige Beispiele schon auf Ihrer Festplatte vorhanden sein. Sie sollten sie überschreiben.
Projekt-Sourcecode downloaden
PROJEKTE IN 32-BIT UMGEBUNGEN PORTIEREN
Mittlerweile sind verschiedene VB-Versionen am Markt verfügbar. Mit Visual BASIC 4.0 wird es erstmals erforderlich, Anwendungen für 32-Bit Betriebssysteme anders zu schreiben als für 16-Bit Betriebssysteme. Hinzu kommt, daß die bisher von Windows verwendete PASCAL-Aufrunfkonvention für DLL-Bibliotheken nicht mehr unterstützt wird und durch eine C/C++ Aufrunfkonvention ersetzt wird.
Damit Ihnen der Übergang auf 32-Bit Systeme leichter fällt, haben wir für Sie eine Umsetzung anhand eines bereits vorliegenden Beispiels durchgeführt.
Beispiel einer Umsetzung von VB3 auf VB4/32, VB5
zurück zur
SOUNDLIGHT HOMEPAGE