Funzione che rende lo stato dell'ultima trasmissione fatta sul dispositivo specificato.
|
i32 ser_485_tx_sts (i32 nSer)
|
|
Numero del canale seriale.
|
|
Rende il codice di stato. Il significato dei bit che compongono il codice di stato è:
|
|
|
0
|
0x00000001
|
Trasmissione 485 in corso.
|
1
|
0x00000002
|
Trasmissione finita (inviato ultimo carattere).
|
2
|
0x00000004
|
Esito positivo - trasmissione finita e ricevuto anche ultimo carattere trasmesso.
|
3
|
0x00000008
|
Esito negativo - trasmissione abortita (causa bit 8).
|
4
|
0x00000010
|
Esito negativo - trasmissione abortita, timeout ricezione.
|
5
|
0x00000020
|
Libero.
|
6
|
0x00000040
|
Libero.
|
7
|
0x00000080
|
Errori di trasmissione/ricezione.
|
8
|
0x00000100
|
Esito negativo - seriale non in modo 485 (12).
|
9
|
0x00000200
|
Esito negativo - seriale non gestibile in modo 485.
|
|
|
Rule, Task.
|
|
|
•Genera 9900 ill. Arg A:1 T:x ST:xxx se nSer illegale
•Genera 9901 ill. Funct. T:x ST:xxx se la seriale non è in modo 485 (vedi ser_mod) |
Esempio di utilizzo:
function SendCommand()
lungh = str_len(StrTx)
ser_bin_out(NUMBER, StrTx, lungh)
FotoTempo = tfb
loopTx:
if((ser_485_tx_sts(NUMSER) r_and 0x31C))
ErroriTx = (ser_485_tx_sts(NUMSER) r_and 0x318)
return
endif
if((tfb - FotoTempo) > 1.0)
ErroriTx = 0x2000
return
endif
goto loopTx
return
end_fun
|
|