1)是否有任何组合tcl编辑器和编译器(或中间件)的免费软件?
2)使用fconfigure打开串口连接(COM1)后,如何通过连接发送一串几个字?我需要连接到某个硬件,我希望能够在其CLI上运行脚本。
由于
答案 0 :(得分:2)
- 是否有任何组合tcl编辑器和编译器(或中间件)的免费软件?
醇>
Tcl源代码完全公开可用。下载并构建以获得“解释器”(实际上,它的字节码在内部编译所有内容)。您可以使用大多数Linux发行版(我忘记它是否默认安装)或通过查找“tclkit”(Google for it)获得预先构建的Tcl发行版,这是一个单文件运行 - 立即分发Tcl和Tk(用于GUI)。 ActiveState还为主要平台分配了ActiveTcl;它是略微商业(但零成本),但非常好(我使用它和许多其他Tcl用户也这样做。)
我使用Emacs编辑Tcl,但任何可以编辑纯文本文件的东西都可以。我知道vim和Eclipse都支持Tcl。
唯一的完整 Tcl编译器是商业版。我真正推荐的唯一一个是TDK的一部分,TDK是ActiveState的产品。 (我知道其中有几个人,但根本没有商业联系。)如果你不需要代码混淆 - 例如,因为你正在编写开源软件 - 那么不要打扰编译;标准Tcl构建中的内置编译器就好了。 (它将字节码编译成字节码的速度比从文件中加载字节码要快。这很奇怪,但很好。)AS也做了一个名为Komodo的产品,应该是一个非常好的Tcl IDE(加上一些其他语言)但是我自己还没试过。
- 使用fconfigure打开串口连接(COM1)后,如何通过连接发送一串几个字?我需要连接到某个硬件,我希望能够在其CLI上运行脚本。
醇>
串行端口打开open
(duh!),配置 fconfigure
(或chan configure
如果你有足够新的Tcl;它是真的是相同的命令)并写入puts
。我警告说,我不知道您的串行设备的正确设置是什么:
set serPort [open "COM1" r+]
fconfigure $serPort -mode 9600,n,8,1
puts $serPort "Yo there, serial device!"
然后您可以从设备中读取一行:
set line [gets $serPort]
一旦你这样做完就关闭了港口:
close $serPort
您可能需要了解更多内容。只需在本网站上提出更多问题,有人会尽力提供帮助。
答案 1 :(得分:2)
虽然我没有尝试过完整的IDE,但我真的很喜欢Active State的Komodo Edit的免费版本,并将它与tclshkit组合使用以在Windows上制作可执行文件。
我很幸运使用Expect和串口来编程思科交换机。 Expect的模式匹配功能使它非常简单......以下示例适用于Windows,我还没有在* nix框上尝试过同样的事情:
package require Expect
set com "COM1"
if { [ catch { set serial [ open "$com:" "RDWR" ] } ] } then {
puts "Error! Cannot open $com!"
exit 1
}
fconfigure $serial -mode 9600,n,8,1
spawn -leaveopen $serial
send "somecommand\r"
expect "someprompt"
close $serial