免费的TCL编译器或解释器,以及TCL串口(COM1)命令

时间:2012-01-26 17:32:34

标签: compiler-construction serial-port tcl interpreter

1)是否有任何组合tcl编辑器和编译器(或中间件)的免费软件?

2)使用fconfigure打开串口连接(COM1)后,如何通过连接发送一串几个字?我需要连接到某个硬件,我希望能够在其CLI上运行脚本。

由于

2 个答案:

答案 0 :(得分:2)

  
      
  1. 是否有任何组合tcl编辑器和编译器(或中间件)的免费软件?
  2.   

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(加上一些其他语言)但是我自己还没试过。

  
      
  1. 使用fconfigure打开串口连接(COM1)后,如何通过连接发送一串几个字?我需要连接到某个硬件,我希望能够在其CLI上运行脚本。
  2.   

串行端口打开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