簡體   English   中英

MISRA C:2012 Rule-17.7

[英]MISRA C:2012 Rule-17.7

我收到以下代碼的 MISRA C:2012 Rule-17.7 違規。 我對 C 代碼和 MISRA 概念很陌生。 任何建議將不勝感激。

 5277:   Dem_SetEventStatus(Rte_PDAV_DemEvent_DtcC00100_1, EventStatus);
         ^
Msg(7:3200) 'Dem_SetEventStatus' returns a value which is not being used.
MISRA C:2012 Rule-17.7

背景
診斷事件管理器 (Dem) 是AUTOSAR診斷服務的基本軟件模塊。 相關錯誤從應用層(resp. SW-C)或基本軟件模塊(BSWM)報告。

  • BSW 使用 Dem_ReportErrorStatus API 報告事件的新狀態
  • SWC 使用 Dem_SetEventStatus API(通過 RTE)報告事件的新狀態

診斷事件管理器 (Dem) 處理並存儲診斷監視器在軟件組件 (SW-C) 和基本軟件模塊 (BSWM) 中檢測到的診斷事件。 存儲的事件信息可通過與其他 BSW 模塊或 SW-C 的接口獲得。

Function Dem_SetEventStatus()
這個function有一個原型:

Std_ReturnType Dem_SetEventStatus(
Dem_EventIdType EventId,
Dem_EventStatusType EventStatus
)

請注意,返回類型是Std_ReturnType - 返回E_OKE_NOT_OK

MISRA C:2012 規則 17.7
MISRA C:2012 規則 17.7 要求您對從(非void )function... 返回的值執行某些操作

function 告訴你一些事情......它要么成功E_OK要么失敗E_NOT_OK - 忽略此信息可能不是一個好主意。

如果你真的想忽略它,那么堅持(void)演員 - 但確保你添加一個很好的明確理由這樣做。

查看隸屬關系的個人資料

Dem_SetEventStatus返回帶有一些值的標准返回類型(例如, EOKE_NOT_OK

如果 API 成功地完成了它應該做的事情,那么你會得到E_OK ,如果彈出一些錯誤,那么你會得到E_NOK

如果出現錯誤指示,您可能需要重試設置事件或忽略處理功能的策略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM