為增強(qiáng)ATOP程序與tcl/tk 的互動(dòng)性, 探討使用python編寫ATOP程序后,能夠有效運(yùn)行現(xiàn)有的TCL腳本功能,增強(qiáng)ATOP程序的功能。
TCL (最早稱為“工具命令語言”"Tool Command Language",但是現(xiàn)在已經(jīng)不是這個(gè)含義,不過我們?nèi)匀环Q呼它為TCL)是一種 腳本語言。 由John Ousterhout創(chuàng)建。 TCL很好學(xué),功能很強(qiáng)大。TCL經(jīng)常被用于快速原型開發(fā),腳本編程, GUI和測試等方面。TCL念作“踢叩” "tickle"。
Tcl的特性包括:(推薦學(xué)習(xí):Python視頻教程)
* 任何東西都是一條命令,包括語法結(jié)構(gòu)(for, if等)。
* 任何事物都可以重新定義和重載。
* 所有的數(shù)據(jù)類型都可以看作字符串。
* 語法規(guī)則相當(dāng)簡單
* 提供事件驅(qū)動(dòng)給Socket和文件。基于時(shí)間或者用戶定義的事件也可以。
* 動(dòng)態(tài)的域定義。
* 很容易用C, C++,或者Java擴(kuò)展。
* 解釋語言,代碼能夠動(dòng)態(tài)的改變。
* 完全的Unicode支持。
* 平臺(tái)無關(guān)。Win32, UNIX, Mac上都可以跑。
* 和Windows的GUI緊密集成。 Tk
* 代碼緊湊,易于維護(hù)。
TCL本身不提供面向?qū)ο蟮闹С帧5钦Z言本身很容易擴(kuò)展到支持面向?qū)ο?。許多C語言擴(kuò)展都提供面向?qū)ο竽芰?,包括XOTcl, Incr Tcl等。另外SNIT擴(kuò)展本身就是用TCL寫的。
Python 執(zhí)行TCL功能有兩種:
1. 進(jìn)程內(nèi)執(zhí)行(內(nèi)含TCL解析器)使用eval 命令實(shí)現(xiàn)
2. 進(jìn)程外執(zhí)行 調(diào)用tclsh/wish.exe 執(zhí)行,該方式與目前ATOP 方式一致。
Python 運(yùn)行tcl 腳本
From Tkinter import Tcl r=Tcl() r.eval('package require itclx') r.eval('cd $env(TCLSPACE)/ATOP') r.eval('source lib/ct/ctCaseDv.tcl') r.eval('source lib/ct/ctCaseDv.tcl')
使用eval 命令執(zhí)行tcl腳本。
作用:
1) 可以將常用的 操作,如 Excel 轉(zhuǎn)tcl, 刷新XML目錄樹,等功能集成到ATOP
2) 加強(qiáng)GUI 和TCL 之間的溝通。