tcl 和数组中的预期布尔值错误
expected boolean value error in tcl and arrays
我在我的串行端口 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)"
谁能告诉我为什么会这样,我该如何解决?
这次调用:
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)}]
我在我的串行端口 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)"
谁能告诉我为什么会这样,我该如何解决?
这次调用:
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)}]