[SOUNDLIGHT] VISUAL BASIC CRASHKURS VI
Projekt 6: Die Interna der PC-Karte

In dieser Folge wollen wir Ihnen zwei Dinge vorstellen:
[Delphi] 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:

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


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:

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: 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 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!

[Delphi] 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.

[Delphi]

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] 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] 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] 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:
  1. DESK6K.MAK
  2. DESK6K.FRM
  3. DESK6K.FRX
  4. DEMOS.BAS
  5. SLHDMX2.DLL
  6. SLHDMX12.BIN
  7. SLHDMX16.BIN
Einige dieser Dateien könnten durch vorherige Beispiele schon auf Ihrer Festplatte vorhanden sein. Sie sollten sie überschreiben.

[OPEN] 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.

OPEN  Beispiel einer Umsetzung von VB3 auf VB4/32, VB5





zurück zur [HOME]SOUNDLIGHT HOMEPAGE