9 anhang 9.1 protokoll macro: beschreibung, 1 art der prü fsummenermittlung, 2 beispiel für ein testprogramm – Videotec SM164B User Manual

Page 144

Advertising
background image

Seite 32

MNVCSM84A_0408

9 Anhang

9.1 Protokoll Macro: Beschreibung

Das Protokoll ist gekennzeichnet durch die Verwendung von Meldungen, die ausschließlich aus druckbaren ASCII-
Zeichen bestehen und von 2 Endungszeichen begrenzt werden ‘[‘ und ‘]’. Innerhalb der Meldungen wird zwischen
Groß- und Kleinbuchstaben unterschieden. Trennende Leerzeichen werden NICHT benutzt. Das typische
Meldungsformat ist eine Buchstabenfolge ‘[VA1PC1VidS1,12A]’, die folgendermaßen gedeutet werden kann:

[

Beginn der Meldung

VA1

Adressat der Meldung

(1)

Videoeinheit Nummer 1

PC1

Absender der Meldung

(1)

PC Nummer 1

VidS

Befehl

Umschaltung

1

Erster Parameter

(2)

Monitor 1

,

Parameter-Trennzeichen

(2)

12

Zweiter Parameter

(2)

Kamera 12

A

Prüfsumme

]

Ende der Meldung

(1)

Auch wenn die Ziel- und Quelleinheiten in diesem Falle nicht adressierbar sind, muß eine fiktive

Identifikationsnummer vergeben werden.

(2)

Je nach Befehl sind 4 durch Komma getrennte numerische Parameter vorhanden: wenn die Nummer ‘123’

übertragen werden soll, müssen die drei Zeichen ‘1’ (ASCII 49), ‘2’ (ASCII 50) und ‘3’ (ASCII 51) übermittelt werden.

9.1.1 Art der Prü fsummenermittlung

Addition des ASCII-Codes für sämtliche Zeichen der Meldung, außer für die Begrenzungszeichen ‘[‘ and ‘]’
1) Berechnet wird der Wert der somma modulo 26 (Rest der Division durch 26, immer eine ganze Zahl
zwischen 0 und 25)
2) zum so berechneten Modul wird 65 hinzugezählt und in der ASCII-Tabelle das zugehörige Zeichen ermittelt:
Das Ergebnis muß ein alphabetischer Großbuchstabe zwischen ‘A’ und ‘Z’ sein.
Die Meldung wird von der Matrix nur dann interpretiert, wenn die Prüfsumme korrekt ist.

9.1.2 Beispiel für ein Testprogramm

Nachstehend ein einfaches BASIC-Testprogramm, das als Leitfaden für die Erstellung von komplexeren
Kontrollsystemen benutzt werden kann. Das Programm benutzt den seriellen Port COM1 mit einer Baudrate von 9600.

OPEN "COM1:9600,N,8,1,BIN,RB1000,DS0,CS0,CD0,RS" FOR RANDOM AS #1
COM(1) ON

ON COM(1) GOSUB Empfang

DO WHILE (1)
A$ = UCASE$(INKEY$)

‘ erkennt die Betätigung einer Taste

SELECT CASE A$

CASE “1”: ‘ Umschalten von Kamera 1 auf Monitor 1
PRINT #1, “[VA1PC1VidS1,1C]”;

CASE “2”: ‘ Umschalten von Kamera 2 auf Monitor 1
PRINT #1, “[VA1PC1VidS1,2D]”;

CASE “S”: ‘ Automatische Umschaltsequenz auf Monitor 1
PRINT #1, “[VA1PC1VidA1V]”;

CASE CHR(27): ‘ Verlassen des Programms mit ESC

END

END SELECT
LOOP

Empfang:
DO WHILE NOT(EOF(1))
B$ = INPUT$(1,1)
IF B$ = “[” THEN PRINT
PRINT B$;
LOOP
RETURN

Advertising