Um die Flexibilität beim Einsatz der pt-200 in verschiedenen Anwendungsfällen zu erhöhen und die Komplexität der über Menues konfigurierbaren Systemeinstellungen nicht zu gross werden zu lassen, wurde die pt-200 Makroprogrammierbar gemacht.
Die Makroprogrammierung erlaubt dem Programmierer den Zugriff auf viele interne Funktionen des Gerätes. Die pt-200 ist damit auf verschiedene Anforderungen anpassbar. Die Makros werden als Textzeilen in die pt-200 geladen und vom Gerät interpretiert. Die Anweisungen sind sehr kompakt, da Speicherplatz und Interpretationsgeschwindigkeit wichtig sind.
Sprachelemente sind Anweisungen, (Benutzer-)variablen, Systemvariablen, Systemkonstante, Literale (Numerische- und Textkonstanten), Portadressen.
<BOOLscheAnweisung>:<TRUE-Anweisung>!<FALSE-Anweisung>
Die BOOLsche Anweisung ist in der Regel eine Vergleichsanweisung, kann aber auch eine beliebige Anweisung sein, die eine Rückgabewert in der Systemvariablen RES zurückliefert.
Hat RES einen Wert < 256, wird dies von der bedingten Verzweigung als TRUE interpretriert, hat RES einen Wert ³ 256, wird dies als FALSE interpretiert.
Beispiel max(a,b) bestimmt die größere von zwei Zahlen: GEa,b:SEmax,a!SEmax,b
Beispiel: EQn,1:SEx,'eins'!(EQn,2:SEx,'zwei'!(EQn,3:SEx,'drei'!SEx,'andere'))
Der FALSE-Anweisungszwei ist optional:
EQa,'123':SEx,123;
EQa,'456':SEx,456;
Im folgenden wird für die Parametertypen der Anweisungen folgende Konvention verwendet:
Typ | Beschreibung |
WORD | Dezimal-Zahl, Hexadezimalzahl oder Zahl Variable |
TEXT | Text-Literal oder Text-Variable |
NUM | Dezimal-Zahl, Hexadezimalzahl, Zahl-Variable oder Port |
NVAR | ZahlVariable, undefinierte Variable oder beschreibbarer I/O-Port |
TVAR | TextVariable oder undefinierte Variable |
WVAR | WordVariable oder undefinierte Variable |
Viele Anweisungen liefern in einen numerischen Rückgabewert in der Systemvariablen RES bzw. einen alphanumerischen Rückgabewert in der Systemvariablen NAME zurück. Ein numerischer Rückgabewert kann in der bedingten Verzweigung verwendet werden. Falls der Rückgabewert weiterverarbeitet werden soll, muß er mit im nächsten Befehl z.B. mit SEvar,RES gespeichert oder ausgewertet werden, da folgende Anweisungen die Systemvariable verändern. Ein Makro kann den Systemvariablen RES und NAME selbst einen Rückgabewert zuordnen, indem es z.B. mit SERES,1234 oder SENAME,'info' eine Wertzuweisung vornimmt.
Anweisung | Param 1 | Param 2 | Funktion |
SE | NVAR | NUM | Set. |
Wertzuweisung von NUM an I/O-Port oder Variable | |||
AN | NVAR | NUM | AND. |
Bitweise Und-Verknüpfung NVAR := NVAR AND NUM | |||
OR | NVAR | NUM | OR. |
Bitweise Oder-Verknüpfung NVAR := NVAR OR NUM | |||
NA | NVAR | NUM | NAND. |
Bitweise NAND-Verknüpfung NVAR := NVAR AND NOT NUM | |||
XO | NVAR | NUM | XOR. |
Bitweise Exklusiv-Oder Verknüpfung NVAR := NVAR XOR NUM | |||
SL | NVAR | NUM | Shift Left. |
Linksschieben um NUM Bits: SHL (NVAR, NUM) | |||
SR | NVAR | NUM | Shift Right. |
Rechtsschieben um NUM Bits: SHR (NVAR, NUM) | |||
MU | NVAR | NUM | Multiplikation. |
NVAR := NVAR*NUM | |||
DI | NVAR | NUM | Division. |
NVAR := NVAR DIV NUM | |||
MO | NVAR | NUM | Modulo. |
Restberechnung NVAR := NVAR MOD NUM | |||
IN | NVAR | NUM | Inkrementierung (Addition). |
NVAR := NVAR+NUM | |||
DE | NVAR | NUM | Dekrementierung (Subktraktion). |
NVAR := NVAR-NUM | |||
SI | Signed Prefix. Wirkt nur auf die nächste Anweisung. | ||
Der nächste Vergleichs-, Konvertierungs- oder Arithmetikoperation wird vorzeichenbehaftet ausgeführt.
Ein WORD-Parameter wird als vorzeichenbehafteter INTEGER Wert interpretiert.
|
Bei Verwendung von Textvariablen ist zu beachten, daß deren Länge bei Textoperationen nicht über 140 Zeichen erreicht.
Anweisung | Param 1 | Param 2 | Funktion | ||||||||||||
SE | TVAR | TEXT | Set. | ||||||||||||
Wertzuweisung von TEXT an Text-Variable | |||||||||||||||
IN | TVAR | TEXT | Insert. | ||||||||||||
Fügt den Text TEXT am Anfang von TVAR ein | |||||||||||||||
IN | TVAR | NUM | Insert. | ||||||||||||
Fügt das Zeichen NUM am Anfang von TVAR ein | |||||||||||||||
DE | TVAR | WORD | Delete. WORD ist in HIGH und LOW Teil aufgeteilt (jeweils ein Byte): | ||||||||||||
|
|||||||||||||||
WT | WORD | WORD | Write Text. | ||||||||||||
Gibt das Zeichen des zweiten Parameters an der COM-Schnittstelle deren Nummer im ersten Parameter steht aus. Zeichencodes 0..255 sind erlaubt. | |||||||||||||||
WT | WORD | TEXT | Write Text. | ||||||||||||
Gibt den Text auf der COM-Schnittstelle, deren Nummer im ersten Parameter steht, aus. | |||||||||||||||
COM-Schnittstellen: | |||||||||||||||
|
|||||||||||||||
RT | WORD | WVAR | Read Text. | ||||||||||||
Liest ein Zeichen von COM-Schnittstelle (Parameter 1) in die Variable WVAR ein. Falls kein Zeichen verfügbar ist, wird 0 geliefert. Es wird nicht gewartet. | |||||||||||||||
RT | WORD | TVAR | Read Text. | ||||||||||||
Hängt solange Zeichen von der COM-Schnittstelle (Parameter 1) an die Varibale TVAR an, bis 10ms lang kein Zeichen verfügbar ist, oder TVAR die maximale Länge von 140 Zeichen überschreitet. | |||||||||||||||
CH | NVAR | TEXT | Convert Hexadecimal. | ||||||||||||
Wandelt die als Text übergebene Hexadezimal-Repräsentation um und weist sie an NVAR zu. | |||||||||||||||
CH | TVAR | WORD | Convert Hexadecimal. | ||||||||||||
Wandelt die Zahl WORD in eine Hexadezimalzahl-Repräsentation (ohne führendes Dollar-Zeichen) um und weist sie an die Text-Variable zu. | |||||||||||||||
CD | NVAR | TEXT | Convert Decimal. | ||||||||||||
Wandelt die als Text übergebene Dezimalzahl-Repräsentation um und weist sie an NVAR zu. | |||||||||||||||
CD | TVAR | WORD | Convert Decimal. | ||||||||||||
Wandelt die Zahl WORD in eine Dezimal-Repräsentation um und weisst sie an die Text-Variable zu. | |||||||||||||||
CB | NVAR | TEXT | Convert Binary. | ||||||||||||
Wandelt die als Text übergebene Binärzahl-Repräsentation um und weist sie an NVAR zu. | |||||||||||||||
CB | TVAR | WORD | Convert Binary. | ||||||||||||
Wandelt die Zahl WORD in eine Binärzahl-Repräsentation um und weisst sie an die Text-Variable zu. | |||||||||||||||
LE | WVAR | TEXT | Length. | ||||||||||||
Liefert in WVAR die Länge (=Anzahl Zeichen) des Textes TEXT. | |||||||||||||||
AP | TVAR | TEXT | Append. | ||||||||||||
Hängt den TEXT an das Ende der Text-Variablen an. | |||||||||||||||
AP | TVAR | WORD | Append. | ||||||||||||
Hängt das Zeichen aus WORD an das Ende der Text-Variablen an. | |||||||||||||||
ST | TEXT | WORD | Subtext Extract. | ||||||||||||
Liefert den Subtext aus TEXT von Position LOBYTE(WORD) mit der Länge HIBYTE(WORD). Falls HIBYTE(WORD)=0 ist wird ein Länge=1 angenommen und genau ein Zeichen geliefert. Das Ergebnis wird in der Systemvariablen NAME zurückgeliefert. In der Systemvariablen RES wird der Zeichencode des Ergebnisstrings zurückgeliefert. Falls die Länge des Resultatstrings größer 1 ist, werden die ersten beiden Zeichen des Strings als WORD interpretiert zurückgeliefert. | |||||||||||||||
ST | TEXT | TEXT | Subtext Position. | ||||||||||||
Liefert die Position (1... n), an der der 2.Text im
ersten Text enthalten ist. Ist der 2.Textparameter kein Bestandteil
des ersten Parameters, dann wird in der Systemvariable RES
$FFFF (FALSE) zurückgeliefert.
|
Bei Ablauf eines Timers wird das entsprechende Makro gleichen Namens aufgerufen. Der Timer wird nicht automatisch neu gesetzt. Um einen periodischen Timer zu erhalten, muß der Timer in diesem Makro neu gesetzt werden.
Die Timer werden während einer Bildverbindung höchstens alle 500ms überprüft. Im Standby ca. alle 10ms. Die Genauigkeit hängt stark von der aktuellen Systembelastung ab, da ein Aufruf des Timeout-Ereignis-Namens z.B. nicht während einer Wählaktion, einer Bildübertragung oder Ausführung eines Makros geschieht.
Die Timer können durch die TT-Anweisung getestet werden, so daß es auch möglich ist, Timeouts durch Polling und nicht nur Ereignisgesteuert abzufragen.
Anweisung | Param 1 | Param 2 | Funktion |
TO | TEXT | WORD | Timeout Milliseconds. |
Setzt den Timeout für den Timer (Name in Parameter 1) auf die im 2.Parameter übergebenen Millisekunden. Falls Parameter 2=0 ist, wird der Timer abgeschaltet und liefert keinen Timeout mehr. | |||
TS | TEXT | WORD | Timout Seconds. |
Setzt den Timeout für den Timer (Name in Parameter 1) auf die im 2.Parameter übergebenen Sekunden. | |||
TM | TEXT | WORD | Timeout Minutes. |
Setzt den Timeout für den Timer (Name in Parameter 1) auf die im 2.Parameter übergebenen Minuten. | |||
TH | TEXT | WORD | Timout Hours. |
Setzt den Timeout für den Timer (Name in Parameter 1) auf die im 2.Parameter übergebenen Stunden. |
Dialog-Anweisungen dienen während einer Online-Verbindung (z.B. via Netz, Modem, ISDN) zur Kommunikation mit dem Benutzer. Die Darstellung der Dialogelemente ist abhängig von der Benutzeroberfläche der Gegenseite. Überlicherweise wird im #ONL Ereignismakro ein Dialog-Initialisierungsmakro aufgerufen, daß alle MD-Anweisungen aufruft, um die Dialoge auf der Benutzeroberfläche darzustellen.
Bei Verwendung der ptWin-Bediensoftware Software lassen sich die Dialogelemente von Seite 8.4 verwenden.
Anweisung | Param 1 | Param 2 | Funktion |
MD | TEXT | TEXT | Make Dialog. |
Erzeugt ein Dialogelement auf dem Bildschirm des Hosts, falls eine Verbindung besteht. Im 1.Parameter wird der Name für den Dialog übergeben (max.11 Zeichen), im zweiten Parameter die Beschreibung des Dialogelementes (Syntax s.u.). | |||
WD | TEXT | TEXT | Write Dialog. |
Gibt den Text des zweiten Parameters im Dialog mit dem Namen des ersten Parameters aus. | |||
WD | TEXT | NUM | Write Dialog. |
Gibt den Zahlwert des zweiten Parameters im Dialog mit dem Namen des ersten Parameters aus. | |||
QD | TEXT | Query Dialog. | |
Fordert den Dialog-Status an. Wird dann über ein Event mit dem Namen des ersten Parameters mitgeteilt. | |||
KD | TEXT | Kill Dialog. | |
Entfernt den Dialog, der im Parameter TEXT angegeben ist vom Bildschirm des Hosts, falls eine Online-Verbindung besteht. | |||
RE | TEXT | TEXT | Remote Event. |
WORD | Erzeugt ein Ereignis mit Namen, der als 1.Parameter übergeben wird. Dies führt während der Verbindung auf der Remote-Seite zum Aufruf eines Makros gleichen Namens. Hierdurch lassen sich bei Box-zu-Box Verbindungen Dialogmakro-Eingaben simulieren. Optional kann ein TEXT- oder WORD-Parameter übergeben werden, der als Parameter RES/NAME auf der Remote-Seite abfragbar ist. |
Diese Anweisungen liefern ein bool'sches Resultat (0000=TRUE, FFFF=FALSE). Das Resultat ist direkt nach Aufruf der Anweisung in der Systemvariablen RES verfügbar. Das Resultat kann z.B. mit der bedingten Anweisung : abgefragt werden.
Anweisung | Param 1 | Param 2 | Funktion |
TT | TEXT | Timer-Test. | |
Prüft ob Timer noch läuft. Ein Rückgabewert FALSE wird geliefert, wenn der Timer abgelaufen ist. | |||
TB | NUM | WORD | Test Bit. |
Prüft ob das Bit (Nummer als 2.Parameter WORD) in Port, Wert oder Variable des ersten Parameters (NUM) gesetzt ist. | |||
MS | NUM | NUM | Mask Set. |
Führt eine bitweise UND-Verknüpfung der beiden Parameter durch (ohne das Ergebnis zu speichern) und liefert TRUE, wenn das Ergebnis gleich dem zweiten Parameter ist. Dadurch lässt sich prüfen, ob in einem I/O Port oder einer Variablen alle gewünschten Bits gesetzt sind. | |||
MC | NUM | NUM | Mask Cleared. |
Führt eine bitweise UND-Verknüpfung der beiden Parameter durch (ohne das Ergebnis zu speichern) und liefert TRUE, wenn das Ergebnis 0 ist. Dadurch lässt sich prüfen, ob in einem I/O Port oder einer Variablen alle gewünschten Bits gelöscht sind. | |||
EQ | NUM | NUM | Equal. |
Prüft beide Werte auf Gleichheit. | |||
EQ | TEXT | TEXT | Equal. |
Prüft beide Texte auf Gleichheit. | |||
NE | NUM | NUM | Not Equal. |
Prüft beide Werte auf Ungleichheit. | |||
NE | TEXT | TEXT | Not Equal. |
Prüft beide Texte auf Ungleichheit. | |||
GE | NUM | NUM | Greater or Equal. |
Liefert TRUE, wenn NUM1 > = NUM2 ist. | |||
GE | TEXT | TEXT | Greater or Equal. |
Liefert TRUE, wenn TEXT1 > = TEXT2 ist. | |||
LE | NUM | NUM | Less or Equal. |
Liefert TRUE, wenn NUM1 < = NUM2 ist. | |||
LE | TEXT | TEXT | Less or Equal. |
Liefert TRUE, wenn TEXT1 < = TEXT2 ist. | |||
LT | NUM | NUM | Less Than. |
Liefert TRUE, wenn NUM1 < NUM2 ist. | |||
LT | TEXT | TEXT | Less Than. |
Liefert TRUE, wenn TEXT1 < TEXT2 ist. | |||
GT | NUM | NUM | Greater Than. |
Liefert TRUE, wenn NUM1 > NUM2 ist. | |||
GT | TEXT | TEXT | Greater Than. |
Liefert TRUE, wenn TEXT1 > TEXT2 ist. | |||
CT | TEXT | TEXT | Contains. |
Liefert TRUE, wenn TEXT2 in TEXT1 enthalten ist. |
Anweisung | Param 1 | Param 2 | Funktion |
FN | WORD | ... | Function call. |
Ruft Systemfunktion (siehe unten) auf. | |||
JP | TEXT | Jump to Makro. | |
Springt in das Makro dessen Name als Paramter übergeben wird. Hinweis: Der Makroname muss in ' Zeichen stehen. Hinweis: Alle Zeichen nach dem Sprungbefehl im aktuellen Makro werden ignoriert. | |||
CA | TEXT | Call Makro. | |
Ruft das Makro TEXT als Unterprogramm auf. Max. 12 Unterprogramme, Funktionsaufrufe und Makros lassen sich ineinander verschachteln. | |||
KI | VAR | Kill. | |
Entfernt die Text- oder Zahl-Variable bzw. das Makro. Sie/Es ist anschliessend undefiniert. |
Anweisung | Param 1 | Param 2 | Funktion |
AN | NVAR | NUM | Bitwise AND. |
AP | TVAR | TEXT | Append text. |
AP | TVAR | WORD | Append character. |
CA | TEXT | Call Makro. | |
CB | NVAR | TEXT | Convert binary string to numerical value. |
CB | TVAR | WORD | Convert numerical value to binary string. |
CD | NVAR | TEXT | Convert cecimal string to numerical value. |
CD | TVAR | WORD | Convert numerical value to decimal string. |
CH | NVAR | TEXT | Convert hexadecimal string to numerical value. |
CH | TVAR | WORD | Convert numerical value to hexadecimal string. |
CR | 0 | CAN Test Message available. | |
CR | WVAR | Read CAN Message. Only Header. | |
CR | WVAR | TVAR | Read CAN Message. Long Value. |
CR | WVAR | WVAR | Read CAN Message. Short Value. |
CS | WORD | Send CAN Message. No Value. | |
CS | WORD | TEXT | Send CAN Message. Long Value. |
CS | WORD | WORD | Send CAN Message. Short Value. |
CT | TEXT | TEXT | Test if text contains other text. |
DE | NVAR | NUM | Decrement Variable. |
DE | TVAR | WORD | Delete Text. |
DI | NVAR | NUM | Division. |
EQ | NUM | NUM | Test numerical equal. |
EQ | TEXT | TEXT | Test text equal. |
FN | WORD | ... | Function call. |
GE | NUM | NUM | Test numerical Greater or Equal. |
GE | TEXT | TEXT | Test text Greater or Equal. |
GT | NUM | NUM | Test numerical Greater Than. |
GT | TEXT | TEXT | Test text Greater Than. |
IN | NVAR | NUM | Increment Variable. |
IN | TVAR | NUM | Insert Character. |
IN | TVAR | TEXT | Insert Text. |
JP | TEXT | Jump to Makro. | |
KD | TEXT | Kill GUI Dialog. | |
KI | VAR | Kill Makro or Variable. | |
LE | NUM | NUM | Test numerical Less or Equal. |
LE | TEXT | TEXT | Test text Less or Equal. |
LE | WVAR | TEXT | Length of text. |
LT | NUM | NUM | Test numerical Less Than. |
LT | TEXT | TEXT | Test text Less Than. |
MC | NUM | NUM | Clear Masked Bits. |
MD | TEXT | TEXT | Make GUI Dialog. |
MO | NVAR | NUM | Modulo (Remainder of Division). |
MS | NUM | NUM | Set Masked Bits. |
MU | NVAR | NUM | Multiplication. |
NA | NVAR | NUM | Bitwise NAND. |
NE | NUM | NUM | Test numerical Not Equal. |
NE | TEXT | TEXT | Test text not Equal. |
OC | WORD | CAN Open Clear Output. | |
OG | TEXT | TVAR | CAN Open Read Object long value. |
OG | WORD | WVAR | CAN Open Read Object short Value. |
OI | WORD | CAN Open Read Input. | |
OO | WORD | CAN Open Read Output. | |
OS | WORD | CAN Open Set Output. | |
OW | TEXT | TEXT | CAN Open Write Object long Value. |
OW | TEXT | TEXT | CAN Open Write Object long value. |
OW | WORD | WORD | CAN Open Write Object short Value. |
OW | WORD | WORD | CAN Open Write Object short Value. |
OR | NVAR | NUM | Bitwise OR. |
QD | TEXT | Query GUI Dialog. | |
RE | TEXT | TEXT | Remote Event. Call Remote Macro with text parameter. |
RE | TEXT | WORD | Remote Event. Call Remote Macro with numerical parameter. |
RT | WORD | TVAR | Read Text from COM-Port. |
RT | WORD | WVAR | Read Character from COM-Port. |
SE | NVAR | NUM | Variable Assignment. |
SE | TVAR | TEXT | Set Text. Variable-Assignment. |
SI | Signed Prefix. | ||
SL | NVAR | NUM | Shift Left. |
SR | NVAR | NUM | Shift Right. |
ST | TEXT | WORD | Subtext string to NAME/RES. |
ST | TEXT | TEXT | Subtext Position to RES. |
TB | NUM | WORD | Test Bit. |
TH | TEXT | WORD | Set Timout in hours. |
TM | TEXT | WORD | Set Timeout in minutes. |
TO | TEXT | WORD | Set Timeout in milliseconds. |
TS | TEXT | WORD | Set Timout in seconds. |
TT | TEXT | Timer-Test. | |
WD | TEXT | NUM | Write number to GUI Dialog. |
WD | TEXT | TEXT | Write text to GUI Dialog. |
WT | WORD | TEXT | Write Text to COM-Port. |
WT | WORD | WORD | Write Character to COM-Port. |
XO | NVAR | NUM | Bitweise XOR, Exclusive Or. |
Funktionen werden mit der Anweisung FN aufgerufen. Beispielsweise wird die Delay-Funktion, die 1000 Millisekunden verzögern soll, durch FN1,1000 aufgerufen. Im folgenden werden die Funktionsnummern als Hexdezimalzahlen angegeben, um die Systematik hervorzuheben. Es ist natürlich möglich die Funktionsnummer als Dezimalzahl zu schreiben z.B. statt FN$1C,cam auch FN28,cam.
Systemerzeugte Ereignisse werden nach vordefinierten Bedingungen aufgerufen und durch ein # Zeichen eingeleitet. Der Name besteht nur aus Großbuchstaben und wird nicht länger als 11 Zeichen inclusive eines übergebenen hexadezimalen Parameters. Der hexadezimale Parameter wird vor dem Anhängen an den Namen soweit gekürzt, so daß er ohne führende Nullen darstellbar ist und mindestens ein Zeichen lang ist.
Ein Makro gleichen Namens wird aufgerufen, sobald ein Ereignis eintritt. Anstelle des vollständigen Ereignisnamens kann der Makroname am Ende ein * enthalten, was bedeutet, das alle Ereignisse, unabhängig vom Parameter dieses Makro aufrufen. Beispielsweise wird bei drücken der DTMF-Taste 5 das Ereignis #DTMF5 aufgerufen. Ein Makro #DTMF* würde auf alle Tasten #DTMF0 bis #DTMF9 reagieren.
Funktion | Parameter | Beschreibung |
$01 | WORD | Delay ms. |
ms | Beispiel: FN1,1000: Warte 1 Sekunde. Die Programmausführung sollte nicht länger als einige Sekunden angehalten werden. Besser ist es länge Verzögerungen mittels Timer/Timeout Konstruktion durchzuführen. | |
$02 | WORD | Clear Com Buffer. |
com | Löscht den Eingabepuffer der Schnittstelle z.B. com=1: Serielle Schnisttelle. | |
$03 | System Reset. | |
$04 | Get Current Label. | |
Liefert (durch Systemvariable NAME abfragbar) den Namen des aktuellen Makros (=Events). | ||
$05 | Write EEPROM Config. | |
Aktuelle Einstellungen ins EEPROM Sichern. Nur möglich, falls Offline oder Online mit Config-Permission. |
Ereignis | Parameter | Beschreibung |
#RESET | 0 | Aufruf bei Reset des Gerätes vor der Initialisierung von Harddisk, Kameras, Modem, ISDN etc. |
1 | Aufruf bei Reset des Gerätes nach obiger Initialisierung. | |
#ERROR | code | Wird aufgerufen, wenn eine Störung im Gerät auftritt.
Der code ist der hexadezimale Errorcode.
|
Variable | R/W | Typ | Beschreibung |
RES | R/W | WORD | Resultat des letzten Vergleichs. |
Da die Systemvariable beschreibbar ist, kann ihr Wert auch durch SERES,xxx verändert werden. | |||
NAME | R/W | TEXT | Resultat einer Textoperation (siehe FN...) |
Bzw. Eingangs Parameter eines Makroaufrufs. | |||
PAR | R | WORD | Parameter des letzten Event/Makro Aufrufs, der bei CALL oder vom Host übergeben wurde. Z.B. der Wert 0000 oder FFFF, der den aktuellen Button Status wiederspiegelt. |
BNAME | R | TEXT | ''Boxname'' (Name des Gerätes, max. 20 Zeichen) |
BNR | R | TEXT | Boxrufnummer (kann Ländervorwahl enthalten) dieses Gerätes. |
TEMP | R | WORD | Innentemperatur der pt200 in Grad Celsius. |
Funktion | Parameter | Beschreibung | |||||||||||||||||||||
$10 | WORD | Select Video Input. | |||||||||||||||||||||
cam | Setze Videoeingang auf cam (1..3) | ||||||||||||||||||||||
Die Systemvariable RES enthält TRUE, wenn ein Videosignal an diesem Eingang erkannt wurde, anderenfalls FALSE. | |||||||||||||||||||||||
$11 | WORD | Set Video State. | |||||||||||||||||||||
0 | Switch Video off. | ||||||||||||||||||||||
1 | Switch Video on. | ||||||||||||||||||||||
$12 | WORD | Store Image. | |||||||||||||||||||||
5 | Speichert Vollbild von aktueller Kamera auf Harddisk. | ||||||||||||||||||||||
4 | Speichert Differenzbild von aktueller Kamera auf Harddisk. | ||||||||||||||||||||||
9 | Speichert Vollbild von aktueller Kamera ins RAM. | ||||||||||||||||||||||
8 | Speichert Differenzbild von aktueller Kamera ins RAM.. | ||||||||||||||||||||||
$13 | WORD | Set screen size. | |||||||||||||||||||||
size | Setzt Spalten und Zeilen des Text-Schirms der Monitor-Ausgabe (COM 6). | ||||||||||||||||||||||
LOBYTE(size)=Spalten | |||||||||||||||||||||||
HIBYTE(size)=Zeilen | |||||||||||||||||||||||
$14 | WORD | Get Camera Name. | |||||||||||||||||||||
cam | Speichert den Namen der Kamera cam (1..3) in der System-Variablen NAME. | ||||||||||||||||||||||
$pp15 | WORD | Video/Audio Remote Control. | |||||||||||||||||||||
val | Falls diese Box als Bildempfänger arbeitet lassen sich damit die | ||||||||||||||||||||||
Kamera- und Audioparameter der Remote-Box einstellen: | |||||||||||||||||||||||
$0015 | cam | Video Input. | |||||||||||||||||||||
Kameraumschaltung cam=1..3 | |||||||||||||||||||||||
$0115 | mode | Videomodus. | |||||||||||||||||||||
0 | HDelta64 | ||||||||||||||||||||||
1 | DCT (Verlustbehaftet) | ||||||||||||||||||||||
$0215 | size | Set Image Size. | |||||||||||||||||||||
|
|||||||||||||||||||||||
$0315 | luma | Bildhelligkeit. | |||||||||||||||||||||
luma=0(dunkel)..9(hell) | |||||||||||||||||||||||
$0415 | val | Kontrast. | |||||||||||||||||||||
val=0(gering)..9(hoch) | |||||||||||||||||||||||
$0515 | qual | Qualität/Kompressionsstärke. | |||||||||||||||||||||
qual=0(beste Qualität)..9(niedrigste Qualität) | |||||||||||||||||||||||
$0615 | sat | Farbsättigung. | |||||||||||||||||||||
sat=0..9 | |||||||||||||||||||||||
$0715 | lsvol | Speaker Volume. | |||||||||||||||||||||
|
|||||||||||||||||||||||
$0815 | micvol | Microphone Volume. | |||||||||||||||||||||
|
|||||||||||||||||||||||
$0915 | ctrl | Control. | |||||||||||||||||||||
$1C | WORD | Store Image to RAM. | |||||||||||||||||||||
cam | Speichert Bild von Kamera cam ins RAM. | ||||||||||||||||||||||
$1D | WORD | Store Image to Harddisk. | |||||||||||||||||||||
cam | Speichert Bild von Kamera cam auf Harddisk. | ||||||||||||||||||||||
$1E | WORD | Bildänderungsdetektor für aktuellen Videoeingang aufrufen. | |||||||||||||||||||||
param | Beim Ersten Aufruf nach einer Kameraumschaltung oder aktivem Video-Framefrabber (z.B. während einer Onlineverbindung oder Harddiskspeicherung) werden die übergebenen Parameter (s.u.) neu gesetzt und ein Referenzbild angefordert. Durch Aufruf von FN$10,cam (Anfordern eines Vollbildes) kann das Initialisieren der durch FN$1E übergebenen Parameter erzwungen werden. | ||||||||||||||||||||||
|
|||||||||||||||||||||||
Die Funktion liefert in der Systemvariablen RES die Zahl der geänderten Blöcke des Bildes zurück. Ein volles Bild hat 48x36 Blöcke. | |||||||||||||||||||||||
$60 | WORD | Kamera-Control für aktuelle Kamera ändern. | |||||||||||||||||||||
ctrl | LOBYTE: BitNr | ||||||||||||||||||||||
HIBYTE: Neuer Wert (1=Bit setzen, 0=Bit rücksetzen) | |||||||||||||||||||||||
|
|||||||||||||||||||||||
Z.B.: | |||||||||||||||||||||||
108h: DCT-Basierte Kompression einschalten | |||||||||||||||||||||||
008h: DCT-Basierte Kompression ausschalten | |||||||||||||||||||||||
$61 | WORD | Bildgröße/Ausschnitt der aktuellen Kamera ändern. | |||||||||||||||||||||
size |
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
$62 | WORD | Graustufen/Farbe für aktuelle Kamera ändern: | |||||||||||||||||||||
grey |
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
$63 | WORD | Kontrast/Helligkeit auf neuen Wert (1... 255) setzen: | |||||||||||||||||||||
ctrbri | LOBYTE: Kontrast (0 = Nicht ändern) | ||||||||||||||||||||||
HIBYTE: Helligkeit (0 = Nicht ändern) |
Ereignis | Parameter | Beschreibung |
#CAM | 1..3 | Kamera 1..3 wird ausgewählt. |
Dieses Ereignis wird vor der Umschaltung und Überprüfung der Videoquelle ausgeführt, damit evtl. ein vorgeschalteter Video-Multiplexer auf einen bestimmten Eingang umgeschaltet werden kann. | ||
#NCAM | 1..3 | Kamera 1..3 wurde ausgewählt. |
Dieses Ereignis wird nach der Umschaltung und Überprüfung der Videoquelle aufgerufen. Die Systemvariable CAM enthält den gleichen Wert wie der übergebene Parameter. | ||
#VIDEO | 0 | Videoteil abgeschaltet. |
1 | Videoteil ohne TV/Monitor eingeschaltet (nur Kameras) | |
2 | Videoteil mit TV/Monitor aktiv | |
Variable | R/W | Typ | Beschreibung |
CAM | R | WORD | Ausgewählte Kamera (1..3). 0=Videoeingänge inaktiv. |
TVO | R | WORD | TV-Output Status: 0=Inaktiv, 1=Aktiv. |
Funktion | Parameter | Beschreibung | ||||||||
$20 | Simple Beep 200ms. | |||||||||
Beep über den externen Lautsprecher (Frequency = $20) | ||||||||||
$20 | WORD | Beep with variable length. | ||||||||
dur | Beep über den externen Lautsprecher für 'dur' ms. Lautstärke über Menuepunkt ''Ruf-Lautstärke'' einstellbar. | |||||||||
$21 | WORD | Beep with variable frequency and volume. | ||||||||
par | Dauerton mit vorgegebener Lautstärke und Frequenz über den externen Lautsprecher wiedergeben. | |||||||||
LOBYTE(par) = Frequenz (1..255) | ||||||||||
HIBYTE(par) = Volume (0..9) | ||||||||||
Falls Volume = 0 ist, wird die ''Ruf-Lautstärke'' aus dem entsprechenden Menue verwendet. | ||||||||||
$22 | WORD | Select microphone. | ||||||||
mic |
|
|||||||||
$23 | WORD | Beep with variable length and frequence. | ||||||||
par | Beep mit der eingestellten Ruf-Lautstärke, aber gewählter Frequenz und Länge über externen Lautsprecher ausgeben. | |||||||||
LOBYTE(par) = Frequenz | ||||||||||
HIBYTE(par) = Länge in ms. Falls HIBYTE(par)=0 wird 200ms angenommen. | ||||||||||
$24 | Accept incoming telephone call. | |||||||||
Annehmen ankommender Anrufe. Liefert TRUE, falls Anruf angenommen wurde. |
Ereignis | Parameter | Beschreibung |
#MIC | 0 | Audio-Verbindung beendet (Mikrofon abgeschaltet). |
1 | Internes Mikrofon bzw. MIC1 gewählt. | |
2 | Externes Mikrofon bzw. MIC2 gewählt. |
Variable | R/W | Typ | Beschreibung | ||||||
MIC | R | WORD | Ausgewählter Mikrofoneingang | ||||||
|
Die DTMF-Funktionen sind während einer bestehenden Voice-Verbindung verfügbar und haben sonst keine Funktion.
Funktion | Parameter | Beschreibung |
$30 | TEXT | Send DTMF Tone |
dtmf | DTMF-Zeichenfolge als Ton erzeugen. Erlaubte Zeichen im Text dtmf sind 0..9, *, #, A..F, e, b und das Leerzeichen für Pause. Die Töne haben eine Länge von 80ms und werden ohne Pausen nacheinander erzeugt. | |
$31 | 0 | Play Beep ''Recognized'' * |
$31 | 1 | Play Beep ''ok'' |
$31 | 2 | Play Beep/Announcement ''Error'' |
$31 | 3 | Play Beep/Announcement ''On'' |
$31 | 4 | Play Beep/Announcement ''Off'' |
$31 | 5 | Play Beep/Announcement ''Alarm'' |
$32 | WORD | Play announcement. |
slot | Ansage-Slot abspielen. | |
$33 | WORD | Record announcement. |
slot | Ansage in Slot 'slot' (0..59) Aufzeichnen mit guter Qualität. | |
$33 | WORD | Record announcement (low quality). |
slot+256 | Wie vor, aber mit reduzierter Qualität und halber Datenmenge |
Ereignis | Parameter | Beschreibung |
#DTMF | 0..999 | Die DTMF Funktion wurde per 24..24999 Eingabe über Telefon (Voice/DTMF-Anruf) aufgerufen und der DTMF-Rufannahmemodus. A2 ist eingestellt. |
#DTMF | 0..9 | Die DTMF-Taste 0..9 wurde über Telefon (Voice/DTMF-Anruf) aufgerufen und der DTMF-Rufannahmemodus A3 ist eingestellt. |
#DTMF# | Die DTMF-Taste # wurde über Telefon (Voice/DTMF-Anruf) aufgerufen und der DTMF-Rufannahmemodus A3 ist eingestellt. | |
#DTMFS | Die DTMF-Taste * wurde im DTMF-Rufannahmemodus A3 betätigt. |
Variable | R/W | Typ | Beschreibung |
DTMF | R | WORD | Falls der DTMF-Rufannahmemodus A2 eingestellt war: Letzte mit DTMF 24xxx ausgewählte Funktion per DTMF. Es wird nur der Wert xxx (ohne 24 geliefert). |
Funktion | Parameter | Beschreibung | ||||||||||||||||||||||||||||||||||||||||||
$41 | WORD | Setze Baudrate und Datenbits für com=1 (V.24): | ||||||||||||||||||||||||||||||||||||||||||
cfg |
|
|||||||||||||||||||||||||||||||||||||||||||
$48 | WORD | Set Baudrate for serial TX Port. | ||||||||||||||||||||||||||||||||||||||||||
... | cfg | Setze Baudrate und Datenbits für COM=8..COM=15 (Seriell TX via TTL-Port DB25) | ||||||||||||||||||||||||||||||||||||||||||
$4F |
|
Ereignise | Parameter | Beschreibung. |
#COM | 1 | Zeichen von der seriellen Schnittstelle (mit RT1,x lesen) empfangen. Wird nur aufgerufen, wenn V.24 für Remote-I/O freigegeben ist. |
#KEY | 31..39 | Taste 1..9 wurde auf der Konsole (z.B. Tastatur) eingegeben. |
D | Taste Enter gedrückt. | |
8 | Taste Backspace/Cursor Left gedrückt. | |
C | Taste Cursor Right gedrückt. | |
18 | Taste C (Clear) gedrückt. | |
7F | Taste Delete/Dekrement gedrückt. | |
9 | Taste Insert/Inkrement gedrückt. | |
1B | Taste Esc gedrückt. | |
A | Taste Cursor Down gedrückt. | |
B | Taste Cursor Up gedrückt. | |
1E | Taste Select gedrückt. | |
E,F,10 | Taste F1-F3 gedrückt |
Variable | R/W | Typ | Beschreibung | |||||||||||||||||||||||||||
CON | R | WORD | Console-Port | |||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
KEY | R | WORD | Tastencode der letzten gedrückte Taste auf der aktuellen Console. | |||||||||||||||||||||||||||
PD | R/W | WORD | Parallel Data. Liefert die Portadresse der TTL-Datenausgänge. | |||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
PS | R | WORD | Parallel Status. Liefert die Portadresse des TTL-Statusregisters/Eingänge. | |||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
PC | R/W | WORD | Parallel Control. Liefert die Portadresse des TTL-Controlports. | |||||||||||||||||||||||||||
|
Funktion | Parameter | Beschreibung | ||||||
$50 | WORD | Hangup. | ||||||
com | Host-Verbindung beenden. | |||||||
|
||||||||
$51 | TEXT | Dial ISDN connection. | ||||||
nr | ISDN Verbindung nach nr wählen. | |||||||
$52 | TEXT | Dial Modem connection. | ||||||
nr | Modem Verbindung nach nr wählen. | |||||||
$54 | TEXT | Dial ISDN2 connection. | ||||||
nr | ISDN2 Verbindung nach nr wählen. | |||||||
$56 | TEXT | Dial Voice/DTMF connection. | ||||||
nr | Voice Verbindung nach nr wählen. | |||||||
$57 | TEXT | Dial to Fax. | ||||||
nr | Fax Verbindung nach nr wählen. | |||||||
$58 | TEXT | Dial telephone connection. | ||||||
nr | Telefonie Verbindung nach nr wählen. | |||||||
$151... | TEXT | Dial to ... | ||||||
$159 | nr | Wie $5x, aber in NAME stehen die Verbindungsparameter wie z.B. T4 für den Wähltimeout. |
Ereignis | Parameter | Beschreibung |
#CONN | 81 | Abgehende ISDN Verbindung besteht. |
1 | Ankommende ISDN Verbindung besteht. | |
82 | Abgehende/Ankommende Modem-Verbindung besteht. | |
2 | Ankommende Modem-Verbindung besteht. | |
84 | Abgehende ISDN2-Verbindung besteht. | |
4 | Ankommende ISDN2-Verbindung besteht. | |
86 | Abgehende DTMF/Voice-Verbindung besteht. | |
6 | Ankommende DTMF/Voice-Verbindung besteht. | |
87 | Abgehende Fax-Verbindung besteht. | |
7 | Ankommende Fax-Verbindung besteht. | |
88 | Abgehende Audio/Telefonie-Verbindung besteht. | |
8 | Ankommende Audio/Telefonie-Verbindung besteht. | |
#DISC | 1 | ISDN-Verbindung beendet. |
2 | Modem-Verbindung beendet. | |
4 | ISDN2-Verbindung besteht. | |
6 | DTMF/Voice-Verbindung beendet. | |
7 | Fax-Verbindung beendet. | |
8 | Audio/Telefonie-Verbindung beendet. | |
#ONL | 0 | Host-Verbindung beendet (Offline). |
In diesem Ereignis-Makro werden alle applikationsspezifischen Makroende-Aufrufe (z.B. durch CA'xx_NAMEe') aufgerufen. | ||
1 | Als Sender Online mit Zugriffsberechtigung durch Host. | |
In diesem Ereignis-Makro werden alle applikationsspezifischen Makroinitialisierungen (z.B. durch CA'xx_NAMEi') aufgerufen. | ||
2 | Als Empfänger Online. | |
3 | Als Sender Online ohne Zugriffsberechtigung. | |
4 | Als Sender Online. Empfänger kann keine Makros darstellen. |
Variable | R/W | Typ | Beschreibung | ||||||||||||||
HOST | R | WORD | PC-Hostport, falls Verbindung besteht: | ||||||||||||||
|
|||||||||||||||||
CSV | R | WORD | Current Service. | ||||||||||||||
Diese Bitmaske gibt an, welche Verbindungen (Dienste) aktuell zwischen Box und Netz bestehen: | |||||||||||||||||
|
|||||||||||||||||
Falls keine Verbindungen bestehen, ist CSV=0 | |||||||||||||||||
CID | R | TEXT | CallerID: Nummer des aktuellen Anrufers. | ||||||||||||||
HVER | R | WORD | Host-Version während einer Online Verbindung: | ||||||||||||||
HIBYTE: Major Version (GUI-Type) | |||||||||||||||||
LOBYTE: Minor Version (Interface-Type) | |||||||||||||||||
HCAP | R | WORD | Host-Capabilities während einer Online-Verbindung: | ||||||||||||||
|
|||||||||||||||||
ACC | R | WORD | Access Permissions zeigt an, für welche Zugriffe die Remote-Seite nach ihrer Authorisierung Zugriffserlaubnis besitzt. Die Authorisierung geschieht über Browser, DTMF-Pin Eingabe, Password-Eingabe bzw. Rufnummern/IP-Adressüberprüfung. | ||||||||||||||
|
Variable | R/W | Typ | Beschreibung |
REL | R/W | WORD | Relais. Liefert die Portadresse der Relais-Ausgänge. |
Beispiele: | |||
Durch OR REL,4 wird der Ausgang 3 eingeschaltet, | |||
durch NA REL,4 ausgeschaltet, | |||
durch MS REL,4 geprüft, ob der Ausgang eingeschaltet ist, | |||
durch MC REL,4 geprüft, ob der Ausgang ausgeschaltet ist. |
Funktion | Parameter | Beschreibung | ||||||||||
$A0 | Gespeicherte Alarme und Störung löschen. | |||||||||||
$A1 | WORD | Alle Alarmspeicher von Linien deren zugeordnete Bits in linien gesetzt sind, werden gelöscht. | ||||||||||
linien |
|
|||||||||||
$A2 | 0 | Unscharf Schalten | ||||||||||
$A2 | 1 | Scharf Schalten | ||||||||||
$A3 | WORD | Alarmaktion 1..9 ausführen. | ||||||||||
aktion | ||||||||||||
$A4 | WORD | Get Alarmline Name. | ||||||||||
linie | Name der Alarmlinie 'linie' (1..4) in der Systemvariablen NAME ablegen. | |||||||||||
$AE | [TEXT] | Start Makro Event. | ||||||||||
Erzeugt ein ''Startevent'' vom Typ ''MAKRO'' für die Ereignisliste. | ||||||||||||
Falls der TEXT Parameter nicht übergeben wird, wird der Name des aktiven Makros als Ereignisparameter verwendet, anderenfalls der übergebene Textparameter. | ||||||||||||
$1AE | [TEXT] | Stop Makro Event. | ||||||||||
Erzeugt ein ''Stopevent'' vom Typ ''MAKRO'' für die Ereignisliste. | ||||||||||||
Falls der TEXT Parameter nicht übergeben wird, wird der Name des aktiven Makros als Ereignisparameter verwendet, anderenfalls der übergebene Textparameter. |
Ereignis | Parameter | Beschreibung |
#ALARM | 1..4 | Alarmzustand auf Linie x (x=1..4) eingetreten. |
#ALARMO | 1..4 | Alarmzustand auf Linie x (x=1..3) wurde gelöscht. |
#ARMED | 0 | Unscharf geschaltet. |
1 | Scharf geschaltet. |
Variable | R/W | Typ | Beschreibung | ||||||||
AIN | R | WORD | Alarm Inputs. Aktueller Alarmlinien Status. | ||||||||
Bit 0..2 entsprechen den Alarmlinien 1..3. | |||||||||||
AL | R | WORD | Alarm Latched. Gespeicherter Alarmstatus. | ||||||||
Bit 0..2 entsprechen den Alarmlinien 1..3. | |||||||||||
ASTAT | R | WORD | Alarm Status. | ||||||||
|
Unterstützung des CAN-Protokolls setzt den Anschluß eines CAN-Adapters auf dem Parallelport voraus. Das CAN-Protokoll ist ein Multimaster-Protokoll (ein Busteilnehmer kann jederzeit versuchen eine Nachricht auf dem Bus abzusetzen und muss nicht darauf warten von einem Master abgefragt zu werden). Die Nachrichten bestehen unter anderem aus einer 11 Bit langen Message-ID, die in der CAN Version 1.1 2048 Werte annehmen kann, und aus einem Datenteil von 0-8 Bytes. Die Kommunikation mittels Message-IDs und Datenbytes wird als Schicht 2 (Link-Layer) Kommunikation bezeichnet.
Um Interoperabilität zwischen Geräten verschiedener Hersteller herzustellen und die Funktionsvielfalt der CAN-Komponenten strukturiert dem Anwender zur Verfügung zu stellen, wurde auf Schicht 7 (Applikations-Layer) ein Objekt-Verzeichnis mit den entsprechenden Zugriffsmethoden definiert. Ein (vor allem in Europa) gebräuchliches Modell ist CAN-Open. Zur CAN-Open Kommunikation steht ein Satz von Anweisungen zur Verfügung. Schicht 2 und Schicht 7 Kommunikation sollte innerhalb eines CAN-Systems gleichzeitig verwendet werden (obwohl es technisch möglich wäre).
Eine Beschreibung von CAN (Layer 2) und CAN-Open findet sich auf http://www.can-cia.de.
Ein CAN-Message Header wird in den folgenden Anweisungen über eine 16-Bit
WORD-Variable übergeben. Darin sind mehrere Header-Bestandteile codiert:
Bit 0..10 sind die CAN-Message ID, die einen Wertebereich von 0..2047 annehmen kann.
Bit 11 gibt das RTR-Bit (Remote-Request) an.
Bit 12..15 geben die Länge des Datenteils an (0-8 Bytes).
Anweisung | Param 1 | Param 2 | Funktion |
CS | WORD | WORD | Send CAN Message. |
Sendet die Nachricht mit 0-2 Bytes Datenteil. | |||
Parameter 1: Message Header (ID). Sind die Bits 12..15=0, so wird eine Länge von 2 Bytes angenommen. | |||
Parameter 2: Databytes to send. | |||
CS | WORD | TEXT | Send CAN Message. |
Sendet die Nachricht mit 0-8 Bytes Datenteil. | |||
Parameter 1: Message Header (ID). Sind die Bits 12..15=0, so wird die Länge aus LENGTH(TEXT) berechnet. | |||
Parameter 2: Datenbytes, die gesendet werden sollen. | |||
CS | WORD | Send CAN Message. | |
Sendet die Nachricht ohne Datenteil. | |||
WORD: Message Header (ID). | |||
Ist Bit 11 (RTR) = 0, so sollten auch Bits 12..15 sollen=0 sein. | |||
Ist Bit 11=1, dann wird ein Remote Request für n Bytes Daten angefordert, wobei n in den Bits 12... 15 codiert ist. | |||
CR | WVAR | Read CAN Message. | |
Liest die nächste CAN-Nachricht aus der Empfangswarteschlange. | |||
Parameter 1: Message Header der empfangenen Nachricht. | |||
CR | WVAR | WVAR | Read CAN Message. |
Liest die nächste CAN-Nachricht mit Daten (0-2 Bytes). | |||
Parameter 1: Message Header der empfangenene Nachricht. | |||
Parameter 2: 1-2 Bytes CAN Message Identifier. | |||
CR | WVAR | TVAR | Read CAN Message. |
Liest die nächste CAN-Nachricht mit Daten (0-8 Bytes). | |||
Parameter 1: Message Header der empfangenene Nachricht. | |||
Parameter 2: 0-8 Bytes Daten der Nachricht. | |||
CR | 0 | CAN Test Message. | |
Liefert TRUE, wenn Nachricht (Layer 2 oder Layer 7) verfügbar. |
Anweisung | Param 1 | Param 2 | Funktion | |||||||||
OS | WORD | CAN Open Set Output. | ||||||||||
OC | WORD | CAN Open Clear Output. | ||||||||||
OI | WORD | CAN Open Read Input. | ||||||||||
Liefert TRUE (in RES), falls Output ''1'' ist. | ||||||||||||
OO | WORD | CAN Open Read Output. | ||||||||||
Liefert TRUE (in RES), falls Input ''1'' | ||||||||||||
WORD-Bit: | ||||||||||||
|
||||||||||||
Liefert $C0xx in RES falls ein CAN Error auftrat. | ||||||||||||
OW | WORD | WORD | CAN Open Write Object. | |||||||||
TEXT | TEXT | Schreibt die Object Daten aus TEXT2/WORD2 | ||||||||||
Als NodeId wird die Systemvariable NODE verwendet. | ||||||||||||
WORD1: Object Index. Subindex = 0 | ||||||||||||
oder | ||||||||||||
TEXT1: 2 Bytes Object Index + 1 Byte Subindex. | ||||||||||||
WORD2: Schreibt zwei Bytes Daten, falls WORD2 ³ 100h ist, sonst 1 Byte Daten. Daten in WORD2. | ||||||||||||
oder | ||||||||||||
TEXT2: Schreibt den Text mit seiner Länge in das gewählte Objekt. | ||||||||||||
OW | WORD | WORD | CAN Open Write Object. | |||||||||
TEXT | TEXT | Schreibt die Object Daten aus TEXT/WORD2 | ||||||||||
Als NodeId wird die Systemvariable NODE verwendet. | ||||||||||||
WORD1: Object Index. Subindex = 0 | ||||||||||||
oder | ||||||||||||
TEXT1: 2 Bytes Object Index + 1 Byte Subindex | ||||||||||||
WORD2: Schreibt zwei Bytes Daten, falls WORD2 ³ 100h ist, sonst 1 Byte Daten. Daten in WORD2. | ||||||||||||
oder | ||||||||||||
TEXT2: Schreibt den Text mit seiner Länge in das gewählte Objekt. | ||||||||||||
OG | WORD | WVAR | CAN Open Read Object. | |||||||||
TEXT | TEXT | Liefert in TEXT/WORD2 die Object Daten. | ||||||||||
Als NodeId wird die Systemvariable NODE verwendet. | ||||||||||||
WORD1: Object Index. Subindex = 0 | ||||||||||||
oder | ||||||||||||
TEXT1: 2 Bytes Object Index + 1 Byte Subindex | ||||||||||||
WVAR: Liest ein oder zwei Bytes Daten | ||||||||||||
oder | ||||||||||||
TVAR: Liest die Daten in die Variable ein (momentan max. 2 Bytes). |
Ist RES nach Ausführung einer OW oder OG Anweisung ¹ 0, dann ist ein CAN-Fehler aufgetreten.
LOBYTE(RES) | Bedeutung |
$00 | ok |
$C0... $EF | CANST Error (Bitmaske siehe dort) |
$F0 | No Response from Node |
$F1 | Unknown Response from Node |
$F2 | Segmented Message received and not implemented |
$F3 | CAN Error |
Funktion | Parameter | Beschreibung | ||||||||||||||
$C0 | WORD | Set CAN/CANOpen Baudrate. | ||||||||||||||
baud | Initialisiere CAN/CANOpen für Baudrate-Teiler baud. | |||||||||||||||
|
||||||||||||||||
Diese Initialisierung muß vor dem ersten Sende/Empfangs-Befehl bzw. nach Power-Up des CAN-Adapters einmal aufgerufen werden (z.B. im #RESET1 Makro). | ||||||||||||||||
$1C0 | [WORD | Reset CAN Node. | ||||||||||||||
node] | Ist node=0 oder nicht angegeben, wird auf allen angeschlossenen Knoten ein Reset durchgeführt. Diese Funktion sollte einmal im #RESET1 Makro aufgerufen werden. | |||||||||||||||
$2C0 | [WORD | Start Node. | ||||||||||||||
node] | Ist node=0 oder nicht angegeben, wird die Systemvariable NODE verwendet. | |||||||||||||||
$C1 | WORD | Set Message Filter Mask. | ||||||||||||||
mask | In maske kann eine Bitmaske für die akzeptieren CAN-Nachrichten gesetzt werden, damit nicht alle Nachrichten ein Makro-Ereignis auslösen. | |||||||||||||||
LOBYTE(mask): Bit 3... 11: Acceptance Code. | ||||||||||||||||
HIBYTE(mask): Bit 3... 11: Acceptance Mask. | ||||||||||||||||
Voreingestellt ist AcceptanceCode/AcceptanceMask=All. | ||||||||||||||||
Für CAN-Open Kommunikation sollte der Message Filter nicht verwendet werden, sondern nur für CAN Layer 2 Kommunikation. Die Bitbelegung entspricht dem des CAN-Headers (8.3.9) | ||||||||||||||||
$1C2 | Reset CAN Module. | |||||||||||||||
Der Software CAN-Treiber wird initialisiert. | ||||||||||||||||
$C2 | Clear CAN Receive Buffer. | |||||||||||||||
Der CAN-Empfangsbuffer wird gelöscht. |
Ereignis | Parameter | Beschreibung |
#CANIN | nodeid | CAN Open Input on Node nodeid changed (TX PDO 1/2 received) |
#CANERR | nodeid | CAN Open Error (Emergency) Message from nodeid received. |
#CANMSG | msgid | CAN Layer 2 Message msgid received. |
Variable | R/W | Typ | Beschreibung | ||||||||||||||
CANID | R | WORD | CAN Message der nächsten anstehenden Nachricht (Seite 8.3.9). Enthält den Wert 0FFFh, falls keine Nachricht verfügbar. | ||||||||||||||
CANST | R | WORD | CAN Status | ||||||||||||||
|
|||||||||||||||||
NODE | R/W | WORD | CAN Node ID für CAN Layer 2 Kommunikation. | ||||||||||||||
Voreingestellte NODE-Id ist 1. Durch SENODE,3 kann die Node-ID auf 3 verändert werden. Die Systemvariable NODE wird immer dann verwendet, wenn keine NodeID in den CAN-Open Anweisungen angegeben wurde oder ''0'' ist. |
Ereignisse, die von einer Remote-seitigen Bedienoberfläche (z.B. auf einem PC) an die pt-200 gesendet werden, besitzten per Namenskonvention als erstes Zeichen des Namens ein ~ Symbol. Der Name des Dialog-Ereignisses wird beim Erzeugen des Dialogelementes (Anweisung MD) übergeben. Abhängig vom Dialog wird noch ein Parameter zur Charakterisierung des Ereignisses angehängt (siehe Dialogelement auf Seite pageref).
Weiterhin gibt es noch Ereignisse, die bei Videoverbindung durch Mausklicks in das Bildfenster aufgerufen werden:
Ereignis | Parameter | Beschreibung |
#PICM | Während der Online-Verbindung am Host in das dargestellte Bild geklickt. In der Systemvariablen PAR wird die Position des Mausklicks übergeben: | |
LOBYTE=X-Block (0..95) | ||
HIBYTE=Y-Block (0..71) | ||
Der Wert ist unabhängig von der Auflösung, Vergrößerung und Teilbild- Darstellung. Bei einer PAL-Auflösung von 786x576 Punkten wird durch 8 geteilt, bei 96x72 Pixel Großen Bilder wird jeder Punkt addressiert. | ||
1 | Wie PICM aber ins Bild geklickt und Taste bleibt gedrückt (Move-Funktion). | |
2 | Wie PICM aber als Doppelklick. | |
3 | Wie PICM aber Taste wurde nach Move losgelassen. Die Position, die übergeben wird, ist die Position des ersten Tastendrucks von ''Move''. |
Ereignis | Parameter | Beschreibung |
#HOUR | 0..23 | Stundenwechsel auf die übergebene Stunde. |
Variable | R/W | Typ | Beschreibung | ||||||||||||||
DOW | R | WORD | Day of Week (Wochentag). | ||||||||||||||
|
|||||||||||||||||
WDAY | R | TEXT | Weekday, Aktueller Wochentagsname. | ||||||||||||||
So, Mo, Di, Mi, Do, Fr, Sa | |||||||||||||||||
SEC | R | WORD | Aktuelle Sekunde (0..59, Nur gerade Sekunden!) | ||||||||||||||
MIN | R | WORD | Aktuelle Minute (0..59) | ||||||||||||||
HOUR | R | WORD | Aktuelle Stunden /0..23) | ||||||||||||||
DAY | R | WORD | Aktueller Tag (1..31) | ||||||||||||||
MON | R | WORD | Aktueller Monat (1..12) | ||||||||||||||
YEAR | R | WORD | Aktuelles Jahr (1980..2050) | ||||||||||||||
TIME | R | TEXT | Aktuelle Zeit im Format 15:30:23 | ||||||||||||||
DATE | R | TEXT | Aktuelles Datum im Format 22.07.1997 |
GUI-Dialoge werden durch die MD-Anweisung (Make Dialog) (siehe Seite pageref) während der Online-Verbindung auf der grafischen Oberfläche des Bildempfängers angezeigt. Die MD-Anweisung erwartet als ersten Parameter den Namen des Dialogelementes, der nicht länger als 10 Zeichen sein soll. Dieser Name wird bei Interaktion mit dem entsprechenden Dialogelement als Makro-Ereignis an pt-200 geschickt. Als Namenskonvention wurde vereinbart, den Makro/Dialog/Ereignisnamen mit einer Tilde ~ zu beenden.
Als zweiter Parameter wird der MD-Anweisung der Typ des zu erzeugenden Dialogelementes und optionale Gestaltverändernde Parameter übergeben. Die Parameterliste besteht aus Attribut/Wert-Paaren der Form <Attribut>:<Wert>. Die einzelnen Attribut/Wert Paare werden mit Semikolon getrennt.
Beispiel: MD'ptLicht ','PB:Licht;W:3;H:3' ;
R,RED | Rot |
G,GRE | Grün |
B,BLU | Blau |
Y,YEL | Gelb |
W,WHI | Weiß |
B,BLA | Schwarz |
M,MAG | Magenta (Violett) |
MED | Mittelgrau |
LIG | Hellgrau |
DAR | Dunkelgrau |
0 | Schwarz |
1 | Blau |
2 | Grün |
3 | Cyan(Türkis) |
4 | Rot |
5 | Magenta(Violett) |
6 | Braun |
7 | Hellgrau |
8 | Dunkelgrau |
9 | Mittelgrau |
13 | Gelb |
14 | Weiß |
Die Dialogelemente werden an ein vorgegebenes Raster ausgerichtet (z.B. 16 Bildschirmpixel pro Rastereinheit (Gridunit)). Ein Dialog-Rasterfeld kann z.B.20 Rastereinheiten breit und 5 Rastereinheiten hoch sein. Für jedes Dialogelement wird ein freies Dialogfeld gesucht, das den Dialog (dessen Größe durch Breite und Höhe bestimmt wird) aufnehmen kann. Falls kein freier Platz mehr gefunden wird, wird das Dialogelement nicht dargestellt. Die Suche nach einem freien Platz wird in der Reihenfolge ''von oben nach unten'' und dann ''von links nach rechts'' durchgeführt. Durch die X und Y Attribute hat der Benutzer die Möglichkeit, die Position des Dialogelementes auf dem Rasterfeld selbst zu bestimmen.
Die Aussenabmessung (Outline) eines Dialoges wird aus der Überschriftenbreite, seiner Orientierung (Horizontal/Vertikal) und z.B. der Zahl der Checkbuttons, Radiobuttons oder der Displayfeldbreite berechnet, kann aber auch vom Benutzer durch die W und H Attribute vorgegeben werden.
Attribut | Wert | Beschreibung |
PB | Name | Der Name ist die Button-Beschriftung |
W | 1... | Breite des Dialogelementes in Grid-Units |
H | 1... | Höhe des Dialogelementes in Grid-Units |
X | 0... | X-Position der linken oberen Ecke des Dialogs |
Y | 0... | Y-Position der linken oberen Ecke des Dialogs |
WD übergibt ein WORD mit 0000 oder FFFF für TRUE bzw. FALSE. Der Button wird bei TRUE farblich hervorgehoben.
Als Ereignis bei Drücken der Taste wird geliefert:
DialogName | Falls Taste normal angeclickt |
DialogName1 | Falls Taste lange gedrückt bleibt |
DialogName2 | Falls Doppelclick auf Taste |
DialogName3 | Falls Taste nach langem Drücken losgelassen wird |
Durch die QD-Anweisung kann der aktuelle Zustand des Buttons abgefragt werden. Der Wert 0000 oder FFFF wird gelesen.
Attribut | Wert | Beschreibung |
RB | Name | Der Name ist die Button-Gruppen-Überschrift. Der Name ist optional. |
W | 1... | Breite des Dialogelementes in Grid-Units |
H | 1... | Höhe des Dialogelementes in Grid-Units |
X | 0... | X-Position der linken oberen Ecke des Dialogs |
Y | 0... | Y-Position der linken oberen Ecke des Dialogs |
O | H/V | Orientierung Horizontal/Vertikal. |
B0... B15 | Name | Ein Name zur Beschriftung des Radiobuttons, für das angegebene Bit |
WD übergibt den aktuellen Wert der Buttons als Bitmaske, wobei ein gesetztes Bit anzeigt, daß der Radiobutton markiert ist. Es sollte genau ein Bit gesetzt sein.
Bei Betätigen eines Radio-Buttons dieser Button-Gruppe wird ein Ereignis mit dem Namen des Dialogelementes erzeugt. In PAR oder mit der QD-Anweisung kann das Ereignismakro den Status der Radiobuttons abfragen (es ist das Bit gesetzt, das einem eingeschalteten Radiobutton entspricht).
Attribut | Wert | Beschreibung |
CB | Name | Der Name ist die Button-Gruppen-Überschrift. Der Name ist optional. |
W | 1... | Breite des Dialogelementes in Grid-Units |
H | 1... | Höhe des Dialogelementes in Grid-Units |
X | 0... | X-Position der linken oberen Ecke des Dialogs |
Y | 0... | Y-Position der linken oberen Ecke des Dialogs |
O | H/V | Orientierung Horizontal/Vertikal. |
B0... B15 | Name | Ein Name zur Beschriftung der Checkbox, für das angegebene Bit |
WD übergibt den aktuellen Wert der Buttons als Bitmaske, wobei ein gesetztes Bit anzeigt, daß der Checkbutton markiert ist.
Bei Betätigen eines Check-Buttons dieser Button-Gruppe wird ein Ereignis mit dem Namen des Dialogelementes erzeugt. In PAR oder mit der QD-Anweisung kann das Ereignismakro den Status der Checkbuttons abfragen. Jeder aktivierte Checkbutton entspricht einem gesetzten Bit.
Attribut | Wert | Beschreibung |
ET | Name | Der Name ist die Eingabefeld-Überschrift. Der Name ist optional. |
W | 1... | Breite des Dialogelementes in Grid-Units |
H | 1... | Höhe des Dialogelementes in Grid-Units |
X | 0... | X-Position der linken oberen Ecke des Dialogs |
Y | 0... | Y-Position der linken oberen Ecke des Dialogs |
LEN | 0... 140 | Max. Stringlänge (wird notfalls rechtsbündig mit Leerzeichen aufgefüllt). Voreingestellt ist 140 Zeichen. |
WD übergibt den aktuellen Wert des Eingabefeldes als Text.
Nach Verändern des Textfeldes wird das dem Dialogelement entsprechende Ereignismakro aufgerufen. In NAME oder mit der QD-Anweisung kann der Text des Eingabefeldes abgefragt werden.
Attribut | Wert | Beschreibung |
EN | Name | Der Name ist die Eingabefeld-Überschrift. Der Name ist optional. |
W | 1... | Breite des Dialogelementes in Grid-Units |
H | 1... | Höhe des Dialogelementes in Grid-Units |
X | 0... | X-Position der linken oberen Ecke des Dialogs |
Y | 0... | Y-Position der linken oberen Ecke des Dialogs |
MIN | 0... 65535 | Minimal erforderlicher Eingabewert. |
LIM | 0... 65535 | Maximal erlaubter Eingabewert. |
WD übergibt den aktuellen Wert des Eingabefeldes als numerischen Wert.
Nach Verändern des Textfeldes wird das dem Dialogelement entsprechende Ereignismakro aufgerufen. In PAR oder mit der QD-Anweisung kann der Wert des Eingabefeldes abgefragt werden.
Der Schieberegler zeigt mit prozentualer Darstellung (0-100%) einen Wert aus dem Bereich 0..255 an und verändert ihn bei Betätigung.
Attribut | Wert | Beschreibung |
SL | Name | Der Name ist die Überschrift des Schiebereglers. Der Name ist optional. |
W | 1... | Breite des Dialogelementes in Grid-Units |
H | 1... | Höhe des Dialogelementes in Grid-Units |
X | 0... | X-Position der linken oberen Ecke des Dialogs |
Y | 0... | Y-Position der linken oberen Ecke des Dialogs |
O | V/H | Gibt an, ob ein horizontaler oder vertikaler Regler verwendet wird. |
WD übergibt den aktuellen Wert des Schiebereglers als numerischen Wert im Bereich 0... 255. Nur das Lowbyte wird ausgewertet.
Nach Verändern des Schiebereglers wird das dem Dialogelement entsprechende Ereignismakro aufgerufen. In PAR oder mit der QD-Anweisung kann der Wert des Reglers (0..255) abgefragt werden.
Attribut | Wert | Beschreibung |
LD | Name | Der Name dient zu Beschriftung der LED. |
X | 0... | X-Position der linken oberen Ecke der LED |
Y | 0... | Y-Position der linken oberen Ecke der LED |
COL | farbe | Farbe der LED im aktiven Zustand (Default: Grün) |
WD übergibt 0000 (TRUE), falls die LED in der vorgewählten Farbe eingeschaltet werden soll, FFFF (FALSE), falls die LED ausgeschaltet werden soll und einen anderen Wert, um die LED in einer ausgewählten Farbe einzuschalten.
Da keine Werteveränderung dieses statischen Dialogelementes stattfinden kann, wird kein Ereignismakro für die LED aufgerufen. Die QD-Anweisung liefert den Status der LED als numerischen Wert: 0000 für ''an'' und FFFF für ''aus''.
Attribut | Wert | Beschreibung |
ND | Name | Der Name ist die Überschrift des Display. Der Name ist optional. |
W | 1... | Breite des Dialogelementes in Grid-Units |
H | 1... | Höhe des Dialogelementes in Grid-Units |
X | 0... | X-Position der linken oberen Ecke des Dialogs |
Y | 0... | Y-Position der linken oberen Ecke des Dialogs |
COL | farbe | Segmentfarbe (Default: Grün) |
BG | farbe | Hintergrundfarbe (Default: Schwarz) |
STY | 7 | Momentan ist nur 7 (7-Segment Display) definiert. |
LEN | 1... | Maximale Zahl von Ziffern für die Anzeige (Default: 4 für Hex, 8 für Binär, 5 für Dezimal) |
F | S | Signed Format. Interpretiert Wert als vorzeichenbehaftete Zahl. |
Z | Leading Zeroes. Zeigt führende Nullen an. | |
H | Hexadezimal. Zeigt Hexadezimalzahlen an. | |
D | Dezimal. Zeigt Dezimalzahlen an. | |
B | Binär. Zeigt Binärzahlen an. | |
L | Large. Doppelte Größe. | |
0 | Decimal point xxxxx. (Default: No decimal point) | |
1 | Decimal point xxxx.y | |
2 | Decimal point xxx.yy | |
3 | Decimal point xx.yyy | |
4 | Decimal point x.yyyy | |
5 | Decimal point .yyyyy | |
UN | chars | Unit (Default: None). Einheitenzeichen, die hinter das Anzeigefeld geschrieben werden. Example UN:C |
WD übergibt den numerischen Wert, der in das Display geschrieben werden soll.
Da keine Werteveränderung dieses statischen Dialogelementes stattfinden kann, wird kein Ereignismakro für das Display aufgerufen. Die QD-Anweisung liefert den numerischen Wert, der im Display steht.
Attribut | Wert | Beschreibung |
TD | Name | Text Display (Name als Überschrift optional) |
W | 1... | Breite des Dialogelementes in Grid-Units |
H | 1... | Höhe des Dialogelementes in Grid-Units |
X | 0... | X-Position der linken oberen Ecke des Dialogs |
Y | 0... | Y-Position der linken oberen Ecke des Dialogs |
COL | farbe | Textfarbe (Default: Grün) |
BG | farbe | Hintergrundfarbe (Default: Schwarz) |
F | Vn/Bn | Zeichensatz-Typ: V=Vektor Font, B=Bitmap Font. Optional folgt nach dem Font-Typ folgt die Fontgrösse als Ziffer zwischen 1 und 9. |
WD übergibt den Text, der in das Display geschrieben werden soll.
Da keine Werteveränderung dieses statischen Dialogelementes stattfinden kann, wird kein Ereignismakro für das Display aufgerufen. Die QD-Anweisung liefert den Text, der im Display steht.
Attribut | Wert | Beschreibung |
ST | Name | Der Name enthält den Beschriftungstext |
H | 1... | Textgröße und Höhe in Grid-Units |
X | 0... | X-Position der linken oberen Ecke des Textes |
Y | 0... | Y-Position der linken oberen Ecke des Textes |
COL | farbe | Textfarbe (Default: Dunkelgrau) |
Obwohl dieses Dialogelement einen statischen Text repräsentiert, der also nicht verändert werden sollte, kann mit der WD-Anweisung eine Veränderung des Textes vorgenommen werden. Da sich dadurch aber dessen Länge ändert und so evtl. andere Dialogelemente überschrieben werden können, sollte besser ein Text-Display verwendet werden.
Da keine Werteveränderung dieses statischen Dialogelementes stattfinden kann, wird kein Ereignismakro aufgerufen. Die QD-Anweisung liefert den statischen Text zurück.
Der Message Text ist kein sichtbares Dialogelement, benötigt also keinen Platz auf der Dialog-Rasterfläche. Der übergebene Text wird als Hinweistext auf den Bildschirm des Benutzers geschrieben.
Attribut | Wert | Beschreibung |
MT | Name | Der Name enthält einen Prefix für das Message-Window. Der Name ist optional. |
Der Text, der der WD-Anweisung an dieses Dialogelement übergeben wird, wird mit dem Prefix des Dialogelementes dem Benutzer z.B. in Form einer Ausgabe in ein Mitteilungsfenster präsentiert.
Die QD-Anweisung liefert ein undefiniertes Ergebnis.
Logfile ist ein ''virtueller'' Dialog, der auf Dateien operiert, die auf dem Bildempfangsgerät gespeichert sind. Dieser Dialog benötigt keinen Platz auf dem Dialograsterfeld.
Beispiel:
MD '~pt_lf','LF:r1.dat;MO:xxxx;LEN:100' ;
Die MD-Anweisung meldet die Datei für Dateioperationen der pt-200 auf dem Host (z.B. Empfänger PC mit ptWin-Bediensoftware ) an. Nach dem Mode-Attribut dürfen mehrere Modusauswahl Buchstaben gelistet werden (ohne Trennzeichen).
Attribut | Wert | Beschreibung | ||||||||
LF | Name | Als Name wird der Dateiname der zu verwendenden Datei auf dem lokalen Dateisystem des Benutzers (Hosts) angegeben. Wird kein Name angegeben, wird der Makroname (ohne Sonderzeichen) als Dateiname verwendet. Falls keine Dateinamenerweiterung (.TXT oder ähnlich) nach LF: angegeben wurde, wird der Dateiname mit .TXT erweitert, falls die Datei als Text-Datei geöffnet wird (Default) und mit .DAT erweitert, falls es sich um eine Datendatei handelt. | ||||||||
MO | R/W | Open File for Read or Write (Default) | ||||||||
D/T | Open File for Data (kein CR+LF) or Text (Default, jede Zeile wird mit CR+LF abgeschlossen) | |||||||||
L/F | Linemode/Fieldmode: | |||||||||
L Linemode (Default): | ||||||||||
Jeder WD-Befehl wird als eigener Datensatz in die Datei geschrieben. Im FixedRecord Mode (LEN ¹ 0) wird mit dem Füllzeichen auf die gewünschte Zeilen/Recordlänge aufgefüllt. Bei Textdateien wird CR+LF automatisch angefügt. | ||||||||||
F Fieldmode: | ||||||||||
Jeder WD-Befehl schreibt nur die übergebene Nummer/Zeichen in die Datei. Ein Zeilenende/Recordende wird mit WD'...','' (also einem leeren 2.Parameter) geschrieben. | ||||||||||
A/C | Append/Create File: | |||||||||
A Append (Default). Ein Schreibzugriff fügt an das Dateiende an. | ||||||||||
C Create file. Datei wird bei MD neu angelegt (gelöscht). | ||||||||||
B | Buffered Mode (Datei wird nur beim KD oder beim Verbindungsaufbau geschlossen. Dadurch können keine fremdem Programme darauf zugreifen. Die Dateioperationen sind schneller). | |||||||||
Default: Unbuffered Mode. Die Datei wird nach jedem Zugriff geschlossen. | ||||||||||
0... 3 | Directory: | |||||||||
|
||||||||||
Falls kein Dateiname nach LF: angegeben wurde, wird im Falle Directory=0 die aktuelle Uhrzeit HHMMSStt mit Hundertstel-Sekunden als Dateiname verwendet, ansonsten der Makroname des Dialogelementes für LF. Zusätzliche Directoryangaben im Dateinamen nach LF beziehen sich immer auf das mit 0-3 festgelegte Verzeichnis und nicht auf das Hauptverzeichnis des PCs (aus Sicherheitsgründen). | ||||||||||
LEN | 0 | Variable Length Record/Line Mode (Default). | ||||||||
Record und Zeilenlängen sind so kurz wie nötig. | ||||||||||
LEN | 1... | Fixed Record length Mode. | ||||||||
Jeder Record/Jede Zeile wird auf die hier angegebene Länge mit Füllzeichen aufgefüllt. Bei Text-Dateien ist das Füllzeichen Space, bei Daten-Dateien ist es 00. Falls die aktuelle Recordlänge bereits vor dem Zeilenende länger ist als LEN, wird kein Füllzeichen angefügt. |
Im WriteMode werden der zweite Parameter als Zwei-Byte Zahl oder Text in die Datei geschrieben. In LineMode bis eventuell bis zur gewünschten Record/Zeilenlänge mit Füllzeichen aufgefüllt oder im Field-Mode so belassen.
Im ReadMode hat WD eine andere Bedeutung: Der übergebene (WORD)-Parameter positioniert
Da n max. 64k groß werden kann, ist diese Positionierung auf die ersten 64k einer Datei beschränkt.
Ein nun folgender QD Befehl liest die Daten ab der vorgewählten Position. Nach dem Dateiöffnen (MD-Befehl) steht der Lesezeiger am Dateianfang.
Die QD-Anweisung liest aus einer Datei, sofern sie zum Lesen geöffnet wurde (sequentiell vom Anfang an). Im ReadMode wird der BufferedMode und der FieldMode ignoriert. Die Datei bleibt immer geöffnet. Es werden immer ganze Records/Zeilen gelesen. Bei Textdateien wird kein CR+LF übertragen.
Diese Anweisung schließt die Datei, löscht sie aber nicht.