【问题标题】:How to Clear DTC's internally?如何在内部清除 DTC?
【发布时间】:2022-11-04 19:50:59
【问题描述】:

我正在尝试删除诊断信息,但我很难在 Tresos 中找到启用 ClearDTC 界面的配置。

从 SWC 的上下文中清除所有 DTC 的正确方法是什么?

【问题讨论】:

    标签: autosar


    【解决方案1】:

    AUTOSAR Dem 组件有一个标准化的客户端/服务器接口“ClearDTC”,它有两个操作:

    • 清除 DTC
    • 选择 DTC

    在您的创作工具(不是 Tresos)中,您必须使用您的 SWC 将这些添加到您的项目中。 (它们也可以在 AUTOSAR 蓝图中找到)

    您使用该 PortInterface 添加一个新的 R-Port(例如 rDemClearDTC)。在您的可运行实体中,您应该为该接口的两个操作添加一个 SynchronousServerCallPoint。

    最后,在您的实现中,您应该通过 Rte 调用通过端口调用这些操作。

    void MySwc_Runnable(void) {
        Std_ReturnType ret;
        // sscp_SelectDTC
        ret = Rte_Call_rDemClearDTC_SelectDTC(0xFFFFFFu, DEM_DTC_FORMAT_UDS, DEM_DTC_ORIGIN_PRIMARY_MEMORY);
        // sscp_ClearDTC
        ret = Rte_Call_rDemClearDTC_ClearDTC();
    }
    

    您可能还必须在 Dem 中配置第二个 DemClient,因为此 ClientId 应该是 Tresos 生成的 Dem ServiceSwComponent 的一部分,作为端口定义的参数。

    C/S 接口 ClearDTC(根据 Dem SWS)实际上仅与 ComplexDrivers 相关,而不与普通的 ApplicationSwComponents 相关。问题还在于,您为什么要从您的 SWC 调用 ClearDTC。

    【讨论】:

      猜你喜欢
      • 2014-04-30
      • 2013-09-20
      • 2010-09-07
      • 1970-01-01
      • 2015-03-14
      • 2021-10-20
      • 2020-02-19
      • 1970-01-01
      • 2012-01-27
      相关资源
      最近更新 更多