Function DE Version 4.00

@ReadNTComPort

NTComPort

Syntax

@ReadNTComPort(OSCOMHANDLE1;RETTYPE2;LENGTH3;STATUS4);
@ReadNTComPort(OSCOMHANDLE1;RETTYPE2;LENGTH3;STATUS4;TIMEOUT5);
@ReadNTComPort(OSCOMHANDLE1;RETTYPE2;TEXT3;STATUS4);
@ReadNTComPort(OSCOMHANDLE1;RETTYPE2;TEXT3;STATUS4;TIMEOUT5);
@ReadNTComPort(OSCOMHANDLE1;RETTYPE2;TEXT3;STATUS4;TIMEOUT5;RETELE6);
@ReadNTComPort(OSCOMHANDLE1;RETTYPE2;TEXTLIST3;STATUS4);
@ReadNTComPort(OSCOMHANDLE1;RETTYPE2;TEXTLIST3;STATUS4;TIMEOUT5);
@ReadNTComPort(OSCOMHANDLE1;RETTYPE2;TEXTLIST3;STATUS4;TIMEOUT5;RETELE6);

Beschreibung

Nur für Engine unter Windows!

Lesen eines Wertes von dem COM-Port mit dem OSCOMHANDLE OSCOMHANDLE1 und zurückgeben als @Funktionsergebnis. Der gelesene Wert soll vom Typ TEXT RETTYPE2 sein. Gelesen wird entweder 1 Wert (für Ordinal-Typen) oder FN LENGHT3 Zeichen bzw. solange, bis TEXT TEXT3 oder ein Element der TEXTLIST TEXTLIST3 erkannt wurde. Diese gelesenen Trennzeichen sind dann aber nicht im Rückgabewert enthalten.

Ein angegebener FN TIMEOUT5 ändert für diesen Lesevorgang den gesetzten globalen Wert. Dieser Timeout stellt die maximale Zeit dar, die ein Lesevorgang für die angegebene Anzahl von Zeichen dauern darf. Intern wird dieser noch um 3ms pro gelesenem Zeichen erhöht. Wenn keine Längenvorgabe gemacht wurde, dann beginnt der Timeout nach jedem gelesenen Zeichen neu zu zählen.

In einer angegebenen Variable NUMBER RETELE6 wird die Elementnummer – bezogen auf TEXT3/TEXTLIST3 – zurückgeliefert, die zum Ende des Lesevorgangs geführt hat oder 0 im Fehlerfall. TEXT TEXT3 wird dabei als Liste mit einem Element betrachtet.

Über NUMBER STATUS4 kann der Erfolg des Lesevorgangs erkannt werden. Wenn sie den Wert 1 annimmt wird noch keine Fehlermeldung als @Funktions-Ergebnis zurückgegeben.

TEXT RETTYPE2 (zu lesender Typ):
Wert   Bedeutung
A      TEXT
B      BINARY (derzeit als RICHTEXT)
N      NUMBER (konvertiertes WORD)
F      FLOAT (konvertierter double)
L      FLOAT (konvertierter long)
D      FLOAT (konvertiertes DWORD)
T      TIMEDATE

NUMBER STATUS4 (Rückgabewert):
Wert   Bedeutung
0      Mitteilung: OK, kein Fehler
1      Mitteilung: Read Timeout abgelaufen
2      Fehler: Maximale TEXT-Länge überschritten (nur im TEXT Modus!)
32768   Fehler: Unspezifizierter Fehler

Beispiel: @ReadNTComPort(OSCOMHANDLE1;RETTYPE2;LENGTH3;STATUS4)

OSCOMHANDLE1:=@OpenNTComPort("COM1");
@LogReport(@ReadNTComPort(OSCOMHANDLE1;"A";20;Status));
OSCOMHANDLE1:=@CloseNTComPort(OSCOMHANDLE1);

Öffnet einen COM-Port, liest 20 Zeichen Text ein, gibt ihn aus und schließt den COM-Port anschließend wieder.
Status enthält den aktuellen Lese-Status.

Beispiel: @ReadNTComPort(OSCOMHANDLE1;RETTYPE2;TEXT3;STATUS4)

OSCOMHANDLE1:=@OpenNTComPort("COM1");
@LogReport(@ReadNTComPort(OSCOMHANDLE1;"A";"*";Status));
OSCOMHANDLE1:=@CloseNTComPort(OSCOMHANDLE1);

Öffnet einen COM-Port, liest bis zum ersten "*"-Zeichen Text ein, gibt ihn aus und schließt den COM-Port anschließend wieder.
Status enthält den aktuellen Lese-Status.

Beispiel: @ReadNTComPort(OSCOMHANDLE1;RETTYPE2;TEXTLIST3;STATUS4)

OSCOMHANDLE1:=@OpenNTComPort("COM1");
@LogReport(@ReadNTComPort(OSCOMHANDLE1;"A";"*":@Newline));
OSCOMHANDLE1:=@CloseNTComPort(OSCOMHANDLE1);

Öffnet einen COM-Port, liest bis zum ersten "*"-Zeichen bzw. @Newline Text ein, gibt ihn aus und schließt den COM-Port anschließend wieder.
Status enthält den aktuellen Lese-Status.