ODX 中的 DcmDspRoutine 代表什么?

What is a DcmDspRoutine representing in ODX?

在 ODX 中有许多不同的参数。

DcmDsp 例程代表什么?

由于 ODX 标准的高度灵活性,Autosar DcmDspRoutine 和 ODX 之间没有直接映射 - 这取决于 ODX 数据的具体创作指南。

DcmDspRoutine 服务 (<DIAG-SERVICE>) 将在 ODX 中定义,但确切的位置、结构以及如何找到该服务取决于所使用的 ODX 创作指南。即

  • 元素位于继承层次结构的哪一层
  • 如果任何元素在继承层次结构中 overwritten/eliminated
  • 可能有一个 <DIAG-SERVICE> 用于 DcmDspRoutine 或者那里 每个 DcmDspRoutineIdentifier
  • 可能是一个 <DIAG-SERVICE>
  • 服务可以通过特定的 short-name 或特定的语义来识别

下面是一个 high-level 示例,假设 DcmDspRoutine 只有一个 <DIAG-SERVICE> 且语义为 "ROUTINE-CONTROL":

+ <DIAG-LAYER-CONTAINER>
  + Collection name of the layers (BASE-VARIANTS/FUNCTIONAL-GROUPS/PROTOCOLS/ECU-VARIANTS)
    + Name of the layer (BASE-VARIANT/FUNCTIONAL-GROUP/PROTOCOL/ECU-VARIANT)
      + <DIAG-DATA-DICTIONARY-SPEC>
        + <TABLES>
          + <TABLE> referenced by a <PARAM>
      + <DIAG-COMMS>
        + <DIAG-SERVICE> with attribute "SEMANTIC" set to "ROUTINE-CONTROL"
          + <REQUEST-REF>
          + <POS-RESPONSE-REFS>
            + <POS-RESPONSE-REF>
      + <REQUESTS>
        + <REQUEST> referenced by a <DIAG-SERVICE>
          + <PARAMS>
            + <PARAM> referencing to a <TABLE>
      + <POS-RESPONSES>
        + <POS-RESPONSE> referenced by a <DIAG-SERVICE>
          + <PARAMS>
            + <PARAM> referencing to a <TABLE>

首先需要找到映射到 DcmDspRoutine 服务的 <DIAG-SERVICE>(其中 "SEMANTIC" 属性匹配 "ROUTINE-CONTROL").在 <DIAG-SERVICE> xml 节点中应该有一个 <REQUEST-REF> child-node(link 对 DcmDspRoutine 的请求)和 one-or-more <POS-RESPONSE-REF> child-nodes(links 对 DcmDspRoutine 的响应)。在 <REQUEST><POS-RESPONSE> xml 节点中,将有一个 <PARAM> xml 节点列表 - 每个节点代表 PDU 的一个参数,并且将 link 到 <DOP><TABLE>。由于 DcmDspStartRoutineInDcmDspStartRoutineOutDcmDspRoutineStopInDcmDspRoutineStopOutDcmDspRoutineRequestResOut 可能因 DcmDspRoutineIdentifier 而异,通常会有一个 <TABLE> 引用,其中包含所有 DcmDspRoutineIdentifier 及其相应的结构。