如果有人问我,我很抱歉,我做了搜索。我正在尝试使用expect来编写一些串口操作和脚本。我很困惑,spawn_id意外地消失了。信息。是; spawn id exp10未打开。我会尽量保持这个简短但有足够信息可能的答案,脚本如下(混合实际语句/伪代码):
设置comId [openSerial $ baud $ dev]($ baud设置为115200,$ dev设置为/ dev / ttyUSB0)
在openSerial中:
set portId [open $dev RDWR]
if 'catch' fconfigure the port for mode(typical), handshake(none), blocking(0), buffering(none) 'error'
return 0
else
spawn -open $portId -noecho
return $spawn_id
到目前为止,这么好。回到我称之为openSerial的主脚本中,我睡了5秒钟。将spawn id,$ comId放在exp10中。那么我调用我的测试过程没有任何参数。里面看起来像:
proc test {} {
expect {
"string to wait for" { puts "got it"
expect "next string to wait for"
puts "got it"
expect "final string"
puts "got it"
return }
timeout { do stuff if timed out }
}
}
我得到第一个和第二个预期输出,然后期望返回spawn_id exp10未打开。为什么它会在跑步中消失?期望书与串口通信没什么关系,所以我现在不知所措。如果有人读到这个&有答案,我会欣赏同样的。在此期间,我将继续进行实验。
ACE