有没有结合tcl编辑器和编译器(或interpenter)的免费软件?
使用 fconfigure 打开串行连接(COM1)后,如何通过连接发送几个单词的字符串?我需要连接到一些硬件,并且希望能够在其 CLI 上运行脚本。
- 有没有结合tcl编辑器和编译器(或interpenter)的免费软件?
Tcl 源代码完全公开。下载并构建以获得“解释器”(实际上,它的字节码在内部编译所有内容)。您可以通过大多数 Linux 发行版获得预构建的 Tcl 发行版(我忘记它是否默认安装),或者通过查找“tclkit”(Google 搜索),它是 Tcl 的单文件立即运行发行版和 Tk(用于 GUI)。还有 ActiveState 针对主要平台的 ActiveTcl 发行版;它稍微商业化(但零成本),但非常好(我使用它,许多其他 Tcl 用户也这样做)。
我使用 Emacs 来编辑 Tcl,但任何可以编辑纯文本文件的东西都可以。我知道 vim 和 Eclipse 都有 Tcl 支持。
唯一的完整 Tcl 编译器是商业的。我真正推荐的唯一一个是 TDK 的一部分,它是 ActiveState 的产品。 (我认识那里的几个人,但根本没有商业关系。)如果你不需要代码混淆——例如,因为你正在编写开源软件——那么不用费心编译;标准 Tcl 构建中的内置编译器就很好了。 (它把东西编译成字节码的速度比从文件中加载字节码的速度要快。这很奇怪,但很好。)AS 还做了一个名为 Komodo 的产品,它应该是一个非常好的 Tcl IDE(还有一些其他语言),但是我自己还没有尝试过。
- 使用 fconfigure 打开串行连接(COM1)后,如何通过连接发送几个单词的字符串?我需要连接到一些硬件,并且希望能够在其 CLI 上运行脚本。
串行端口用
open
(废话!)打开,用 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
您可能还需要了解更多事情。只需在此网站上提出更多问题,就会有人尽力提供帮助。
虽然我还没有尝试过完整的 IDE,但我真的很喜欢 Active State 的 Komodo Edit 的免费版本,并结合使用它tclshkit 在 Windows 上制作可执行文件。
我很幸运地使用 Expect 和串行端口对 Cisco 交换机进行编程。 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