1概述
在應用程序的開發中,腳本語言是一種簡單快速的編程語言。一般來說,腳本語言語法結構簡單,采用解釋執行,并以文本方式存儲和轉發,因此使用起來要比C、C++、JAVA等語言要方便容易的多。近年來,很多軟件都為用戶開放了腳本接口,使得腳本語言不僅用于開發,同時可以讓用戶配置和定義個性化的應用和服務,而開發者也不需要再為每次增加新功能而重新編譯發行應用程序。
腳本語言同樣可以用于通信設備的網管維護操作中,維護人員根據維護和業務需求,自行編寫流程及邏輯處理腳本,通過腳本執行環境與設備進行人機對話,靈活地實現跨設備查詢、配置和自維護等功能。
在眾多的腳本語言中,Lua是一個輕量級的腳本語言,其DLL只有136K,支持面向過程編程和面向對象編程、自動內存管理,提供包括數組、鏈表、集合、字典、散列表等豐富的數據結構。因其強大的擴展性,Lua被廣泛應用于自動化交易系統、網絡游戲等應用軟件中。
Lua的IO庫可以用來實現輸入及輸出功能,而第三方通信庫如luasocket則給予lua網絡通信的能力,因此,讀者可以利用lua的上述庫編寫具有通信能力的交互式腳本。
作者的做法是在腳本和設備接口之間編寫一個中間程序,其作為宿主程序讀取和執行用戶編寫的腳本,并與各個局向、不同機型設備的人機接口進行通信,相當于在腳本和設備之間架設了一個溝通的橋梁。這樣可以將與設備間的通信細節在程序中實現,以此降低腳本編寫的復雜程度。該程序命名Uiplus,使用Visual C++2005編譯,目前可與華為的CC08、Softx3000、SDC9300、阿朗的S12等程控交換設備進行聯機。 2.1功能框圖
Uiplus的功能結構如下圖所示:
Uiplus按照功能劃分為IO和NET兩個模塊,分別說明如下:
在Uiplus的腳本環境下編寫腳本很容易,腳本編寫人員使用Uiplus開放的函數進行與設備的通信、讀取用戶輸入、輸出提示信息,遵循lua語言的編程規范進行流程邏輯的編寫。由于在腳本編寫過程中經常需要對結果報告進行分揀,因此編寫人員應熟練掌握lua的string函數庫。腳本可分多個文件存儲,擴展名為“. lua”,根腳本需要命名為“root.lua”。
下面以一個根據邏輯號碼查詢物理號碼對應的設備號的例子來編寫一段交互式腳本:這段腳本首先讀取用戶輸入的邏輯號碼,然后向SDC1局向設備發送查詢邏輯號碼命令,分揀返回報告獲得物理號碼;再向物理號碼所在局向879局發送顯示物理號碼命令,分揀返回的報告獲取物理號的模塊和設備地址,并將地址顯示出來,以下是腳本及解釋。
除了設備數據的查詢配置等功能外,還可以使Uiplus實現更多的實用功能,如網管監控、電子工單、局數據維護等等。下圖是網管監控腳本效果,腳本周期性地用指令取模塊局板件的環境狀態信息,實現了簡單實用的網管監控功能。
4.2Uiplus的拓展
腳本編寫人員還可以利用lua的數據庫、COM等插件,使腳本能夠訪問數據庫、web、ole等等各類應用接口,增強腳本語言的功能。另外,通過增加Uiplus網絡模塊的功能,Uiplus可提供更多專業設備的連接,包括交換機路由器等數通設備、傳輸設備等等,大大拓展Uiplus的應用領域。
隨著集中維護模式的推廣,通信設備的維護人員在一臺計算機前,就可以利用集中網管系統對不同廠家、不同地點的設備進行管理,這也為腳本語言的應用提供了必要的軟硬件支持。如果各類網管和支撐系統能夠開放腳本接口,為維護人員提供靈活配置和自由發揮的腳本運行平臺,必將減少重復勞動帶來的效率低下和失誤,提高勞動生產率,提升通信設備的管理維護水平。