999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CTK插件框架的太赫茲人體安檢系統(tǒng)軟件設(shè)計

2021-06-16 16:42:32張華坤劉力力卜偉華唐冠杰汪潮
電子技術(shù)與軟件工程 2021年4期
關(guān)鍵詞:服務(wù)系統(tǒng)

張華坤 劉力力 卜偉華 唐冠杰 汪潮

(博微太赫茲信息科技有限公司 安徽省合肥市 230088)

1 背景

太赫茲人體安檢系統(tǒng)采用被動式實時成像太赫茲人體安檢技術(shù),利用人體自身熱輻射產(chǎn)生的太赫茲波,通過一定的準(zhǔn)光系統(tǒng)將這些輻射收集到探測焦平面上,在焦平面上使用太赫茲探測器陣列完成對信號的采集。之后通過對信號的處理,可以形成人體輻射的太赫茲波強度圖,由于人身攜帶的物品對太赫茲波的遮擋和吸收,在太赫茲強度圖上這些物品所在的位置就會顯示出陰影輪廓,通過這個原理可以實時探測到人身攜帶物品的位置、大小和形狀,解決大客流場景下快速人體安檢的難題。[1]

隨著各安檢場所對通行安全和通行效率的要求不斷提升,系統(tǒng)的應(yīng)用場景也越來越復(fù)雜多樣。為了能夠適應(yīng)快速多變的用戶需求,系統(tǒng)必須能針對不同的安檢場所、安檢級別對功能進行快速定制和整合,因此對軟件框架的可擴展性提出了很高的要求。

2 插件框架

2.1 框架簡介

如圖1 所示,Common Toolkits(以下簡稱CTK)插件框架是面向C++語言的動態(tài)組件系統(tǒng),它直接基于OSGI 規(guī)范。該系統(tǒng)由許多可重用的不同組件動態(tài)地組成,并允許各組件之間通過服務(wù)進行通信。官方提供了框架的分層模型包括:

(1)插件(Plugins)--由開發(fā)人員創(chuàng)建的CTK 組件。

(2)服務(wù)層(Services Layer)--通過為C++對象提供一個“發(fā)布-發(fā)現(xiàn)-綁定”模型來動態(tài)連接插件。

(3)生命周期層(Life Cycle Layer)--用于安裝、啟動、停止、更新和卸載插件的API。

(4)安全性(Security)--處理安全方面的內(nèi)容(尚未實現(xiàn))。

使用CTK 插件框架開發(fā)就代表開發(fā)插件,各插件之間互相隱藏了內(nèi)部實現(xiàn),并通過良好的服務(wù)和其它插件進行通信。內(nèi)部隱藏機制表明可以自由地更改本插件而不影響其它插件,面向服務(wù)的通信機制可以將插件之間的耦合性降到最低,大大提高系統(tǒng)的模塊化程度,使得代碼更加靈活,能夠更好地適應(yīng)變化。

2.2 框架運行機理

CTK 插件框架的使用主要分為以下幾個步驟:

(1)初始化CTK 插件框架。

(2)安裝并啟動插件。

(3)獲取并調(diào)用服務(wù)。

2.2.1 初始化CTK 插件框架

圖1:CTK 插件框架的分層模型[2]

圖2:框架初始化

圖3:插件初始化

如圖2所示,CTK插件框架(ctkFramework)進行初始化(ctkPluginFramework::init) 時,首先對插件框架上下文(ctkPluginFrameworkContext) 進 行 初 始 化(ctkPluginFra meworkContext::init),插件框架上下文則調(diào)用插件上下文(ctkPluginContext)的構(gòu)造函數(shù)進行初始化。然后,啟動CTK 插件框架(ctkPluginFramework::start),根據(jù)插件框架的id 號獲取框架的指針(ctkPlugin::getPlugin),通過指針調(diào)用插件類(ctkPlugin)的啟動函數(shù)(ctkPlugin::start),完成插件框架的啟動工作。由此可以看出,CTK 插件框架本質(zhì)上也是一個CTK 插件,只不過插件框架對該框架內(nèi)的所有插件(ctkPlugins)和服務(wù)(ctkServices)進行了管理。

表1:日志服務(wù)定義表

表2:主機交互插件事件定義

表3:狀態(tài)監(jiān)控插件事件定義

2.2.2 安裝并啟動插件

