Serial Ports on Windows
I created this page in case some people may have some questions or answers about using a serial port on Windows.
I just tried to communicate with com1 on a Windows 2000 machine. For some reason I could not receive any data using the following commands in Wish.
% proc rd_chid {chid} { set msg [gets $chid] puts $msg } % set com [open com1: r+] % fconfigure -mode 9600,n,8,1 -blocking 0 -translation auto -buffering line % fileevent $com readable [list rd_chid $com]
However, I was able to receive data by putting those last 3 lines into its own procedure...
% proc rd_chid {chid} { set msg [gets $chid] puts $msg } % proc open_com {} { global com set com [open com1: r+] fconfigure $com -mode 9600,n,8,1 -blocking 0 -translation auto -buffering line fileevent $com readable [list rd_chid $com] } % open_com # lots of data comes streaming :) % close $com
jg
Tcl 8.4 greatly improved serial port control across platforms. Refer to the updated fconfigure documentation for more info.
To retrieve details on input/output errors--which are, in general, frequent, when working with serial lines--interrogate
set details [fconfigure $serial_handle -lasterror]
8.3.4 introduced this capability.
How can I connect to a com port higher than 9? (I am using a terminal server, and its driver creates com ports upto 16 or so.) Would appreciate answer by mail - [email protected]
Thanks.