Vai al contenuto

SysFGetOSpace, get output available space on file

Vai all indice del manuale di programmazione
Tipo: Funzione
Libreria LogicLab: eLLabXUnified12Lib
Libreria Codesys: Non disponibile

Alias della funzione SysGetOSpace.

La funzione ritorna lo spazio disponibile per la scrittura sul terminale di I/O (Stream) indicato dal parametro File, precedentemente aperto dalla relativa funzione di apertura risorsa. Il valore ritornato indica quanti caratteri possono essere scritti nel buffer.

Verifica trasmissione caratteri sullo stream

Questa funzione oltre ad essere utilizzata per controllare lo spazio nel buffer di uscita dello stream di comunicazione, può essere utilizzata anche per verificare se tutti i caratteri trasferiti nel buffer di uscita sono stati effettivamente trasmessi sullo stream. Per fare questo basta controllare se il valore di spazio disponibile coirrisponde alla dimensione del buffer di uscita dello stream

    CASE (CaseNr) OF

        // ---------------------------------------------------------------------
        // Check if there is a space in the output stream and write message.

        1:
        IF (SysFGetOSpace(Fp) < Sysstrlen(ADR(Message))) THEN RETURN; END_IF;
        i:=Sysfwrite(ADR(Message), Sysstrlen(ADR(Message)), 1, Fp);
        CaseNr:=CaseNr+1;

        // ---------------------------------------------------------------------
        // Wait until the message is been sent out from the stream...

        2:
        IF (TO_UDINT(SysFGetOSpace(Fp)) <> SysFGetOBfSize(Fp)) THEN RETURN; END_IF;
        ....
        ....
    END_CASE;

// [End of file]

Descrizione

File (eFILEP) Terminale di I/O (Stream) ritornato dalla funzione di apertura risorsa.

La funzione ritorna un (INT) con lo spazio disponibile nello stream. Se buffer di uscita stream vuoto viene ritornata la dimensione del buffer.

Immagine funzione SysFGetOSpace

Esempi

Si rimanda all’esempio della SysSerialPort.

Was this article helpful?