VISUAL PROGRAMMING CRASHKURS
Intro: Visual BASIC oder PASCAL?
In allen Sprachen gleich: 4 Schritte zum Erfolg
Sie haben eine SOUNDLIGHT DMX PC-Karte 1512B oder wollen sich eine zulegen? Gut, dann sollen Sie sie ja auch benutzen können. Die Karte ist wahrlich universell: sie läßt sich sehr einfach mit allen Sprachen - Assembler, DOS BASIC, PASCAL, C, den visuellen Programmieroberflächen Visual Basic, DELPHI und Visual C++ bedienen. Am meisten Spaß machen natürlich die visuellen Oberflächen unter Windows, weil Sie sich um Grafik fast nicht kümmern müssen: die ist schon komplett vorhanden und eine ganze Menge Systemfunktionalität gibt's auch fertig- man kann sich also voll und ganz auf die eigentliche Aufgabe, die Lichtsteuerung, konzentrieren.
Die einfachsten und preiswertesten Möglichkeiten sind der Einstieg über Visual BASIC oder Visual PASCAL, genannt DELPHI. Wir zeigen Ihnen hier zunächst die Grundschritte in beiden Programmierumgebungen. Dazu verwenden wir Visual BASIC 3.0 und DELPHI 1.0. Beispiele für Visual BASIC 5.0 und DELPHI 2.0 können Sie am Ende des Kapitels downloaden.
Nachfolgend erläutern wir Ihnen die grundlegenden 4 Schritte für jedes Projekt. Sie können alle Dateien am Ende des Kapitels downloaden. Nutzen Sie diese Skelette als Ausgangsbasis für Ihre eigenen Programme.
|
- 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.
Der Visual BASIC Entwurfsbildschirm
Der DELPHI Entwurfsbildschirm
Schritt 1: Funktionen deklarieren
Wenn Sie unsere Karte aus dem Karton nehmen, ist sie "dumm". Das bedeutet: wir müssen ihr erst einmal ein Betriebssystem laden, damit sie DMX ausgeben kann, und dann müssen wir die Funktionen deklarieren, mit denen wir dies Betriebssystem ansprechen. Auch das Laden des Betriebsprogramms kann durch eine dieser Funktionen erfolgen. Sie sind in einer datei namens SLHDMX2.DLL gespeichert, die als Windows Laufzeitbibliothek geladen wird. Bevor die Funktionen einer DLL genutzt werden können, müssen sie der Programmierumgebung bekanntgemacht werden, sie müssen deklariert werden.
BASIC |
 |
DELPHI |
 |
Die Deklarationen werden bei Visual BASIC im Modul MODUL1.BAS ("Neues Modul hinzufügen"), bei DELPHI in der MAINUNIT.PAS untergebracht.
Legen Sie in diesem Modul ebenfalls ein Datenarray an, das als Übergaberegister an die Karte dienen kann. Wir nennen es daher DMXAusgabe und optimalerweise sollte es natürlich Platz für 512 Daten (Kanäle) enthalten:
DIM DMXAusgabe(0 to 511) As Integer (BASIC)
DmxAusgabe:Array[0..511] of Byte; (DELPHI)
Schritt 2: eine Form erstellen und die Karte initialisieren
Da die Karte zu Programmbeginn initialisiert werden muß, empfiehlt es sich, dies gleich beim Laden der Form zu erledigen. Damit initialisieren Sie die Karte zur Laufzeit automatisch bei Programmstart. Natürlich können Sie die Initalisierung auch durch einen Button oder ein Menü aufrufbar machen, das haben wir z.B. auch bei unseren Demos getan - dann haben Sie jederzeit Zugriff auf diese Funktion.
Der beste Platz für die automatische Initialisierung ist bei Visual BASIC das FORM_LOAD Ereignis, bei DELPHI tragen Sie es in MainForm:OnActivate ein.
Um die Karte erfolgreich in Betrieb nehmen zu können, müssen Sie nun folgende Operationen durchführen:
- die Schnittstellenadresse der Karte im Rechner ermitteln
Dazu dient die Funktion vbCardAdr. Sie fragt Ihren PC ab und gibt die aktuelle Kartenadresse, mit der Sie dann fortan arbeiten können, zurück. Um die DIP-Schalter Einstellung der Karte müssen Sie sich also nicht kümmern.
- das Betriebssystem auf die Karte übertragen
Die Karte in einen betriebsfähigen Zustand versetzen. Bitte beachten Sie, daß es verschiedene Kartentypen gibt, alle Beispiele orientieren sich an der Karte für diesen Kurs, der Type 1512B-LC (12 MHz Version)
- die Arbeitsparameter in die Karte schreiben
Eine Handvoll Werte, die Timing, Kanalzahl u.s.w. bestimmen. Bitte wie angegeben übernehmen.
BASIC |
 |
DELPHI |
 |
