欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于IronPython腳本語言的多業(yè)務(wù)聯(lián)動實現(xiàn)方法

文檔序號:6357581閱讀:402來源:國知局
專利名稱:基于IronPython腳本語言的多業(yè)務(wù)聯(lián)動實現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及智能建筑控制領(lǐng)域的流程控制技術(shù)。尤其涉及一種多業(yè)務(wù)系統(tǒng)的聯(lián)動 控制技術(shù)。
背景技術(shù)
智能建筑中通常存在多種系統(tǒng),比如視頻系統(tǒng),配電自動化系統(tǒng),BA系統(tǒng),智能照 明系統(tǒng),火災報警系統(tǒng),安防系統(tǒng)等,通常這些系統(tǒng)都獨立存在,當某一事件發(fā)生時,對應的 監(jiān)控系統(tǒng)可以做出反應但是卻無法和相關(guān)系統(tǒng)產(chǎn)生聯(lián)動。如何突破這種各個子系統(tǒng)分割運 行的瓶頸,使智能建筑內(nèi)的硬件平臺、軟件平臺與應用系統(tǒng)之間,以及系統(tǒng)、信息、組織與管 理之間實現(xiàn)高度融合和協(xié)調(diào)運行,已經(jīng)成為智能建筑行業(yè)乃至社會各界普遍關(guān)注的焦點。 為了解決這一問題,各個廠家都花費了很多精力,不僅需解決多個復雜系統(tǒng)以及多種控制 協(xié)議之間的互聯(lián)性和互操作性問題,而且要解決用戶的二次開發(fā)問題。通常對于多系統(tǒng)聯(lián) 動的處理都是通過在原代碼添加規(guī)則代碼的方式完成,這樣不但復雜而且容易造成軟件的 不穩(wěn)定,而且很多現(xiàn)場的聯(lián)動規(guī)則會發(fā)生變化,通常廠家只能通過修改源代碼完成客戶的 需求,耗時耗力。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種多業(yè)務(wù)系統(tǒng)聯(lián)動實現(xiàn)的方法,有效解決多系統(tǒng)聯(lián)動問 題,以及多系統(tǒng)聯(lián)動規(guī)則發(fā)生變化后,用戶的二次開發(fā)問題。本發(fā)明的核心思想為通過PythonEngine腳本引擎實現(xiàn)腳本動態(tài)加載和運行,完 成腳本和運行環(huán)境的交互,能靈活適合多變的業(yè)務(wù)場景達到流程控制的目的。本發(fā)明采用以下解決方案解決上述問題一種基于IronPython腳本語言的多業(yè)務(wù)聯(lián)動實現(xiàn)方法,先在C#編寫的運行 環(huán)境與IronPython之間搭建一個連接層,能夠理解來自C#與IronPython的變量與函 數(shù),使他們能夠互相通訊;再使用IronPyhon語言定義多系統(tǒng)的聯(lián)動邏輯控制腳本,通過 IronPython腳本引擎實現(xiàn)腳本動態(tài)加載和運行,由聯(lián)動邏輯控制腳本實現(xiàn)邏輯控制,實現(xiàn) 多系統(tǒng)聯(lián)動。所述連接層的創(chuàng)建步驟包括先創(chuàng)建腳本運行環(huán)境kriptRuntime ;該kriptRuntime是指腳本的運行時間定 義;再構(gòu)建一個執(zhí)行上下文,用來保存需要C#編寫的運行環(huán)境與IronPython共享的 變量;這些變量對聯(lián)動控制有意義,并且在C#編寫的運行環(huán)境和IronPython之間共享;然后創(chuàng)建PythonEngine引擎,用來解析和執(zhí)行動態(tài)語言代碼;最后將以上封裝成類,作為IronPython和C#編寫的運行環(huán)境數(shù)據(jù)共享的連接層 使用。所述聯(lián)動邏輯控制腳本的實現(xiàn)步驟包括
步驟10 創(chuàng)建PY腳本文件;步驟20 在PY腳本文件中,根據(jù)事件發(fā)生時,子系統(tǒng)如何動作以及動作的先后順 序,使用IronPython語言編寫控制腳本,用來控制子系統(tǒng)相應的動作;步驟30 將保存好的腳本文件拷貝到指定的目錄下,等待腳本引擎加載;步驟40 =IronPython腳本引擎加載并運行指定目錄下的腳本文件;步驟50 加載完成,腳本在C#主程序的運行環(huán)境(即宿主程序運行環(huán)境)中運行。所述步驟20還包括=IronPython腳本引擎將運行環(huán)境中的控制變量加入變量 字典類,變量字典類中的控制變量可以在C#主程序的運行環(huán)境(即宿主程序運行環(huán)境和 IronPython腳本之間共享。所述步驟40包括步驟100 創(chuàng)建IronPython腳本引擎;步驟200 遍歷制定目錄下的腳本文件;步驟300 加載腳本文件并運行。所述步驟50還包括:C#主程序的運行環(huán)境(即宿主程序運行環(huán)境)根據(jù)變量字 典中的控制變量當前的狀態(tài)或值進行邏輯條件判斷,若條件成立,根據(jù)在腳本中定義的事 件發(fā)生時,子系統(tǒng)如何動作以及動作的先后順序,通過運行環(huán)境提供的子系統(tǒng)動作接口函 數(shù)完成操作。與現(xiàn)有技術(shù)相比,本方法有效解決多系統(tǒng)聯(lián)動問題,以及多系統(tǒng)聯(lián)動規(guī)則發(fā)生變 化后,用戶的二次開發(fā)問題。


