期望连接/断开COM端口

时间:2014-01-15 15:10:19

标签: tcl expect kill spawn

似乎无法从正在使用的com端口正确断开连接并结束生成的进程。我需要断开与COM端口的连接,然后重新连接。

# Read the COM port from the command line
if { $argc >= 1 } {

   set file [lindex $::argv 0]
} else {

    set file /dev/ttyUSB0
}

set fh [open $file RDWR]

fconfigure $fh -mode "115200,n,8,1" -blocking 0 -buffering none -eofchar {}
spawn -open $fh -noecho 

2 个答案:

答案 0 :(得分:0)

要断开与串行端口的连接,您必须关闭该通道(因为这会转换为底层OS文件描述符的关闭)。因为您已将它附加到期望spawn_id(spawn的结果),您必须关闭它。你这样做:

close -i $spawn_id

虽然如果你一次只生成一件东西,你可以:

close

您必须再次完成整个过程(openfconfigurespawn -open)才能重新连接。你可能想把它重构成一个程序......

答案 1 :(得分:0)

问题是当我应该使用exec时,我正在使用“source”来运行我的其他tcl脚本。现在我可以让我的设备关闭,然后重新打开并再次通信。