Purpose: Show how to startup with serial ports. -- '''RoS''' ---- You should also visit another [Serial Port] page. ---- ############################################ # A first quick test if you have a modem # open com2: for reading and writing # For UNIX'es use the appropriate devices /dev/xxx set serial [open com2: r+] # setup the baud rate, check it for your configuration fconfigure $serial -mode "9600,n,8,1" # don't block on read, don't buffer output fconfigure $serial -blocking 0 -buffering none # Send some AT-command to your modem puts -nonewline $serial "AT\r" # Give your modem some time, then read the answer after 100 puts "Modem echo: [read $serial]" ############################################ # Example (1): Poll the comport periodically set serial [open com2: r+] fconfigure $serial -mode "9600,n,8,1" fconfigure $serial -blocking 0 -buffering none while {1} { set data [read $serial] ;# read ALL incoming bytes set size [string length $data] ;# number of received byte, may be 0 if { $size } { puts "received $size bytes: $data" } else { puts "" update ;# Display output, allow to close wish-window } ############################################ # Example (2): Fileevents set serial [open com2: r+] fconfigure $serial -mode "9600,n,8,1" -blocking 0 -buffering none -translation binary fileevent $serial readable [list serial_receiver $serial] proc serial_receiver { chan } { if { [eof $chan] } { puts stderr "Closing $chan" catch {close $chan} return } set data [read $chan] set size [string length $data] puts "received $size bytes: $data" } ---- mailto:Rolf.Schroedter@dlr.de ([Rolf Schroedter]) ---- [Category Device Control]