Obsah

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
HANDLEIO.COMMHANDLEParametry běžící komunikace

Výstupy

VýstupTypVýznam
INTVý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