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