0

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

我的目标是将“ok”提示变为绿色,将“Redefine”变为黄色并在出现“未找到”等错误时退出。

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

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 }
                }
        }
}
4

0 回答 0