Manual des MIDI RS-232/RS-422 Converter - Cinetix.de

Manual des MIDI RS-232/RS-422 Converter - Cinetix.de Manual des MIDI RS-232/RS-422 Converter - Cinetix.de

10.10.2013 Aufrufe

Mit dem optional anwendbaren Befehl % (Details siehe unten) wird eine Bitmaske gesetzt, die das Senden der Zeichenketten auf bestimmte Nachrichten- bzw. Daten- Typen einschränkt. Die Zeichenketten werden dabei nicht gelöscht und stehen nach dem Setzen des betreffenden Bits wieder zur Verfügung Als Parameter muss unmittelbar nach dem Befehlscode % ein Byte eingegeben werden, bei dem jedes Bit eine bestimmte Wirkung hat. Diese Einstellung wird abschaltfest gespeichert und ist beim nächsten Einschalten wieder aktiv. Bei Lieferung ist der Parameter 255 (hexFF) voreingestellt, dh. alle einzeln zuschaltbaren Filter-Funktionen sind bei Lieferung "durchlässig", nur NOTE OFF und Velocity=0 werden blockiert. Bit0 gelöscht: es werden keineZeichenketten von der seriellen Schnittstelle ausgelöst Bit1 gelöscht: es werden keine Zeichenketten von NOTE ON Nachrichten ausgelöst Bit2 gelöscht: keine Zeichenketten von POLY KEY PRESSURE Nachrichten ausgelöst Bit3 gelöscht: keine Zeichenketten von CONTROL CHANGE Nachrichten ausgelöst Bit5 gelöscht: keine Zeichenketten von PROGRAM CHANGE und CHANNEL PRESSURE Bit5 gelöscht: keine Zeichenketten von PITCH WHEEL Nachrichten ausgelöst Bit6 gelöscht: alle von MIDI Nachrichten ausgelösten Zeichenketten werden nicht an die serielle Schnittstelle, sondern an MIDI OUT gesendet (überschreibt pauschal die mit dem Befehl ! individuell eingetragene Richtung). Seriell ausgelöste Zeichenketten werden von diesem Bit nicht beeinflusst. Bit7 gesetzt: NOTE ON Nachrichten mit Velocity=0 und alle NOTE OFF Nachrichten werden ignoriert (auch bei den oben beschriebenen Standard-Umsetzungen) Bit7gelöscht: auch NOTE ON Nachrichten mit Velocity=0 lösen Zeichenketten aus Der ASCII Text Kommandointerpreter: (Drehschalter Stellung F) Mit diesem Kommandointerpreter werden Zeichenketten programmiert. Es können MIDI Nachrichten im ASCII Klartext gesendet und umgekehrt aus dem MIDI IN Empfangspuffer gelesen werden. Ferner können die IO Funktionen bedient und abgefragt werden, die serielle Schnittstelle kann konfiguriert werden (Baudrate, RTS/CTS Handshake) und weitere auf andere Drehschalter-Stellungen wirkende Systemparameter werden hier eingestellt. Dieser Kommandointerpreter hat eine einfachere und besser handhabbare Befehlssyntax als der nachfolgend beschriebene programmierbare Kommandointerpreter. Er reagiert nur direkt auf Eingaben an der seriellen Schnittstelle und ist nicht für Standalone Betrieb geeignet. Die Einstellung der Baudrate wurde bereits oben bei "Installation und Inbetriebnahme" beschrieben. Grundsätzlicher Aufbau der ASCII-Befehle: Befehlscode Parameter [Befehlscode Parameter ] .... --- Einige Befehlscodes dienen zur Auswahl bestimmter I/O-Methoden (“Devices“ = virtuelle Geräte), das sind die Befehle : (Doppelpunkt) , ; (Semikolon), S, M, @ ,U, K, J, X, G , W und { --- Andere Befehlscodes konkretisieren die mit dem zuvor selektierten oder einem implizit bestimmten Device auszuführende Aktion, das sind R, L, H, P, Z , T , [ und ]. --- Schliesslich gibt es eine dritte Art Befehlscodes, die das allgemeine Systemverhalten modifizieren, dazu gehören: N , ! . ? , % , & , $ und Y. 10

Jeder Befehl wird sofort ausgeführt, sobald die notwendige Anzahl von ASCII-Zeichen empfangen wurde. Zahlen werden automatisch abgeschlossen, sobald die im jeweiligen Kontext maximal mögliche Anzahl ASCII-Stellen empfangen wurde. Bei kleineren Zahlen muss entweder einfach mit der Eingabe des nächsten Befehls begonnen werden, ein eingegeben werden oder die Zahl muss mit vorangestellten Nullen eingegeben werden. Bei den Befehlscodes wird nicht unterschieden zwischen Gross- und Kleinschreibung. In Kleinbuchstaben eingegebene Befehle werden intern in Grossbuchstaben gewandelt. Deshalb werden in diesem Text alle Befehlscodes gross geschrieben. Das Zeilenabschluss-Zeichen (hexD,dez13) führt den vorherigen Befehl sofort aus und reorganisiert interne Strukturen des Kommandointerpreters. Obwohl nicht dringend erforderlich, erhöht ein gelegentlich eingefügter Zeilenumbruch die Systemstabilität. Das Zeilenvorschub-Zeichen (hexA,dez10) wird ignoriert. Dies muss ggf. bei der Konfiguration von Terminalprogrammen und bei der Programmierung eigener Steuerprogramme beachtet werden. Leerstellen werden nicht interpretiert, d.h. können zur grafischen Auflockerung verwendet werden. Bemerkt man während der Eingabe einen Tippfehler, sollte der angefangene Befehl mit gelöscht werden. Die Rücktaste ist nicht wirksam. Befehls-Parameter (d.h. Zahlenwerte) werden stets in der aktiven Zahlenbasis eingegeben (dezimal oder hex). Nachdem die Zahlenbasis mit dem Befehl "$" eingestellt ist, werden Hex-Zahlen NICHT mit vorangestelltem $ Zeichen eingegeben. Jede Rückmeldung an den Steuerrechner erfolgt in der aktiven Zahlenbasis. Vor Hex-Zahlen wird dann das $- Zeichen gesetzt. Rückmeldungen: Das Gerät sendet kein "Echo" der empfangenen Daten (Ausnahme: Programmierung von Zeichenketten). Falls gewünscht, am Terminalprogramm "lokales Echo" einstellen. Jede korrekt ausgeführte und mit beendete Befehlszeile bestätigt das Gerät mit = hexD, dez13. Wenn der Befehl (meistens wegen eines Syntax-Fehlers oder eines unzulässigen Parameters) nicht interpretiert werden kann, antwortet das Gerät sofort mit “?“ plus . Wurden bereits weitere nachfolgende Befehle in den Kommandopuffer geschrieben, so werden diese gelöscht, d.h. müssen ggf. neu eingegeben werden. Zum Auslesen angeforderte Daten sendet der Converter unmittelbar nach Befehlseingabe (R , U , ? , ; , @ ). Jede angeforderte Datenausgabe mit einem beendet. Hieran können evtl eingesetzte Analyseprogramme das Ende eines syntaktisch zusammengehörenden Datenblocks erkennen. Datenformat der Geräte-Kennung beim Einschalten bzw. Reset: 'MIDI RS-232/RS-422 Converter v4.xx' Diese Meldung wird automatisch beim Einschalten oder nach einem Reset gesendet, sobald der Converter Initialisierung beendet hat. Die wiederholte spontane Sendung dieser Meldung während des Betriebs deutet auf eine ungenügende Stromversorgung oder auf den Converter wirkende sehr starke Störimpulse hin. Kurzreferenz aller ASCII-Befehle (detaillierte Beschreibungen anschliessend) :nN (Doppelpunkt) Zeichenkette Nr. n (n=0-127) für NOTE ON programmieren S.12 :nK (Doppelpunkt) Zeichenkette Nr. n (n=0-127) für CONTROL CHANGE programmieren S.12 :nP (Doppelpunkt) Zeichenkette Nr. n (n=0-127) für PROGRAM CHANGE programmieren S.12 :no (Doppelpunkt) Zeichenkette Nr. n (n=0-127) für RS-232/RS-422 programmieren S.12 (o formal klein geschrieben zur besseren Unterscheidung von Null. Wird intern in Grossbuchstaben umgewandelt) 11

Je<strong>de</strong>r Befehl wird sofort ausgeführt, sobald die notwendige Anzahl von ASCII-Zeichen<br />

empfangen wur<strong>de</strong>. Zahlen wer<strong>de</strong>n automatisch abgeschlossen, sobald die im jeweiligen<br />

Kontext maximal mögliche Anzahl ASCII-Stellen empfangen wur<strong>de</strong>. Bei kleineren Zahlen<br />

muss entwe<strong>de</strong>r einfach mit <strong>de</strong>r Eingabe <strong><strong>de</strong>s</strong> nächsten Befehls begonnen wer<strong>de</strong>n, ein<br />

eingegeben wer<strong>de</strong>n o<strong>de</strong>r die Zahl muss mit vorangestellten Nullen eingegeben<br />

wer<strong>de</strong>n.<br />

Bei <strong>de</strong>n Befehlsco<strong><strong>de</strong>s</strong> wird nicht unterschie<strong>de</strong>n zwischen Gross- und Kleinschreibung.<br />

In Kleinbuchstaben eingegebene Befehle wer<strong>de</strong>n intern in Grossbuchstaben gewan<strong>de</strong>lt.<br />

Deshalb wer<strong>de</strong>n in diesem Text alle Befehlsco<strong><strong>de</strong>s</strong> gross geschrieben.<br />

Das Zeilenabschluss-Zeichen (hexD,<strong>de</strong>z13) führt <strong>de</strong>n vorherigen Befehl sofort<br />

aus und reorganisiert interne Strukturen <strong><strong>de</strong>s</strong> Kommandointerpreters. Obwohl nicht dringend erfor<strong>de</strong>rlich,<br />

erhöht ein gelegentlich eingefügter Zeilenumbruch die Systemstabilität. Das Zeilenvorschub-Zeichen<br />

(hexA,<strong>de</strong>z10) wird ignoriert. Dies muss ggf. bei <strong>de</strong>r Konfiguration von<br />

Terminalprogrammen und bei <strong>de</strong>r Programmierung eigener Steuerprogramme beachtet wer<strong>de</strong>n.<br />

Leerstellen wer<strong>de</strong>n nicht interpretiert, d.h. können zur grafischen Auflockerung verwen<strong>de</strong>t wer<strong>de</strong>n.<br />

Bemerkt man während <strong>de</strong>r Eingabe einen Tippfehler, sollte <strong>de</strong>r angefangene Befehl mit <br />

gelöscht wer<strong>de</strong>n. Die Rücktaste ist nicht wirksam.<br />

Befehls-Parameter (d.h. Zahlenwerte) wer<strong>de</strong>n stets in <strong>de</strong>r aktiven Zahlenbasis eingegeben (<strong>de</strong>zimal o<strong>de</strong>r<br />

hex). Nach<strong>de</strong>m die Zahlenbasis mit <strong>de</strong>m Befehl "$" eingestellt ist, wer<strong>de</strong>n Hex-Zahlen NICHT mit<br />

vorangestelltem $ Zeichen eingegeben.<br />

Je<strong>de</strong> Rückmeldung an <strong>de</strong>n Steuerrechner erfolgt in <strong>de</strong>r aktiven Zahlenbasis. Vor Hex-Zahlen wird dann das $-<br />

Zeichen gesetzt.<br />

Rückmeldungen:<br />

Das Gerät sen<strong>de</strong>t kein "Echo" <strong>de</strong>r empfangenen Daten (Ausnahme: Programmierung von Zeichenketten). Falls<br />

gewünscht, am Terminalprogramm "lokales Echo" einstellen.<br />

Je<strong>de</strong> korrekt ausgeführte und mit been<strong>de</strong>te Befehlszeile bestätigt das Gerät mit = hexD, <strong>de</strong>z13.<br />

Wenn <strong>de</strong>r Befehl (meistens wegen eines Syntax-Fehlers o<strong>de</strong>r eines unzulässigen Parameters) nicht interpretiert<br />

wer<strong>de</strong>n kann, antwortet das Gerät sofort mit “?“ plus . Wur<strong>de</strong>n bereits weitere<br />

nachfolgen<strong>de</strong> Befehle in <strong>de</strong>n Kommandopuffer geschrieben, so wer<strong>de</strong>n diese gelöscht, d.h. müssen ggf. neu<br />

eingegeben wer<strong>de</strong>n.<br />

Zum Auslesen angefor<strong>de</strong>rte Daten sen<strong>de</strong>t <strong>de</strong>r <strong>Converter</strong> unmittelbar nach Befehlseingabe (R , U , ? , ; , @ ).<br />

Je<strong>de</strong> angefor<strong>de</strong>rte Datenausgabe mit einem been<strong>de</strong>t. Hieran können evtl<br />

eingesetzte Analyseprogramme das En<strong>de</strong> eines syntaktisch zusammengehören<strong>de</strong>n Datenblocks erkennen.<br />

Datenformat <strong>de</strong>r Geräte-Kennung beim Einschalten bzw. Reset:<br />

'<strong>MIDI</strong> <strong>RS</strong>-<strong>232</strong>/<strong>RS</strong>-<strong>422</strong> <strong>Converter</strong> v4.xx'<br />

Diese Meldung wird automatisch beim Einschalten o<strong>de</strong>r nach einem Reset gesen<strong>de</strong>t, sobald <strong>de</strong>r<br />

<strong>Converter</strong> Initialisierung been<strong>de</strong>t hat. Die wie<strong>de</strong>rholte spontane Sendung dieser Meldung während <strong><strong>de</strong>s</strong><br />

Betriebs <strong>de</strong>utet auf eine ungenügen<strong>de</strong> Stromversorgung o<strong>de</strong>r auf <strong>de</strong>n <strong>Converter</strong> wirken<strong>de</strong> sehr starke<br />

Störimpulse hin.<br />

Kurzreferenz aller ASCII-Befehle (<strong>de</strong>taillierte Beschreibungen anschliessend)<br />

:nN (Doppelpunkt) Zeichenkette Nr. n (n=0-127) für NOTE ON programmieren S.12<br />

:nK (Doppelpunkt) Zeichenkette Nr. n (n=0-127) für CONTROL CHANGE programmieren S.12<br />

:nP (Doppelpunkt) Zeichenkette Nr. n (n=0-127) für PROGRAM CHANGE programmieren S.12<br />

:no (Doppelpunkt) Zeichenkette Nr. n (n=0-127) für <strong>RS</strong>-<strong>232</strong>/<strong>RS</strong>-<strong>422</strong> programmieren S.12<br />

(o formal klein geschrieben zur besseren Unterscheidung von Null. Wird intern in Grossbuchstaben umgewan<strong>de</strong>lt)<br />

11

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!