如圖3 所示,插件框架初始化時獲取了插件上下文(ctkFrame work::getPluginContext),根據(jù)插件上下文安裝插件(ctkPluginCon text::installPlugin),安裝插件成功后返回該插件的指針,再通過指針調(diào)用插件類(ctkPlugin)的啟動函數(shù)(ctkPlugin::start),完成插件的啟動工作。

2.2.3 獲取并調(diào)用服務(wù)

仍然通過插件上下文獲取插件提供的服務(wù)(ctkPluginContext:: getService),getService 函數(shù)返回了服務(wù)的指針,其他插件可通過該指針調(diào)用服務(wù)。調(diào)用該函數(shù)時需要傳入服務(wù)的引用(ctkServiceReference),該引用同樣通過插件上下文進行獲取(ct kPluginContext::getServiceReference)。

2.2.4 事件管理服務(wù)

圖4:軟件插件化示意圖

事件管理服務(wù)是CTK 插件框架提供的一種特殊的服務(wù),它采用了消息發(fā)布/訂閱模式,消息的發(fā)送者將消息分為不同的主題(Topic),消息的接收者只根據(jù)Topic 來接收感興趣的消息,兩者之間通過EventAdmin 插件(由CTK 官方提供)進行通信,這極大地降低了插件之間的耦合性,使得多人并行開發(fā)成為可能。EventAdmin 插件實現(xiàn)了多線程并行發(fā)送事件、事件處理黑名單等諸多功能,開發(fā)人員也可按照插件框架的規(guī)范對EventAdmin 進行定制開發(fā)。

圖5:軟件參數(shù)設(shè)置界面

3 軟件架構(gòu)設(shè)計

3.1 需求分析

太赫茲人體安檢系統(tǒng)集成了太赫茲成像主機、光學(xué)攝像頭、電源模塊等硬件設(shè)備,在不同的安檢場景下需要增加或減少某些設(shè)備,甚至可能需要集成新的設(shè)備。因此,硬件可配置、可擴展成為軟件最主要的需求。

3.2 插件化設(shè)計

針對硬件可配置、可擴展的要求,將每種硬件的功能以CTK插件的形式進行封裝,在實際使用時,根據(jù)具體的硬件配置選擇加載相應(yīng)的插件。將軟件分為四層架構(gòu)(如圖4 所示),從上往下分別為:信息展示層、業(yè)務(wù)邏輯層、硬件代理層、基礎(chǔ)設(shè)施層,底層提供服務(wù),上層進行調(diào)用。當(dāng)需要增加新的硬件時,只需在硬件代理層中添加相應(yīng)功能的插件,并對業(yè)務(wù)邏輯層和信息展示層中的某些相關(guān)插件進行修改即可,最大程度地減小對軟件其他模塊的影響。

3.3 主要插件設(shè)計

3.3.1 日志管理插件

日志管理插件用于記錄軟件運行過程中產(chǎn)生的日志信息,日志信息共分為4 級:調(diào)試、普通、警告和錯誤。作為基礎(chǔ)設(shè)施層中的模塊,該插件為軟件中的其他插件提供日志服務(wù),服務(wù)共提供9 項功能,具體信息如表1 所示。

3.3.2 太赫茲主機交互插件

太赫茲主機交互插件(以下簡稱主機交互插件)用于和太赫茲主機(以下簡稱主機)進行交互,包括接收太赫茲圖像數(shù)據(jù)、接收狀態(tài)信息、轉(zhuǎn)發(fā)主機控制命令、轉(zhuǎn)發(fā)參數(shù)設(shè)置命令等。主機交互插件提供服務(wù)SERVICE_DCHOST,SERVIC_DCHOST 可以有n 個實例,視硬件配置參數(shù)而定。主機交互插件內(nèi)部維護和主機的連接:在插件初始化時,連接到主機;當(dāng)和主機的連接斷開時,定時嘗試重新連接到主機;當(dāng)重新設(shè)置了主機的連接參數(shù)時,定時嘗試重新連接到主機。

主機交互插件的服務(wù)以事件的形式提供,如表2 所示。

3.3.3 狀態(tài)監(jiān)控插接件

狀態(tài)監(jiān)控插件用于管理系統(tǒng)內(nèi)各硬件設(shè)備的工作狀態(tài),該插件收到其他模塊發(fā)送的狀態(tài)信息后,先進行緩存,然后每2 秒向其他插件發(fā)送系統(tǒng)狀態(tài)信息更新。

