Stav portu

GETPORTSTATUS

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

Vstup Typ Význam
HANDLEIO.COMMHANDLEParametry běžící komunikace
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)
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
  • © Energocentrum Plus, s.r.o. 2017 - 2024