FC_ReadSTRING

Panoramica

Tipo

Funzione

Disponibile a partire da

V1.0.4.0

Proveniente da

-

Implementa

-

Task

Copiare i caratteri memorizzati in un tipo dati qualsiasi in una variabile di tipo STRING.

Descrizione funzionale

Con l'uso di questa funzione, i caratteri ASCII potenzialmente ricevuti possono essere copiati dal buffer di ricezione in una variabile di tipo STRING.

L'origine dati di un tipo di dati qualsiasi viene passato alla funzione con l'uso di un puntatore attraverso l'ingresso i_pbyBuffer. La destinazione dei dati, la variabile di tipo STRING, passa alla funzione con l'uso di un puntatore attraverso l'ingresso i_psString. Il numero massimo di caratteri da copiare è determinato attraverso l'ingresso i_uiMaxLength.

Attraverso l'ingresso i_xStopAtZero, si determina se la funzione copia tutti i byte specificati da i_uiMaxLength o se il processo di copia si interrompe al primo carattere NUL (16#0) rilevato. Tenere presente che il carattere NUL indica la fine del valore di una variabile di tipo STRING.

Se non viene rilevato alcun carattere NUL finché non viene copiato il numero massimo di caratteri o l'ingresso i_xStopAtZero è FALSE, la funzione scrive il carattere NUL nell'nesimo byte della memoria di destinazione. n = i_uiMaxLength + 1. Ossia, il valore massimo di i_uiMaxLength è uguale alla dimensione della memoria di destinazione - 1.

NOTA: Per impedire la violazione di accesso provocata dall'accesso non valido (fuori limite) del puntatore alla memoria, utilizzare l'operatore aritmetico SIZEOF insieme alla memoria di destinazione per determinare il valore di i_uiMaxLength.

Esempio di codice

Esempio di codice per l'uso di FC_ReadSTRING in testo strutturato (ST):

// copiare i dati in una variabile di tipo STRING

TCPUDP.FC_ReadSTRING(

i_pbyBuffer := ADR(abyReceiveBuffer),

i_psString := ADR(sData),

i_uiMaxLength := SIZEOF(sData)-1,

i_xStopAtZero := TRUE);

Interfaccia

Ingresso

Tipo di dati

Descrizione

i_pbyBuffer

POINTER TO BYTE

Puntatore all'indirizzo di memoria da cui copiare (origine).

i_psString

POINTER TO STRING

Puntatore all'indirizzo di memoria in cui copiare (destinazione, una variabile di tipo STRING)

i_uiMaxLength

UINT

Numero massimo di byte da copiare.

i_xStopAtZero

BOOL

Se TRUE, il processo di copia si interrompe quando viene rilevato il primo carattere NUL (16#0). Se FALSE, il numero di byte specificati con i_uiMaxLength e un carattere NUL vengono scritti nella memoria di destinazione.

Valore restituito

Tipo di dati

Descrizione

UINT

Numero di byte scritti nella memoria di destinazione.