Dokumentace

Get Port Status

Stav portu

Název funkce

GETPORTSTATUS

Funkce

Funkce zjistí status komunikace. Významné hodnoty jsou popsány níže, ostatní hodnoty představují interní chybu.

Vstupy

Vstup Typ Význam
HANDLE IO.COMMHANDLE Parametry běžící komunikace

Výstupy

Výstup Typ Význam
=> INT Výstup:
0 (OK)
25 (nepodařilo se otevřít port)
31 (empty - prázdný buffer)
34 (busy - jsou odvysilávána data)

Příklad volání v ST:

PROGRAM main
(program's body)
var
def : string;
handle : io.commhandle;
state : int := 0;
data : array[0..31] of byte;
dataRecv : array[0..31] of byte;
received : int;
end_var
case state of
0:
(*def := 'tcp:192.168.1.4:7';*)
(*def := 'udp:192.168.1.4:7';*)
def := 'serial:10:9600,8,N,1';
handle := io.openport(def);
if handle >= 0 then
state := 1;
end_if;
1:
if io.getportstatus(handle) = 0 then (* OperationStatus_Ok *)
(* spojeni navazano *)
data[0] := 5;
data[1] := 10;
data[2] := 6;
data[3] := 11;
if io.writeport(handle, adr data[0], 10) then
state := 2;
end_if;
end_if;
2:
if io.getportstatus(handle) = 0 then (* OperationStatus_Ok *)
(* vsechna data odeslana *)
state := 3;
end_if;
3:
received := io.readport(handle, adr dataRecv[0], 20);
if received > 0 then
(* nejaka data prijata *)
io.closeport(handle);
state := 4;
else
io.getportstatus(handle);
end_if;
else
state := 4;
end_case;
END_PROGRAM