一文了解在AP_EM上的騷操作
最近大家都對AP興趣很大,也不知CP大家玩轉了木有,反正咱也不知道咱也不敢問,這次樓主就扯下AP中的狀態(tài)管理SM和執(zhí)行管理EM部分。
言歸正傳:AP的應用,在通過工具配置后,會生成可供APP開發(fā)使用的代碼和JSON的Manifest配置信息文件,經(jīng)編譯后APP會生成可執(zhí)行文件BIN。
EM作為執(zhí)行管理,其會負責讀取APP的Manifest文件,獲取APP的配置信息,不同的 APP在 Manifest 文件中被關聯(lián)到不同的系統(tǒng)狀態(tài) (Machine State) 中,SM是狀態(tài)管理,通過改變進程所屬的功能組狀態(tài)可對進程進行啟動和停止,兩者之間的關系如下:
首先,SM和EM其實從本質上看都屬于AP的一個進程,在AP中每個進程的生命周期如下:
EM是AP第一個啟動的進程,EM啟動就緒后,EM將把MachineState的狀態(tài)由OFF切換到Startup狀態(tài)。
EM啟動起來后會將SM的進程啟動起來,SM可通過ExecutionClient::ReportExecutionState向EM報告此時自己進程的狀態(tài)(每個進程都可通過該API向EM報告狀態(tài))。
SM正常啟動運行起來后,就可通過StateClient::SetState函數(shù)對某個功能簇的工作狀態(tài)進行控制,從而對隸屬于相應功能簇的進程進行統(tǒng)一管理。
這里要介紹下功能簇的概念,功能簇可以理解為進程的集合,每個功能簇有自己的狀態(tài)和過程,成為功能組Function Group States,功能組的最小單位就是一個進程,一個功能組可以配置一組進程,當SM請求相應功能組進入到對應狀態(tài)時,配置在該狀態(tài)下的進程都會被啟動,下面就是個小示例:
其中,Machine State、Function Group1 和 Function Group2 為不同的功能組,A~F 代表不同的進程,為了簡化,每個進程只有Idle、Running、Terminated三個進程狀態(tài)。
進程 A 依賴于 Machinestate功能組的的 Startup 狀態(tài), EM 在啟動后會Machine state 設置為 Startup狀態(tài),因此,EM 啟動后將直接啟動進程 A;而進程 A 為自終止進程,將在運行一次后自動終止。
進程 B 依賴于 Machinestate功能組的 Startup 和 Running 狀態(tài),同時依賴于進程 A 的終止狀態(tài),因此,進程 B 將在進程 A 終止后啟動,而在 machine state 離開 Running 時終止。
進程 C 僅依賴于 Machinestate 的Running 狀態(tài),在 Machine state 進入 Runing 時啟動,在離開Running 時終止。
進程 D 僅依賴于 FunctionGroup1 的 FG1:Running 狀態(tài)。
進程 E 依賴于FG1:Running 和 FG2:Running 狀態(tài)。
進程 F 依賴于FG2:Running 和 FG2:Fallback 狀態(tài)
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
-
即日-11.30免費預約申請>>> 燧石技術-紅外熱成像系列產(chǎn)品試用活動
-
11月29日立即預約>> 【上海線下】設計,易如反掌—Creo 11發(fā)布巡展
-
11月30日立即試用>> 【有獎試用】愛德克IDEC-九大王牌安全產(chǎn)品
-
即日-12.26火熱報名中>> OFweek2024中國智造CIO在線峰會
-
限時免費下載立即下載 >>> 2024“機器人+”行業(yè)應用創(chuàng)新發(fā)展藍皮書
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍皮書》
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結構工程師 廣東省/深圳市