Den vollständigen Code entnehmen Sie bitte den ladbaren Beipieldateien.
Schritt 3: einen Timer einrichten
Nun wäre unsere Karte betriebsbereit. Die auf der Anwenderoberfläche, durch Fader, Chaser, Mausbewegung u.ä. erzeugten Daten müssen der Karte übergeben werden. Das erledigt ein Timer, der die Daten in regelmäßigen Intervallen an die Karte übergibt. Nur sich verändernde Daten müssen geschrieben werden.
Um Schreibzugriffe auf die Karte erfolgreich durchführen zu können, sollten Sie wissen:
- jeder Schreibzugriff stoppt die Ausgabe der Karte.
Nach allen Schreibzugriffen muß daher auf jeden Fall ein Startkommando stehen.
- Schreibzugriffe während laufender Sendung vermeiden
Vermeiden Sie daher jeden Zugriff auf die Karte außerhalb der Timerroutine. Setzen Sie als Mindestwert für die Timer-Repeatzeit 25 ms ein.
Setzen Sie die Timer-Eigenschaft ENABLED zunächst auf FALSE. Der Timer wird erst dann freigegeben, wenn eine Karte tatsächlich im System gefunden worden ist und die DMX-Übertragung gestartet wird. Zum Stoppen der Übertragung genügt es dann, den Timer einfach wieder abzuschalten.
BASIC |
 |
DELPHI |
 |
Schritt 4: Anwenderprogramm erstellen
Nun haben Sie weiter nichts zu tun, als Ihre Anwenderumgebung zu erstellen: Plazieren Sie nach Herzenslust Kontrollelemente auf dem Entwurfsbildschirm und schreiben Sie die von Ihnen ermittelten DMX-Ausgabedaten in das Array DMXAusgabe. Passen Sie eventuell die Schleife in der Ausgaberoutine und die voreingestellte Kanalzahl in den Karten-Arbeitsparametern (bei der Initialisierung der Karte, voreingestellt: 100 Kanäle) an.
Das war es!
Obwohl BASIC und PASCAL zwei völlig unterschiedliche Sprachen sind, läßt sich eins ausmachen: die Struktur ist in beiden Fällen ähnlich. Auch wenn Sie sich anders entscheiden: die nachfolgenden Beispiele können Sie also in jedem Fall als Vorlage für eigene Versuche benutzen. Wir starten zunächst mit einem Paket Visual BASIC Demos und werden dies im Laufe der zeit auch auf andere Sprachen ausdehnen.
Projekt-Quellcode laden
Wir haben sowohl für das Visual BASIC Beispiel als auch für das DELPHI Beipiel alle erforderlichen Dateien in jeweils einem Archiv zusammengefaßt. Benutzen Sie diese als Ausgangspunkt für Ihre eigenen Anwendungen.
Erstellen Sie auf Ihrer Festplatte ein neues Verzeichnis, in das Sie die Datei laden und dort entpacken. Sie erhalten dann folgende Files:
Visual BASIC 3.0
- VBDEMO.MAK
- VBDEMO.FRM
- VBDEMO.FRX
- MODUL1.BAS
- SLHDMX2.DLL
- SLHDMX12.BIN
- SLHDMX16.BIN
|
Visual BASIC 5.0
- VBDEMO.VBP
- VBDEMO.VBW
- VBDEMO.FRM
- VBDEMO.FRX
- MODUL1.BAS
- SLHDMX32.DLL
- SLHDMX12.BIN
- SLHDMX16.BIN
|
DELPHI 1.0
- DEDEMO.DPR
- DEDEMO.OPT
- DEDEMO.RES
- MAINUNIT.DFM
- MAINUNIT.PAS
- DESK.ICO
- SOUNDLL2.BMP
- SLHDMX2.DLL
- SLHDMX12.BIN
- SLHDMX16.BIN
|
DELPHI 2.0
- DEDEMO.DPR
- DEDEMO.DOF
- DEDEMO.RES
- MAINUNIT.DFM
- MAINUNIT.DCU
- MAINUNIT.PAS
- DESK.ICO
- SOUNDLL2.BMP
- SLHDMX32.DLL
- SLHDMX12.BIN
- SLHDMX16.BIN
|
Kopieren Sie davon die Datei SLHDMX2.DLL in Ihr \WINDOWS\SYSTEM Verzeichnis.
Projekt-Sourcecode VISUAL BASIC 3.0 downloaden
Projekt-Sourcecode VISUAL BASIC 5.0 downloaden
Projekt-Sourcecode DELPHI 1.0 downloaden
Projekt-Sourcecode DELPHI 2.0 downloaden
Wir hoffen, Sie hatten Spaß bis hierher. Viel Vergnügen beim Experimentieren. Kommentare und eigene Beiträge nehmen wir gern entgegen, mailen Sie einfach an
zurück zur
SOUNDLIGHT HOMEPAGE