功能抑制管理器(Function Inhibition Manager)負責(zé)為軟件組件(software component)及其功能(functionality)提供控制機制,通過FIM可以抑制(取消應(yīng)用程序功能的激活)這些功能,甚至可以在運行時(構(gòu)建后配置)期間進行配置和修改。
functionality:一個功能可以由具有相同權(quán)限/抑制條件集的一個、幾個或部分可運行實體(runnable entity)的內(nèi)容構(gòu)建。
FID:功能被分配到一個標(biāo)識符(FID-功能標(biāo)識符),以及該特定標(biāo)識符的抑制條件。這些功能在執(zhí)行之前輪詢各自FID的權(quán)限狀態(tài)。如果特定標(biāo)識符的抑制條件成立,則相應(yīng)的功能將不再執(zhí)行。
FIM Core Variables
● Diagnostic Event:“診斷事件”是DEM向特定診斷監(jiān)視器功能提供的標(biāo)識符,用于報告錯誤
● Monitor
Status:“監(jiān)測狀態(tài)”是DEM根據(jù)監(jiān)測功能的報告值計算出的狀態(tài)。可能的值由Dem_MonitorStatusType定義
● Monitored
Component:“被監(jiān)控組件”是由DEM提供給特定被監(jiān)控組件(硬件組件或信號)的標(biāo)識符。“被監(jiān)控組件”的FAILED狀態(tài)表示所有分配的監(jiān)控功能的結(jié)果和從其他DEMComponent繼承的故障信息
● Summarized
Event:FIM配置應(yīng)該支持匯總事件。匯總事件由多個單個診斷事件組成;因此,特定的總結(jié)事件只是多個診斷事件的代表。Summarized Event可以用作SWC的抑制條件
● Function Identifier:
a. 應(yīng)保證FIM中的每個functionid是唯一的
b. FIM模塊應(yīng)使用FunctionId直接指向相關(guān)的功能信息(權(quán)限狀態(tài)等)
FIM實現(xiàn)了功能權(quán)限的計算。這些被計算的對象是SWC或Logic
Unit,每個FID的權(quán)限狀態(tài)是根據(jù)分配給特定FID的EventIds計算的。計算出每個EventIds的權(quán)限狀態(tài),并進行“與”以確定最終的權(quán)限狀態(tài)
● Function Identifier permission
state:FID權(quán)限狀態(tài)包含由其FID表示的功能是否可以執(zhí)行的信息(True執(zhí)行/False禁止)。SWC組件通過FIM_GetFunctionPermission訪問狀態(tài)
4.2
FIM Core Functionalities
FIM Data Structure
FIM的配置過程應(yīng)該在FIM模塊中創(chuàng)建數(shù)據(jù)結(jié)構(gòu)來存儲抑制關(guān)系(EventID - FID -applicable mask)。
可配置的EventIds數(shù)量和抑制掩碼被分配給一個FID。每個FID的EventIds和抑制掩碼數(shù)量必須匹配,以便對于每個配置的事件,都存在相應(yīng)的抑制掩碼。抑制掩碼包含F(xiàn)ID的抑制條件,前提是相關(guān)的EventIds具有特定的狀態(tài)(Dem_EventStatusExtendedType)。這些掩碼定義了FID對事件的哪些狀態(tài)敏感。
每個FID都有一個抑制掩碼,兩者都分配給一個特定的FID EventId。如果該事件具有一定的狀態(tài),并且如果事件狀態(tài)與配置的掩碼匹配,則對FID的抑制將激活。
Interaction with DEM
FIM模塊的功能是基于DEM事件為控制SWC(允許/抑制)提供服務(wù)功能當(dāng)所報告事件的監(jiān)控狀態(tài)發(fā)生變化時,如果DemTriggerFiMReports是啟用的,DEM通過API函數(shù)FIM_DemTriggerOnMonitorStatus通知FIM監(jiān)控狀態(tài)的變化。在收到監(jiān)視器狀態(tài)變化的通知時,F(xiàn)IM使用Dem_GetMonitorStatus來重新計算函數(shù)抑制。
每個FID都有一個Inhibition Counter抑制計數(shù)器。抑制計數(shù)器包含當(dāng)前抑制的EventIds的數(shù)量。如果狀態(tài)與掩碼匹配,則抑制計數(shù)器增加;否則,抑制計數(shù)器不會更新。這適用 FIM_GetFunctionPermission(如果權(quán)限狀態(tài)必須在查詢時計算)和FIM_MainFunction。
若FIM_DemTriggerOnMonitorStatus報告了監(jiān)視器狀態(tài)變化,則執(zhí)行以下操作:
● 如果EventId的狀態(tài)改變導(dǎo)致釋放狀態(tài)(掩碼與監(jiān)視器狀態(tài)不匹配),則抑制計數(shù)器必須減小
● 如果EventId的狀態(tài)變化導(dǎo)致抑制狀態(tài)(掩碼與監(jiān)視器狀態(tài)匹配),則抑制計數(shù)器必須增加
● 如果抑制計數(shù)器為》 0,則FID權(quán)限狀態(tài)設(shè)置為FALSE,否則FID權(quán)限狀態(tài)設(shè)置為TRUE
Interaction with SWC:
對于每個FID,SWC應(yīng)提供導(dǎo)致FID抑制的events列表和mask掩碼FIM模塊應(yīng)同步響應(yīng)傳入的查詢來確保對功能的即時控制。FIM模塊通過將權(quán)限狀態(tài)存儲為狀態(tài)變量或在權(quán)限查詢時計算事件狀態(tài)來實現(xiàn)這一行為如果使用接口FIM_SetFunctionAvailable將一個函數(shù)(FID)設(shè)置為不可用,它的權(quán)限狀態(tài)FIM_GetFunctionPermission總是返回FALSE。
-
汽車電子
+關(guān)注
關(guān)注
3027文章
7972瀏覽量
167150 -
計數(shù)器
+關(guān)注
關(guān)注
32文章
2256瀏覽量
94641 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
362瀏覽量
21616 -
管理器
+關(guān)注
關(guān)注
0文章
246瀏覽量
18531 -
系統(tǒng)
+關(guān)注
關(guān)注
1文章
1017瀏覽量
21364
發(fā)布評論請先 登錄
相關(guān)推薦
評論