我已经慢慢地通过我的串口tcl应用程序,但遇到了另一堵墙。
我想创建一个布尔值数组,以便在for循环中迭代。
在for循环中,DTR将发送串行输出。
下面我有以下代码:
set rs232 [open COM3: r]
fconfigure $rs232 -ttycontrol {DTR 0}
array set values {
0 0
1 1
}
set n [array size values]
set x 0
for {set a 0} {$a <=15} {incr a} {
fconfigure $rs232 -ttycontrol {DTR $values(0)}
wait 1000
fconfigure $rs232 -ttycontrol {DTR $values(1)}
wait 1000
}我运行它并得到错误:
expected boolean value but got "$values(0)"有人能告诉我为什么会这样吗?我该如何修复它?
发布于 2018-08-15 18:30:20
此调用:
fconfigure $rs232 -ttycontrol {DTR $values(0)}将-ttycontrol的值"DTR $values(0)“传递给fconfigure。调用
fconfigure $rs232 -ttycontrol [list DTR $values(0)]传递"DTR 0“。
大括号阻止了变量的替换,但list的调用强制了它。
或者,您可以使用以下方法之一
fconfigure $rs232 -ttycontrol "DTR $values(0)"
fconfigure $rs232 -ttycontrol [subst {DTR $values(0)}]https://stackoverflow.com/questions/51855718
复制相似问题