
2021年,民航局印發(fā)《“十四五”民用航空發(fā)展規(guī)劃》,明確提出民航領(lǐng)域科技創(chuàng)新應(yīng)聚焦大數(shù)據(jù)、人工智能、基礎(chǔ)軟件等核心技術(shù)應(yīng)用、關(guān)鍵裝備研發(fā)與國(guó)產(chǎn)化替代,推進(jìn)重大實(shí)驗(yàn)平臺(tái)和仿真驗(yàn)證平臺(tái)建設(shè),完善行業(yè)實(shí)驗(yàn)測(cè)試及驗(yàn)證設(shè)施。
伴隨著中國(guó)民航信息化發(fā)展和國(guó)內(nèi)航空公司出海戰(zhàn)略的腳步,提供穩(wěn)定可靠的離港系統(tǒng)服務(wù)成為中國(guó)航信PSS服務(wù)拓展海外市場(chǎng)的一項(xiàng)重要任務(wù)。而SITA和ARINC等海外廠(chǎng)商提供的離港設(shè)備平臺(tái)覆蓋了國(guó)外大部分機(jī)場(chǎng),是離港前端產(chǎn)品海外投產(chǎn)的前提條件。每次離港前端軟件版本升級(jí)只能到國(guó)外真實(shí)平臺(tái)實(shí)驗(yàn)室進(jìn)行測(cè)試認(rèn)證,不僅費(fèi)用高昂,而且認(rèn)證過(guò)程存在技術(shù)風(fēng)險(xiǎn),一旦認(rèn)證失敗,會(huì)嚴(yán)重影響航空公司后續(xù)的開(kāi)航工作,因此基于離港前端產(chǎn)品海外運(yùn)行環(huán)境建設(shè)仿真系統(tǒng)顯得十分必要。
對(duì)照海外離港前端產(chǎn)品運(yùn)行環(huán)境,一個(gè)完整的離港設(shè)備仿真系統(tǒng)應(yīng)該主要包含前端管理、前端接入、設(shè)備指令處理、設(shè)備3D交互等多個(gè)功能模塊。前端管理功能模塊負(fù)責(zé)信息錄入和校驗(yàn),管理認(rèn)證場(chǎng)景和維護(hù)認(rèn)證狀態(tài),包括前端包應(yīng)用名、版本、上傳/下載路徑、前端請(qǐng)求IP地址、實(shí)驗(yàn)室認(rèn)證方式(真實(shí)設(shè)備/虛擬設(shè)備)、海外平臺(tái)類(lèi)型、認(rèn)證狀態(tài)等;前端接入功能模塊負(fù)責(zé)平臺(tái)連接控制、設(shè)備實(shí)體管理、設(shè)備連接控制。支持多平臺(tái)Socket連接差異的適配和統(tǒng)一管理,方便支持不同離港前端的遠(yuǎn)程并行測(cè)試;設(shè)備指令處理功能模塊負(fù)責(zé)設(shè)備指令解析、狀態(tài)碼事件觸發(fā)和指令響應(yīng),根據(jù)指令數(shù)據(jù)、設(shè)備狀態(tài)和設(shè)備參數(shù),匹配狀態(tài)碼事件,觸發(fā)狀態(tài)機(jī)算法調(diào)用設(shè)備指令響應(yīng),并向設(shè)備3D交互模塊發(fā)送設(shè)備交互信號(hào);設(shè)備3D交互功能模塊負(fù)責(zé)設(shè)備模型渲染、交互仿真、狀態(tài)仿真、物理仿真,通過(guò)設(shè)備狀態(tài)仿真同步更改設(shè)備狀態(tài),并將設(shè)備操作過(guò)程通過(guò)動(dòng)畫(huà)方式展示。
(一)基于Socket連接的平臺(tái)協(xié)議適配
根據(jù)不同平臺(tái)的離港前端連接請(qǐng)求中的平臺(tái)類(lèi)型、設(shè)備類(lèi)型、IP、端口等參數(shù),適配對(duì)應(yīng)的Socket連接服務(wù)并建立連接線(xiàn)程,然后根據(jù)不同平臺(tái)對(duì)設(shè)備標(biāo)識(shí)的方法解耦平臺(tái)設(shè)備標(biāo)識(shí),去掉個(gè)性化的頭部字段,保留設(shè)備相關(guān)語(yǔ)義字段,導(dǎo)入通用設(shè)備數(shù)據(jù)模型,進(jìn)一步適配統(tǒng)一不同平臺(tái)的設(shè)備指令、設(shè)備狀態(tài)、錯(cuò)誤碼等,使用通用的設(shè)備數(shù)據(jù)模型與標(biāo)準(zhǔn)AEA設(shè)備交互。
(二)基于虛擬串口的虛擬設(shè)備接入
在仿真系統(tǒng)中,可以應(yīng)用設(shè)備虛擬化技術(shù)解決設(shè)備復(fù)用問(wèn)題。通過(guò)實(shí)現(xiàn)虛擬串口(虛擬COM端口),即軟件模擬物理串行接口的方式,實(shí)現(xiàn)OCR/ BGR掃描設(shè)備、ATB/BTP/DCP打印設(shè)備的狀態(tài)控制和事件處理。利用常見(jiàn)的虛擬串口模擬器技術(shù)方案(com0com、Virtual Serial Port Driver by Eltima、TTY模擬器、串口仿真庫(kù)等)實(shí)現(xiàn)虛擬串口通訊。
(三)利用狀態(tài)機(jī)實(shí)現(xiàn)指令狀態(tài)碼事件觸發(fā)
由于設(shè)備響應(yīng)與指令事件、設(shè)備狀態(tài)和設(shè)備參數(shù)的關(guān)系涉及對(duì)象的狀態(tài)變化和狀態(tài)之間的轉(zhuǎn)換,采用狀態(tài)機(jī)模型可以方便地管理應(yīng)用程序中的狀態(tài)轉(zhuǎn)換和業(yè)務(wù)邏輯,不僅支持以聲明性的方式定義狀態(tài)和狀態(tài)之間轉(zhuǎn)換的機(jī)制,并能夠處理各種事件觸發(fā)的狀態(tài)遷移,從而方便的實(shí)現(xiàn)模擬設(shè)備指令的響應(yīng)。
(四)基于Three.js的3D模型渲染
通過(guò)專(zhuān)業(yè)的3D建模軟件(如Blender、3ds Max)根據(jù)設(shè)備的實(shí)際形狀進(jìn)行設(shè)計(jì)并導(dǎo)出3D模型,再利用Three.js完成創(chuàng)建場(chǎng)景、相機(jī)視角設(shè)置、照明與環(huán)境設(shè)置、渲染循環(huán)等實(shí)現(xiàn)設(shè)備模型的3D渲染。
(五)基于Tween.js 的交互仿真增強(qiáng)
增強(qiáng)3D仿真系統(tǒng)的生動(dòng)性和互動(dòng)體驗(yàn),使用Tween.js創(chuàng)建平滑的動(dòng)畫(huà)效果,模擬開(kāi)關(guān)機(jī)、刷護(hù)照、掃描登機(jī)牌等情形,通過(guò)定義起始和結(jié)束狀態(tài)、旋轉(zhuǎn)速度、持續(xù)時(shí)間,Tween.js能夠自動(dòng)計(jì)算中間幀,實(shí)現(xiàn)對(duì)不同屬性(如位置、旋轉(zhuǎn)、大小或甚至質(zhì)料顏色)的動(dòng)畫(huà)處理。
(六)利用H5技術(shù)實(shí)現(xiàn)設(shè)備狀態(tài)仿真
利用H5 中的 canvas 畫(huà)布轉(zhuǎn)換為一個(gè)可以貼到屏幕模型上的材質(zhì)。當(dāng)狀態(tài)改變時(shí),在 canvas 畫(huà)布上繪制屏幕顯示的文字內(nèi)容,然后通過(guò) CanvasTexture將畫(huà)布貼到模型中屏幕對(duì)應(yīng)的平面上,從而實(shí)現(xiàn)模擬設(shè)備狀態(tài)顯示屏的效果。
除此之外,狀態(tài)仿真模塊還負(fù)責(zé)當(dāng)設(shè)備掃描或打印等操作發(fā)生成功/失敗的狀態(tài)時(shí),使用 H5 的 Audio API 播放蜂鳴器聲音,提示設(shè)備的當(dāng)前狀態(tài)。
(七)集成 Cannon.js 引擎增強(qiáng)物理效果
通過(guò)高性能的3D物理模擬庫(kù),能夠?yàn)樘摂M對(duì)象添加重力、碰撞檢測(cè)、摩擦力等物理屬性,使行為更加貼近現(xiàn)實(shí)。比如BTP行李條打印機(jī)里打印出來(lái)的行李條應(yīng)該呈現(xiàn)自然彎曲和堆疊狀態(tài),為了進(jìn)一步提升仿真系統(tǒng)的物理真實(shí)性,集成 Cannon.js 物理引擎是一個(gè)理想選擇。

本文通過(guò)應(yīng)用Socket、虛擬串口、狀態(tài)機(jī)、3D交互等技術(shù),對(duì)離港設(shè)備實(shí)驗(yàn)室進(jìn)行仿真模擬實(shí)踐,實(shí)現(xiàn)離港設(shè)備實(shí)驗(yàn)室認(rèn)證服務(wù)的仿真,提供了一種設(shè)備實(shí)驗(yàn)室仿真建設(shè)方法。解決了離港前端開(kāi)發(fā)測(cè)試過(guò)程中對(duì)離港真實(shí)設(shè)備的強(qiáng)依賴(lài)和無(wú)法共用問(wèn)題,支持組件復(fù)用和外設(shè)環(huán)境復(fù)用。極大的降低了離港前端的設(shè)備認(rèn)證測(cè)試環(huán)境搭建成本,可以做到人人都能接入設(shè)備測(cè)試,為所有離港前端研發(fā)人員提供了便利。