<< Inhaltsverzeichnis Suchen >>

CALL  _ _OPENCOMM

Anweisung

Syntax:

CALL  _ _OPENCOMM(&<DATEI-NUMMER>,<COM>,<PARAMETER>,
                                         <LAENGE-INPUT-PUFFER>,
                                         <LAENGE-OUTPUT-PUFFER>,
                                         &<ERGEBNIS>)

<DATEI-NUMMER>                      = <NUM-VARIABLE>%
<COM>                                             = <STRING-AUSDRUCK>
<PARAMETER>                              = <STRING-AUSDRUCK>
<LAENGE-INPUT-PUFFER>        = <NUM-AUSDRUCK>
<LAENGE-OUTPUT-PUFFER>    = <NUM-AUSDRUCK>
<ERGEBNIS>                                  = <NUM-VARIABLE>%

 

Bedeutung:

Öffnet unter MS-DOS und WINDOWS eine serielle Schnittstelle für Input/Output.

In <DATEI-NUMMER> wird die Dateinummer zurückgeliefert, wenn die Schnittstelle geöffnet werden konnte. Diese Dateinummer muß in den Anweisungen CALL __WRITECOMM, CALL __READCOMM und CALL __CLOSECOMM angegeben werden.

<COM> bezeichnet die Schnittstelle ("COM1", "COM2", usw.).

Bei <PARAMETER> sind die Schnittstellenparameter, durch Komma getrennt, anzugeben: Baudrate, Parity, Datenbits, Stopbits. Die Syntax ist dieselbe wie beim MODE-Befehl von MS-DOS.

<LAENGE-INPUT-PUFFER> legt die Größe des Empfangspuffers fest.

<LAENGE-OUTPUT-PUFFER> legt die Größe des Sendepuffers fest. Dieser Parameter ist unter Java ohne Bedeutung.

<ERGEBNIS> liefert Null, wenn kein Fehler auftrat, andernfalls die Fehlernummer. Die Bedeutung der Fehlernummern ist im Handbuch des C-Compilers bei den Befehlen OpenComm, BuildCommDCB, SetCommState und CreateFile beschrieben.

 

 

 

 

Achtung: Unter MS-DOS haben die Parameter <LAENGE-INPUT-PUFFER> und <LAENGE-OUTPUT-PUFFER> keine Bedeutung, da die Daten nicht gepuffert werden. Werden Daten von der seriellen Schnittstelle gelesen, so muß unter MS-DOS das empfangende Programm während der gesamten Datenübertragung lesebereit sein, andernfalls können Daten verlorengehen.

 

 

 

 

 

 

Beispiel:

CALL  _ _ OPENCOMM(&DNR%,"COM1","9600,n,8,1",1024,512,
                                          &RET%)
IF RET% <> 0
THEN ...
Fehler ...
ENDIF

 

siehe auch:

CALL __CLOSECOMM, CALL __READCOMM, CALL __WRITECOMM