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
}
慢慢看吧~應該明白