狀態(tài)監(jiān)控插件的服務(wù)以事件的形式提供,如表3 所示。

3.4 應(yīng)用

圖5 為基于CTK 插件框架設(shè)計的太赫茲人體安檢系統(tǒng)軟件的設(shè)置界面。在系統(tǒng)內(nèi)部硬件發(fā)生變化時,不必對系統(tǒng)框架和核心插件進行修改,僅對與硬件交互的插件進行配置即可實現(xiàn)功能的擴展和裁剪。例如,在單機系統(tǒng)中只需要啟用1 個主機交互插件和1 個光學(xué)攝像頭交互插件即可,而在雙機通道式系統(tǒng)中可以同時開啟2個主機插件和2 個光學(xué)攝像頭交互插件。

4 結(jié)論

太赫茲人體安檢系統(tǒng)是一種人體安檢領(lǐng)域的新產(chǎn)品,代表了下一代人體安檢安防產(chǎn)品的發(fā)展方向[3]。在新產(chǎn)品的使用過程中,快速多變的用戶需求給軟件提出了更高的要求。為此,本文提出了以QT 為基礎(chǔ)平臺,基于CTK 插件框架的軟件設(shè)計方法,對CTK 插件框架的運行機理進行了深入闡述,詳細描述了太赫茲人體安檢系統(tǒng)軟件的插件化分層框架,并舉例說明軟件中核心插件的設(shè)計方案。實際應(yīng)用表明,采用CTK 插件框架進行軟件開發(fā),不但令軟件的結(jié)構(gòu)更清晰,模塊間的耦合性更低,開發(fā)難度更低,還極大地提高了軟件的復(fù)用性,降低了開發(fā)成本,具有較高的實用價值。

猜你喜歡
服務(wù)系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
半沸制皂系統(tǒng)(下)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
主站蜘蛛池模板: 欧美有码在线观看| 日韩毛片免费| 国产精品一区二区不卡的视频| 麻豆精品在线视频| 一区二区偷拍美女撒尿视频| AV在线天堂进入| 在线免费无码视频| 国产免费人成视频网| 国产一级在线观看www色| 丝袜国产一区| 亚洲av综合网| 香蕉在线视频网站| 夜夜操天天摸| 伊人久久综在合线亚洲2019| 真实国产乱子伦高清| 免费人成视网站在线不卡| 在线观看91精品国产剧情免费| 久久久无码人妻精品无码| 日本人妻丰满熟妇区| 四虎成人在线视频| 日韩无码真实干出血视频| 台湾AV国片精品女同性| 一本久道热中字伊人| 精品人妻无码区在线视频| 十八禁美女裸体网站| 毛片视频网| 香蕉视频在线观看www| 99热亚洲精品6码| 综合色婷婷| 99re这里只有国产中文精品国产精品 | 日韩精品成人网页视频在线| 日韩国产另类| 国产真实乱子伦精品视手机观看| 无码国内精品人妻少妇蜜桃视频| 亚洲成人免费看| 日韩精品免费一线在线观看| 国产第四页| 国产AV毛片| 亚洲va视频| www.av男人.com| 国产福利在线观看精品| 国产精品美女自慰喷水| 日韩免费成人| 亚洲男人的天堂久久精品| 午夜久久影院| 日本亚洲欧美在线| 毛片网站在线看| 国产精品欧美在线观看| 国产精品福利尤物youwu| 亚洲欧美综合精品久久成人网| 国产免费福利网站| 日韩免费毛片视频| 男女性色大片免费网站| 天天综合网站| 欧美一级色视频| 四虎国产精品永久在线网址| 国产女人水多毛片18| 孕妇高潮太爽了在线观看免费| 在线日本国产成人免费的| 香蕉久久永久视频| 欧美日韩在线成人| 欧洲一区二区三区无码| 国产成人精品一区二区秒拍1o| 日韩成人午夜| 久久狠狠色噜噜狠狠狠狠97视色| 午夜国产在线观看| 四虎在线高清无码| 国产区免费精品视频| 亚洲一级毛片免费看| 国产主播福利在线观看| 国内精品视频| 国产精品浪潮Av| 国产精品99久久久久久董美香| 天天摸夜夜操| 亚洲精品欧美日本中文字幕| 3344在线观看无码| 欧美黄网在线| 777国产精品永久免费观看| 亚洲日本在线免费观看| 啪啪免费视频一区二区| 午夜国产小视频| 伊在人亞洲香蕉精品區|