国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種微觀交通仿真引擎插件熱更新系統(tǒng)

      文檔序號:40268795發(fā)布日期:2024-12-11 13:02閱讀:12來源:國知局
      一種微觀交通仿真引擎插件熱更新系統(tǒng)

      本發(fā)明涉及一種插件更新系統(tǒng),尤其涉及一種微觀交通仿真引擎插件熱更新系統(tǒng)。


      背景技術:

      1、實現插件化的方法有多種,例如通過將插件編譯為動態(tài)鏈接庫的方法,主程序在運行時加載這些庫。或通過面向對象設計模式,如工廠模式、策略模式等,將插件封裝為類,通過基類和虛函數實現插件接口。現有的交通仿真系統(tǒng)的插件框架,基本沒有實現熱更新特性,大部分的流程都是在啟動時加載插件代碼,或者在第一次運行時加載插件代碼,但一旦加載完成后,再修改插件代碼就不會應用到主程序內了,需要關閉主程序重新加載插件才能應用更新內容,相當繁瑣,且在大型仿真實驗中這種方法具有很大的弊端,一次大型仿真實驗是連續(xù)的且時間很長的,很多時候需要實時修改插件內容并且不能中斷仿真,因此熱更新插件框架是非常有必要的。


      技術實現思路

      1、本發(fā)明的目的就在于提供一種解決上述問題,提供一個可以實時熱更新的插件化框架,能對插件進行熱更新的,一種微觀交通仿真引擎插件熱更新系統(tǒng)。

      2、為了實現上述目的,本發(fā)明采用的技術方案是這樣的:一種微觀交通仿真引擎插件熱更新系統(tǒng),應用于由c++編寫的微觀交通仿真引擎和由python編寫的插件,所述微觀交通仿真引擎包括功能模塊,所述插件包括文件描述和代碼,還包括邏輯接管服務單元、文件系統(tǒng)、插件生命周期管理服務單元、預加載錯誤處理單元、插件監(jiān)控服務單元,其中;

      3、邏輯接管服務單元:用于在執(zhí)行功能模塊時,將功能模塊的內部運行邏輯,修改為外部插件運行邏輯;

      4、文件系統(tǒng):用于存儲插件的文件描述和代碼,并將存儲在文件系統(tǒng)中的文件描述標記為內部文件描述、插件內文件描述標記為外部文件描述;

      5、插件生命周期管理服務單元:包括注冊單元、加載單元、卸載單元和更新單元;

      6、注冊單元:用于對插件進行注冊,注冊時僅讀取插件的文件描述,并保存在文件系統(tǒng)中;

      7、加載單元:用于對插件進行懶加載,所述懶加載為,未運行插件時僅加載外部文件描述,初次運行時加載其代碼,并將該版本保存在內存中;

      8、卸載單元:用于對插件進行卸載插件,并刪除文件系統(tǒng)對應的文件描述、代碼;

      9、更新單元:用于在插件發(fā)生改變時,卸載舊版本,注冊、加載新版本;

      10、預加載錯誤處理單元:用于在對插件進行懶加載后,加載插件的代碼試運行進行語法檢查,若代碼無誤,保留代碼快照,并卸載插件代碼只保留插件描述信息;

      11、若代碼有誤,查詢是否存有代碼快照,若有,通過代碼快照回滾至上一版本,若無,則報錯;

      12、插件監(jiān)控服務單元:用于定期監(jiān)控外部文件描述是否發(fā)生變化,若變化,觸發(fā)更新單元工作。

      13、所述功能模塊包括車輛模塊、路網模塊、控制模塊、相位更新模塊、仿真模型切換模塊和持久化模塊。

      14、插件監(jiān)控服務單元中,定期監(jiān)控外部文件描述是否發(fā)生變化,具體為,當第一次加載插件的描述文件時,記錄一次修改時間戳至內部文件描述,定期檢查插件代碼最近一次的修改時間戳,若與內部描述文件中不同,則判斷為發(fā)生變化,并更新內部文件描述的修改的時間戳。

      15、所述文件系統(tǒng)包含一目錄,用于保存文件描述,所述目錄為相對路徑或絕對路徑。

      16、所述功能模塊和插件上設有邏輯接口,用于在c++和python間建立通信。

      17、與現有技術相比,本發(fā)明的優(yōu)點在于:

      18、(1)本發(fā)明產品采用了在項目中嵌入腳本語言解釋器的方法來實現插件化,具有以下優(yōu)點:上手快、學習成本低、開發(fā)難度?。回S富的生態(tài),python具有各種已經封裝好的第三方庫;耦合度低,跨平臺方便等。

      19、(2)本發(fā)明對插件進行懶加載,未運行插件時僅加載外部文件描述,初次運行時加載其代碼,并將該版本保存在內存中,但會用預加載錯誤處理單元對代碼進行語法檢查,若代碼無誤,保留代碼快照,并卸載插件代碼只保留插件描述信息。懶加載可節(jié)省內存資源,并提高引擎初始化速度,代碼快照可增加容錯率,并增強引擎穩(wěn)定性。

      20、(3)本發(fā)明通過插件監(jiān)控服務單元,對文件描述進行定期檢查,若發(fā)現文件描述發(fā)生變化,它會觸發(fā)更新單元工作;更新單元工作時,微觀交通仿真引擎會卸載舊版本,重新注冊、加載新版本。這樣,插件的更新就能夠實時應用,而不需要關閉主程序。

      21、綜上,本發(fā)明的熱更新特性提高了區(qū)域微觀交通仿真的靈活性與可擴展性。



      技術特征:

      1.一種微觀交通仿真引擎插件熱更新系統(tǒng),應用于由c++編寫的微觀交通仿真引擎和由python編寫的插件,所述微觀交通仿真引擎包括功能模塊,所述插件包括文件描述和代碼,其特征在于:還包括邏輯接管服務單元、文件系統(tǒng)、插件生命周期管理服務單元、預加載錯誤處理單元、插件監(jiān)控服務單元,其中;

      2.根據權利要求1所述的一種微觀交通仿真引擎插件熱更新系統(tǒng),其特征在于:所述功能模塊包括車輛模塊、路網模塊、控制模塊、相位更新模塊、仿真模型切換模塊和持久化模塊。

      3.根據權利要求1所述的一種微觀交通仿真引擎插件熱更新系統(tǒng),其特征在于:插件監(jiān)控服務單元中,定期監(jiān)控外部文件描述是否發(fā)生變化,具體為,當第一次加載插件的描述文件時,記錄一次修改時間戳至內部文件描述,定期檢查插件代碼最近一次的修改時間戳,若與內部描述文件中不同,則判斷為發(fā)生變化,并更新內部文件描述的修改的時間戳。

      4.根據權利要求1所述的一種微觀交通仿真引擎插件熱更新系統(tǒng),其特征在于:所述文件系統(tǒng)包含一目錄,用于保存文件描述,所述目錄為相對路徑或絕對路徑。

      5.根據權利要求1所述的一種微觀交通仿真引擎插件熱更新系統(tǒng),其特征在于:所述功能模塊和插件上設有邏輯接口,用于在c++和python間建立通信。


      技術總結
      本發(fā)明公開了一種微觀交通仿真引擎插件熱更新系統(tǒng),應用于由C++編寫的微觀交通仿真引擎和由Python編寫的插件,所述微觀交通仿真引擎包括功能模塊,所述插件包括文件描述和代碼,還包括邏輯接管服務單元、文件系統(tǒng)、插件生命周期管理服務單元、預加載錯誤處理單元、插件監(jiān)控服務單元。本發(fā)明為微觀交通仿真引擎提供一個可以實時熱更新的插件化框架,采用了在項目中嵌入腳本語言解釋器的方法來實現插件化,并同時實現了懶加載,熱更新等特性,使插件的更新能實時應用,而不需要關閉主程序,提高了區(qū)域微觀交通仿真的靈活性與可擴展性。

      技術研發(fā)人員:胡普慶,吳春江,郭天一,朱煦洋,廖煜,周世杰
      受保護的技術使用者:電子科技大學
      技術研發(fā)日:
      技術公布日:2024/12/10
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1