tcl脚本串口
❶ 关于TCL脚本的文件输入输出
set f [open e:/00 w] #用句柄f以写的方式打开文件e;/00 文件必须存在
puts $f "nihao" #将内容nihao输出至句柄f
close $f #关闭句柄f
set f [open e:/00 r] #用句柄f以读的方式打开文件e;/00 若文件不存在将创建
while {[gets $f line] >= 0} { #读取一行内容
puts $f
} #显示该项内容
close $f #关闭句柄f
set f [open e:/00 a] #用句柄f以追加的方式打开文件e;/00 若文件不存在将创建
puts $f "nihao" #将内容nihao输出至句柄f
close $f #关闭句柄f
❷ Tcl格式脚本用文本编辑器即可完成是吗那么写好的脚本,如何在tcl软件中调用呢
让我来告诉你答案!执行tcl脚本的方法是在tcl语言解释器重输入sourcexxx.tcl。xxx.tcl就是你写的tcl脚本
❸ 如何写tcl脚本谢谢
比如说设置一个变量,同时给其赋值:
set
var1
10
tcl脚本中的注释,如果在行首,使用#注释内容;
如果在行尾,使用;#注释内容
打印字符串在屏幕上,使用
puts
"要输出的内容"
还有对文件的操作,字符串的操作等,你最好下载一个tcl教程,如果有一些编程基础,看看差不多就行了,很简单的。
❹ 执行tcl脚本怎么让tk窗口弹出来
用wish命令执行脚本
#!/当前文件路径/wish 文件名
或者直接#!/当前文件路径/wish
弹出两个窗口:一个控制台窗口和一个wish窗口,在控制台界面内输入“source 文件名”点击回车就可以执行了
❺ tcl脚本语言编写的socket客户端
下面是client.tcl
proc Socket_Client {host port timeout} {
global connected
after $timeout {set connected timeout}
set sock [socket -async $host $port]
fileevent $sock w {set connected ok}
vwait connected
fileevent $sock w {}
if {$connected == "timeout"} {
return -code error timeout
} else {
return $sock
}
}
Socket_Client "10.33.132.2" 2540 100
❻ 什么是tcl脚本,简单分析一下
Tcl(最早称为“工具命令语言”"Tool Command Language", 但是目前已经不是这个含义,不过我们仍然称呼它为TCL)是一种脚本语言。 由John Ousterhout创建。 TCL经常被用于 快速原型开发,脚本编程,GUI和测试等方面。
Tcl的特性包括:
* 任何东西都是一条命令,包括语法结构(for, if等)。
* 任何事物都可以重新定义和重载。
* 所有的数据类型都可以看作字符串。
* 语法规则相当简单
* 提供事件驱动给Socket和文件。基于时间或者用户定义的事件也可以。
* 动态的域定义。
* 很容易用C,C++,或者Java扩展。
*解释语言,代码能够动态的改变。
* 完全的Unicode支持。
* 平台无关。Win32,UNIX,Mac上都可以跑。
* 和Windows的GUI紧密集成;Tk
* 代码紧凑,易于维护。
TCL本身不提供面向对象的支持。但是语言本身很容易扩展到支持面向对象。许多C语言扩展都提供面向对象能力,包括XOTcl,Incr Tcl等。另外SNIT扩展本身就是用TCL写的。
使用最广泛的TCL扩展是TK。 TK提供了各种OS平台下的图形用户界面GUI。连强大的Python语言都不单独提供自己的GUI,而是提供接口适配到TK上。另一个流行的扩展包是Expect. Expect提供了通过终端自动执行命令的能力,例如(passwd,ftp,telnet等命令驱动的外壳).
❼ TCL脚本在linux下怎么执行
你的linux装了tcl解释器了吗,一般是 /usr/bin/tclsh,如果确认你装了 (确认方法是在命令行下执行 tclsh),如果没问题,就在你的TCL脚本第一行加上
#!/usr/bin/env tclsh
然后确保你的脚本(假定脚本名字叫test.tcl) 是可执行的 (chmod +x test.tcl)
然后直接运行 ./test.tcl 即可。
❽ 你好,请教你关于tcl脚本语言问题:read串口内容,遇到空字符后,后面的字符取不到,如何解决
不知道你说的空字符是什么东西,read就是读取串口中的所有数据。如果有问题,可以试试gets函数,不过应该两个函数效果都是一样的。不知道你的具体情况~
还有,别用-nonewline参数
❾ 如何用tcl语言实现串口数据的读取
proc ComSetup {ComPort ComRate} {
set iChannel [open $ComPort w+]
set rate $ComRate
fconfigure $iChannel -mode $ComRate,n,8,1
fconfigure $iChannel -blocking 0
fconfigure $iChannel -buffering none
fileevent $iChannel readable ""
return $iChannel
}
proc GetData {iChannel} {
global output
update
after 2000
set cap [read -nonewline $iChannel]
return "$cap"
}
proc SendCmd {channel command} {
global output debug
set letter_delay 10
set commandlen [string length $command]
for {set i 0} {$i < $commandlen} {incr i} {
set letter [string index $command $i]
after $letter_delay
puts -nonewline $channel $letter
if {$debug(tConfig) == 1} {puts -nonewline $output "$letter"}
}
after $letter_delay
puts -nonewline $channel "\n"
if {$debug(tConfig) == 1} {puts $output ""}
after 500
flush $channel
}
慢慢看吧~应该明白