圖1是本發(fā)明中的告警系統(tǒng),視頻系統(tǒng)與SCADA系統(tǒng)聯(lián)動流程圖
具體實施例方式下面參考附圖結(jié)合實例對本發(fā)明做進一步的描述IronPyhon腳本很容易被C#代碼調(diào)用,同時又很容易調(diào)用C#函數(shù),但是 IronPython腳本不能編譯成二進制文件,導致C#與IronPython之間不能直接進行通 訊,所以在C#編寫的運行環(huán)境與IronPython之間搭建一個連接層,能夠理解來自C#與 IronPython的變量與函數(shù),使他們能夠互相通訊。IronPython使用PythonEngine引擎實現(xiàn)連接層,使得IronPython腳本可以和C# 編寫的運行環(huán)境進行交互,IronPython運行在PythonEngine引擎上,所以引擎能訪問它的 運行環(huán)境,IronPython可以操作運行環(huán)境中的堆棧結(jié)構(gòu)。創(chuàng)建連接層的第一步是創(chuàng)建腳本運行環(huán)境(kriptRimtime),這是整個執(zhí)行過程 的起點,接著構(gòu)建一個執(zhí)行上下文,用來保存需要共享的變量。運行環(huán)境和腳本可以通過創(chuàng) 建不同的ScriptScope來提供多個數(shù)據(jù)隔離的執(zhí)行上下文,最后創(chuàng)建PythonEngine引擎, 用來解析和執(zhí)行動態(tài)語言代碼。將以上功能封裝成類,作為IronPython和運行環(huán)境數(shù)據(jù)共 享的連接層使用。聯(lián)動控制腳本的編寫主要用來實現(xiàn)多系統(tǒng)的聯(lián)動邏輯控制多系統(tǒng)聯(lián)動控制邏輯, 通過運行環(huán)境和腳本之間共享的變量,根據(jù)事件發(fā)生時,子系統(tǒng)如何動作以及動作的先后順序,使用IronPython語言編寫控制腳本,保存為PY腳本文件,由IronPython腳本引擎加 載并運行。加載完成,腳本在運行環(huán)境中運行,運行環(huán)境根據(jù)變量字典中的控制變量當前的 狀態(tài)或值進行邏輯條件判斷,若條件成立,根據(jù)在腳本中定義的事件發(fā)生時,子系統(tǒng)如何動 作以及動作的先后順序,通過運行環(huán)境提供的子系統(tǒng)動作接口函數(shù)完成操作。當現(xiàn)場邏輯 控制要求發(fā)生變化時,只要修改PY腳本文件就可以完成邏輯控制的修改,完成二次開發(fā), 不需要修改軟件核心代碼。IronPython是一種開放源代碼的腳本編程語言,這種腳本語言特別強調(diào)開發(fā)速度 和代碼的清晰程度,IronPython和.Net框架集無縫集成。它可以用來開發(fā)各種程序,從簡 單的腳本任務(wù)到復雜的、面向?qū)ο蟮膽贸绦蚨加写箫@身手的地方。使用IronPython腳本語言建立多業(yè)務(wù)系統(tǒng)聯(lián)動機制的方法,在腳本文件中編寫 多系統(tǒng)聯(lián)動控制邏輯,通過PythonEngine腳本引擎實現(xiàn)腳本動態(tài)加載和運行,完成腳本和
運行環(huán)境的交互。以下展示了一份控制腳本文件實例
權(quán)利要求
1.一種基于IronPython腳本語言的多業(yè)務(wù)聯(lián)動實現(xiàn)方法,其特征是先在C#編寫的 運行環(huán)境與IronPython之間搭建一個連接層,能夠理解來自C#與IronPython的變量與 函數(shù),使他們能夠互相通訊;再使用IronPyhon語言定義多系統(tǒng)的聯(lián)動邏輯控制腳本,通過 IronPython腳本引擎實現(xiàn)腳本動態(tài)加載和運行,由聯(lián)動邏輯控制腳本實現(xiàn)邏輯控制,實現(xiàn) 多系統(tǒng)聯(lián)動。
2.根據(jù)權(quán)利要求1所述的基于IronPython腳本語言的多業(yè)務(wù)聯(lián)動實現(xiàn)方法,其特征是 所述連接層的創(chuàng)建步驟包括先創(chuàng)建腳本運行環(huán)境kriptRuntime ;該kriptRuntime是指腳本的運行時間定義; 再構(gòu)建一個執(zhí)行上下文,用來保存需要C#編寫的運行環(huán)境與IronPython共享的變量;然后創(chuàng)建PythonEngine引擎,用來解析和執(zhí)行動態(tài)語言代碼;最后將以上封裝成類,作為IronPython和C#編寫的運行環(huán)境數(shù)據(jù)共享的連接層使用。
3.根據(jù)權(quán)利要求1所述的基于IronPython腳本語言的多業(yè)務(wù)聯(lián)動實現(xiàn)方法,其特征是 所述聯(lián)動邏輯控制腳本的實現(xiàn)步驟包括步驟10:創(chuàng)建PY腳本文件;步驟20 在PY腳本文件中,根據(jù)事件發(fā)生時,子系統(tǒng)如何動作以及動作的先后順序,使 用IronPython語言編寫控制腳本,用來控制子系統(tǒng)相應的動作;步驟30 將保存好的腳本文件拷貝到指定的目錄下,等待腳本引擎加載;步驟40 =IronPython腳本引擎加載并運行指定目錄下的腳本文件;步驟50 加載完成,腳本在C#主程序的運行環(huán)境即宿主程序運行環(huán)境中運行。
4.根據(jù)權(quán)利要求2所述的基于IronPython腳本語言的多業(yè)務(wù)聯(lián)動實現(xiàn)方法,其特征是 所述步驟20還包括=IronPython腳本引擎將運行環(huán)境中的控制變量加入變量字典類,變量 字典類中的控制變量可以在C#主程序的運行環(huán)境即宿主程序運行環(huán)境和IronPython腳本 之間共享。
5.根據(jù)權(quán)利要求2所述的基于IronPython腳本語言的多業(yè)務(wù)聯(lián)動實現(xiàn)方法,其特征是 所述步驟40包括步驟100 創(chuàng)建IronPython腳本引擎; 步驟200 遍歷制定目錄下的腳本文件; 步驟300 加載腳本文件并運行。
6.根據(jù)權(quán)利要求4所述的基于IronPython腳本語言的多業(yè)務(wù)聯(lián)動實現(xiàn)方法,其特征是 所述步驟50還包括:C#主程序的運行環(huán)境即宿主程序運行環(huán)境根據(jù)變量字典中的控制變 量當前的狀態(tài)或值進行邏輯條件判斷,若條件成立,根據(jù)在腳本中定義的事件發(fā)生時,子系 統(tǒng)如何動作以及動作的先后順序,通過運行環(huán)境提供的子系統(tǒng)動作接口函數(shù)完成操作。
全文摘要
本發(fā)明公開了一種基于IronPython腳本語言的多業(yè)務(wù)聯(lián)動實現(xiàn)方法,本發(fā)明充分利用了開源語言IronPython與.Net框架集成的特點。通過IronPython腳本引擎實現(xiàn)腳本動態(tài)加載和運行,完成腳本和宿主語言環(huán)境的數(shù)據(jù)交互。本發(fā)明通過IronPython腳本語言編寫多系統(tǒng)的聯(lián)動邏輯腳本,調(diào)用通用子系統(tǒng)函數(shù)庫實現(xiàn)對象的操作??筛鶕?jù)現(xiàn)場需求靈活修改聯(lián)動規(guī)則并立即生效,不需要修改軟件核心程序,消除信息孤島,以適應多變的聯(lián)動業(yè)務(wù)場景。
文檔編號G06F9/44GK102141917SQ201110084488
公開日2011年8月3日 申請日期2011年4月2日 優(yōu)先權(quán)日2011年4月2日
發(fā)明者楊毅, 王偉江, 雷賢忠 申請人:南京天溯自動化控制系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
河东区| 青岛市| 闸北区| 宾川县| 苍溪县| 綦江县| 绍兴市| 天峻县| 杭锦旗| 临猗县| 合江县| 竹溪县| 翁源县| 临泉县| 巴里| 台江县| 介休市| 克拉玛依市| 铜鼓县| 永寿县| 南涧| 石泉县| 砚山县| 泗水县| 宁德市| 湾仔区| 池州市| 策勒县| 通化县| 怀化市| 康马县| 如东县| 濮阳市| 武冈市| 电白县| 邹平县| 和林格尔县| 尉犁县| 太和县| 玉门市| 会昌县|