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.
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);
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. |