期望脚本中的“回声检查”

时间:2014-10-22 11:38:50

标签: expect forth

我正在编写一个期望脚本,通过/ dev / ttyUSB0将Forth源文件上传到微控制器。

我的目标是为"确定"提示绿色,"重新定义"黄色并退出错误,例如"未找到"。

我遇到的问题是发送的字符过快。我知道我可以使用这样的延迟:

set send_slow {1 .1}

但这不是最佳选择。是否有一个选项可以检查一个字符是否已被回显,同时允许一些额外的反馈,如ok提示符?这是我的剧本的开始:

set dev [lindex $argv 0]
set portId [open $dev RDWR]
spawn -open $portId -noecho

set send_slow {1 .1}

for {set i 1} {$i < $argc} {incr i 1} {
    set filename [lindex $argv $i]
        set fd [open $filename r]
        set forth_src [read $fd]
        puts "Uploading $filename"

        set lines [split $forth_src "\n"]
        send -s "\r\n\r\n"
        set lines [split $forth_src "\n"]
        foreach line $lines {
            send -s $line
            send -s "\r\n"
                expect {
                    "ok." { }
                    "not found." { exit }
                    timeout { exit }
                }
        }
}

0 个答案:

没有答案