Obsah

Čtení dat z portu

Název funkce

READPORT

Funkce

Funkce readport čte data z daného portu.

Vstupy

Vstup Typ Význam
DATA BYTE_PTR Adresa, kam se zapisují načtená data
HANDLE IO.COMMHANDLEParametry k běžící komunikaci
MAXLENGTHINT Maximální délka dat

Výstupy

VýstupTypVýznam
INTVýstup:
0…Data nepřijata
1…Data přijata

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