Funzione per la ricezione di una risposta da un server ad un messaggio UDP precedentemente inviato.
Questa chiamata ha senso solo dopo aver chiamato la corrispondente funzione udp_send_notify(). La funzione può essere usata solo per comunicazioni da parte del client.
Sintassi |
i32 udp_recv_notify (i32 idx, buff, i32 buffLen, real tOutRx, real tOutTot) |
||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
idx |
Numero dell'handler della comunicazione UDP. |
||||||||||||||||||||
buff |
Buffer generico destinato a contenente il pacchetto dati ricevuto. Può essere una variabile string, una struct_p (struttura packed) oppure un array di struct_p. Nel caso di struct_p, la variabile deve essere dichiarata globale. Se struttura, il primo membro deve essere dichiarato di tipo u32 e rappresenta l'identificatore del messaggio msgId; il valore viene attribuito dalla funzione udp_send_notify(). msgId deve essere utilizzato lato server nel messaggio di risposta e serve per garantire l'instradamento al client corretto. Tutti gli altri dati sono ad uso utente. La dimensione massima di questa struttura è: MAX_UDP_DATA=508 byte. |
||||||||||||||||||||
buffLen |
Numero di byte massimo da ricevere (compreso msgId). |
||||||||||||||||||||
tOutRx |
Allo scadere di questo tempo di timeout viene automaticamente ritrasmesso il messaggio. |
||||||||||||||||||||
tOutTot |
Allo scadere di questo tempo di timeout la funzione viene abortita. È possibile chiamare la funzione con tOutTot=0 per provocare l'abort della funzione stessa. |
||||||||||||||||||||
Risultato |
Rende:
Per vedere più nello specifico alcuni errori resi, vedi Tabella errori resi. |
||||||||||||||||||||
Validità |
Rule, Task. |
||||||||||||||||||||
Note |
I due timeout potranno funzionare correttamente solo se la funzione viene chiamata a una frequenza sufficientemente alta rispetto ai tempi specificati. |
Per un esempio concreto vedi in ambiente RDE: Workspace -> Speciali -> Libreria degli esempi.