- Apre la seriale COM1 in lettura

- Se viene premuto il tasto "LEGGI" viene mostrata sullo schermo la riga acquisita

- Se non esistono righe nel buffer, il programma si blocca finche' non viene ricevuta una riga

( per "riga" si intende una sequenza di caratteri che termina con "RETURN" )




button .b1 -width 10 -text "leggi" -command {leggi $seriale} button .b2 -width 10 -text "EXIT" -command {fine} pack .b1 .b2 frame .f text .f.text pack .f.text pack .f proc fine {} { close $seriale exit } proc leggi {xseriale} { set messaggio [gets $xseriale] .f.text insert end "$messaggio " } proc apri {} { global seriale set seriale [open com1: r] fconfigure $seriale -mode 9600,n,8,1 -buffering line } set seriale "" apri

serial_read_3.tcl



INFORMAZIONI SUL FUNZIONAMENTO DEL PROGRAMMA : Questo programma legge i dati provenienti dalla com1 La com1 viene aperta automaticamente all'avvio del programma premendo "leggi", il programma si blocca finche' non viene ricevuto il carattere di fine linea, ovvero <RETURN> 3 esempi per capire : si supponga di inviare dei dati sulla com1 costituiti da tante frasi separate da <RETURN> qui rappresentato con "/" --> il buffer si riempira' ad un certo istante "|" si supponga di leggere i dati : buffer (prima) : "ciao/come stai?/io bene/e tu come st" istante lettura : " | " io vedo : "ciao" . buffer (dopo) : "come stai?/io bene/e tu come st" . buffer (prima) : "ciao/come stai?/io bene/e tu come st" istante lettura : " | | " io vedo : "ciao" , "come stai?" . buffer (dopo) : io bene/e tu come st" . buffer (prima) : "ciao/come stai?/io bene/e tu come st" istante lettura : " |||| " io vedo : "ciao" , "come stai?" , "io bene" . buffer (dopo) : e tu come st" . ( in questo caso il programma si blocca finche' non viene ) ( finita l'ultima frase : "ai?/" ) ( se ad esempio dopo un'ora arriva sulla seriale "ai?/" ) ( io vedro' : "e tu come stai?" ) ( ora il buffer sara' completamente vuoto e se tento di ) ( leggere la seriale nuovamente, il programma si piantera') ( finche' non arrivera' un dato contenente un <return> )