Archivi (sola lettura) > Segnalazione bug (Gambas 2)

CR LF su linea seriale

(1/1)

Stefano:
Ciao a tutti,
ho notato un comportamento strano sulla gestione del CR ricevuto da una linea seriale: essendo certo che sia stato spedito un CR (valore 13 decimale 0D esadecimale) viene letto dalla READ (non LINE_INPUT) di gambas come LF (valore 10 dec. 0A esadecimale).
Ho visto googlando che con il C quando si apre una porta seriale si può settare l'opzione option.c_oflag = ONLCR che a seconda se settata o resettata viene sostituito (credo a livello di driver) il carattere CR con un LF.... come posso arrivare a questo parametro da GAMBAS2 ?
Ho provato la proprietà ENDOFLINE a settarla gb.Windows gb.Mac e gb.Unix ... ma non influisce sulla READ... non ho verificato se influisce su LINE_INPUT come dichiarato ma mi fido.
L'indagine successiva sarebbe quella di scaricarsi i sorgenti del componente gb.net e verificare come viene settato questo flag e nel caso fare una patch.... ma questo comporterebbe una personalizzazione poi di gambas che ad ogni cambio di versione dovrei effettuare ?!

Grazie dell'ascolto.

md9327:
Credo tu stia facendo un pò di confusione.

Sulla seriale non esiste impostazione, tantomeno quella indicata.
Quella che hai visto è una caratteristica dell'applicazione o libreria (scritta in C), che sicuramente effettua di suo conversioni sulla base di quella proprietà.

In gambas lo devi fare tu.

Nel caso di READ, è probabile che faccia conversioni di suo, anche se non dovrebbe, anche leggendo la documentazione a riguardo.

Sicuramente puoi dargli un'occhiata, magari presentando un richiamo al team di gambas.
Le funzioni di lettura implementate, come hai pure tu dichiarato, sono READ e LINE INPUT, e la differenza dovrebbe essere appunto il riconoscimento del CR/LF del secondo, ma READ dovrebbe leggere in modalità binaria, quindi senza alcuna conversione.

Navigazione

[0] Indice dei post

Vai alla versione completa