DEENESPTFRRUARHIKOZHNL

Standard Types (Std_Types)

ModulStd (Standard Types)
BSW-Modul-ID197
Standard-Header#include "Std_Types.h"
SWS-SpezifikationAUTOSAR_SWS_StandardTypes.pdf
ClusterGeneral & Standard Types

模块指南人工智能生成

为所有 Classic 模块提供统一的返回值、版本、转换器及常量类型。
AI 生成 未审核 模型: claude-opus-5-5 · 推理强度: high · 温度: 不可控 · 提示词: 4fcc802ced39 来源 未决问题(4)
因果锚点:R20-11 自 R20-11 起有效 为此规范版本重新合成。
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

为所有 Classic 模块提供统一的返回值、版本、转换器及常量类型。

模块 std 通过 Std_Types.h 提供平台范围内统一的类型和常量,但既不包含代码也不包含配置。其核心是具有 E_OK 和 E_NOT_OK 的 Std_ReturnType(uint8)。模块仅允许在 0x02–0x3F 范围内定义带有模块前缀的私有值,因为 Bit 7 和 Bit 8 保留给 RTE [SWS_Std_00011]。此外,该模块还提供常量 STD_HIGH/STD_LOW、STD_ON/STD_OFF 和 STD_ACTIVE/STD_IDLE,用于版本查询的类型 Std_VersionInfoType,以及用于客户端-服务器通信的转换器和消息类型。在 R20-11 中,该头文件还包含了 Compiler.h SRS BSWGeneral 第62页。

模块 std 是一个纯类型头文件。它通过 Std_Types.h 提供类型和符号,但不提供函数 [SWS_Std_00005]。在 R20-11 中,该头文件包含 Platform_Types.h 和 Compiler.h,并定义了 Std_ReturnType 以及值 E_OK/E_NOT_OK 和 STD_* 常量。使用这些类型的每个模块都会包含它 SRS BSWGeneral 第62页。根据规范的后续版本,不存在配置和私有错误处理;推测这同样适用于 R20-11(解释)SWS StandardTypes 第27页。 问题 (未决)

kontext std Std_Types.h (Modul std) plat Platform_Types.h std->plat #include comp Compiler.h (in R20-11 gefordert) std->comp #include bsw BSW-Module (z. B. Can, CanIf, Adc, NvM) bsw->std #include cdd Complex Device Driver cdd->std #include rte RTE (Rte_Call, Rte_Read, Rte_Send, …) rte->std nutzt Std_ReturnType, Std_TransformerError xf Transformer (SomeIpXf, E2EXf) xf->std nutzt Std_MessageTypeType, Std_MessageResultType swc SW-C swc->rte 带有 Std_ReturnType / transformerError 的 RTE-API

上下文图:Std_Types.h 作为 BSW 模块、CDD、RTE 和转换器的通用类型基础。来源:SRS BSWGeneral 第62页、CDD Guideline 第14页

该模块的核心是带有值 E_OK(0)和 E_NOT_OK(1)的 Std_ReturnType(uint8)。0x02–0x3F 范围保留给带有模块前缀的模块特定错误;Bit 7 和 Bit 8 由 RTE 规范定义 [SWS_Std_00011]。此类扩展的示例包括 CAN_BUSY 和 Csm_ReturnType BSWUML Guide 第29页。由于 OSEK 的原因,E_OK 通过 STATUSTYPEDEFINED 得到防护 [SWS_Std_00006]。

returntype rt Std_ReturnType (abgeleitet von uint8) ok E_OK = 0x00 (kein Fehler) rt->ok Standardwert nok E_NOT_OK = 0x01 (generischer Fehler) rt->nok Standardwert user 0x02–0x3F 模块特定值 (6 个低位,模块前缀) rt->user erweiterbar rtebits 第 7 位和第 8 位 保留,由 RTE 规范确定 rt->rtebits reserviert csm Csm_ReturnType «extra_literals» CSM_E_BUSY = 2 CSM_E_SMALL_BUFFER = 3 CSM_E_ENTROPY_EXHAUSTION = 4 csm->rt erbt von csm->user belegt can CAN_BUSY = 0x02 (Can_Write: kein Sendeobjekt frei) can->user belegt

上下文图(类型结构):Std_ReturnType 的标准值、模块特定范围及 RTE 保留位。来源:[SWS_Std_00005]、[SWS_Std_00011]、SWS StandardTypes 第15页

此外还有三对分别取值 0x01u/0x00u 的常量:用于物理电平的 STD_HIGH/STD_LOW,作为开关的 STD_ON/STD_OFF,以及用于逻辑状态的 STD_ACTIVE/STD_IDLE([SWS_Std_00007]、[SWS_Std_00010]、[SWS_Std_00013])。Std_VersionInfoType 为同步、可重入函数 <Ma>_GetVersionInfo 传递厂商 ID、模块 ID 和软件版本 [SWS_Std_00015]。

对于数据转换,std 定义了两种用于转换器错误的类型:由错误代码和转换器类别构成的结构体 Std_TransformerError,以及 Std_TransformerClass [SWS_Std_00021]。RTE 通过可选参数 transformerError 传递该错误 SWS RTE 第731页。对于客户端-服务器通信,Std_MessageTypeType 和 Std_MessageResultType 对请求/响应以及 OK/ERROR 进行编码。类型为 Std_ExtractProtocolHeaderFieldsType 的函数指针从转换器头中读取这两个值 [SWS_Std_91003]。前向类型在 R20-11 中仍处于草案阶段 [SWS_Std_00029]。

角色与系统边界:无运行时行为的纯类型头文件

模块 std(Standard Types)不包含任何函数。它仅提供通过 Std_Types.h 可用的类型和符号。该模块的每个需求都将此头文件列为引用源,例如 [SWS_Std_00005] 和 [SWS_Std_00015]。该规范明确指出:该头文件既不提供代码也不需要其他 BSW 模块,它没有配置,也没有私有错误处理 SWS StandardTypes 第27页。这些表述出自 R23-11 起的版本。由于 R20-11 需求仅包含类型和符号定义,因此推测同样适用于 R20-11(解释)。 问题 Q-8e4c66ae80752d38 (未决)

其目的是以统一且跨平台的方式访问标准类型。因此,针对标准类型头文件的 BSW 需求要求:使用 AUTOSAR 整数类型或标准返回类型的每个模块都必须包含 Std_Types.h SRS BSWGeneral 第62页。返回类型 Std_ReturnType 明确由 RTE 和 BSW 模块共享 [SWS_Std_00005]。在方法论中,标准类型还被描述为 ARXML 工件“AUTOSAR Standard Types”Methodology 第400页。

kontext std Std_Types.h (Modul std) plat Platform_Types.h std->plat #include comp Compiler.h (in R20-11 gefordert) std->comp #include bsw BSW-Module (z. B. Can, CanIf, Adc, NvM) bsw->std #include cdd Complex Device Driver cdd->std #include rte RTE (Rte_Call, Rte_Read, Rte_Send, …) rte->std nutzt Std_ReturnType, Std_TransformerError xf Transformer (SomeIpXf, E2EXf) xf->std nutzt Std_MessageTypeType, Std_MessageResultType swc SW-C swc->rte 带有 Std_ReturnType / transformerError 的 RTE-API

上下文图:Std_Types.h 包含平台和编译器头文件,并被 BSW 模块、CDD、RTE 和转换器用作通用类型基础。来源:SRS BSWGeneral 第62页、CDD Guideline 第14页、[SWS_Std_00005]、[SWS_Std_00021]

Std_Types.h 的结构及其在头文件树中的引入

对于 R20-11,BSW 需求规定了 Std_Types.h 必须实现的内容 SRS BSWGeneral 第62页:

  • 包含平台特有类型头文件 Platform_Types.h,
  • 包含编译器特有头文件 Compiler.h,
  • 定义 Std_ReturnType,
  • 确定 E_OK、E_NOT_OK、STD_ON、STD_OFF、STD_HIGH、STD_LOW、STD_ACTIVE 和 STD_IDLE 的值。

在相同需求的后续版本中,缺少对 Compiler.h 的包含 RS BSWGeneral 第60页。这与变更历史相吻合:在 R22-11 中,废弃的编译器抽象从某项 Std 需求中移除,而 NULL_PTR 直到 R21-11 才被添加 SWS StandardTypes 第1页。因此,对于 R20-11,Compiler.h 属于包含链的一部分,而来自 Std_Types.h 的 NULL_PTR 则尚未属于其中。

一个特殊之处涉及 E_OK。该符号已在 OSEK 中定义,因此必须共享使用。[SWS_Std_00006] 规定了通过 STATUSTYPEDEFINED 进行防护:在防护宏内部定义了 E_OK(0x00u)和 StatusType,E_NOT_OK(0x01u)则位于外部。BSW 需求包含相同的实现说明,并引用了 ISO 17356-3 SRS BSWGeneral 第62页。Complex Device Driver 如何将该头文件归入其包含结构中,可参见 CDD 头文件结构图示 CDD Guideline 第14页。

Std_ReturnType:取值范围、位布局与模块特定扩展

Std_ReturnType 派生自 uint8。标准值为 E_OK(0)和 E_NOT_OK(1);0x02–0x3F 范围可供用户特有错误使用 [SWS_Std_00005]。[SWS_Std_00011] 对该规则进行了细化:

  • 通常,该类型与 E_OK 或 E_NOT_OK 一起使用。
  • 若这些值不够用,可在低 6 位中定义私有值,并使用模块前缀进行命名。
  • Bit 7 和 Bit 8 为保留位。如同整体布局一样,它们由 RTE 规范确定。

布局图示精确展示了这种划分 SWS StandardTypes 第15页。

RTE 规范将 Std_ReturnType 描述为用于 API 函数的状态和错误值的类型;值 0 保留用于“未发生错误”SWS RTE 第675页。根据 BSW 建模指南,它是服务接口的客户端-服务器操作中唯一允许的返回类型 BSWUML Guide 第28页。模块特定扩展的一个示例是 CAN 驱动程序的 CAN_BUSY(0x02)。当没有发送对象空闲时,Can_Write() 返回该值 SWS CANDriver 第54页。

returntype rt Std_ReturnType (abgeleitet von uint8) ok E_OK = 0x00 (kein Fehler) rt->ok Standardwert nok E_NOT_OK = 0x01 (generischer Fehler) rt->nok Standardwert user 0x02–0x3F 模块特定值 (6 个低位,模块前缀) rt->user erweiterbar rtebits 第 7 位和第 8 位 保留,由 RTE 规范确定 rt->rtebits reserviert csm Csm_ReturnType «extra_literals» CSM_E_BUSY = 2 CSM_E_SMALL_BUFFER = 3 CSM_E_ENTROPY_EXHAUSTION = 4 csm->rt erbt von csm->user belegt can CAN_BUSY = 0x02 (Can_Write: kein Sendeobjekt frei) can->user belegt

上下文图(类型结构):Std_ReturnType 分为标准值、模块特定范围 0x02–0x3F 以及由 RTE 保留的两个位;像 Csm_ReturnType 或 CAN_BUSY 这样的模块扩展仅占用空闲范围。来源:[SWS_Std_00005]、[SWS_Std_00011]、SWS StandardTypes 第15页、BSWUML Guide 第29页、SWS CANDriver 第54页

在 BSW 的 UML 模型中,此类扩展被建模为带有构造型 «extra_literals» 的类 <Ma>_ReturnType。其值带有模块前缀,并位于范围 0x02–0x3f 内 BSWUML Guide 第28页。带有 CSM_E_BUSY、CSM_E_SMALL_BUFFER 和 CSM_E_ENTROPY_EXHAUSTION 的示例 Csm_ReturnType 展示了该模式 BSWUML Guide 第29页。如果一个协议栈的多个模块需要相同的扩展,则无需为每个模块分别定义 BSWUML Guide 第33页。R23-11 版本为此提供了一个带有 «generic_type» 的泛型类,模块特定扩展均由此派生 TR BSWUML Guide 第37页。

erweiterung start 开始:模块定义返回值 q1 E_OK / E_NOT_OK 是否足够? start->q1 std 使用带有 E_OK / E_NOT_OK 的 Std_ReturnType q1->std 是 q2 同一个栈的多个模块 是否需要相同的扩展? q1->q2 不 ende 结束:第 7/8 位保留给 RTE std->ende gen generische Erweiterung «extra_literals» «generic_type» (Fassung R23-11) q2->gen 是 own <Ma>_ReturnType als Klasse «extra_literals» modellieren q2->own 不 derive 从中派生 <Ma>_ReturnType, 视需要补充自定义字面量 gen->derive lit 定义带有模块前缀的 0x02–0x3F 范围内的字面量 derive->lit own->lit lit->ende

活动图:决定模块是否以及如何通过自定义值扩展 Std_ReturnType。来源:[SWS_Std_00011]、BSWUML Guide 第28页、BSWUML Guide 第33页、TR BSWUML Guide 第37页

用于电平、开关和状态的符号常量

除返回值外,Std_Types.h 还定义了三对常量。这三对常量均使用数值 0x01u 和 0x00u,但注释各不相同([SWS_Std_00007]、[SWS_Std_00010]、[SWS_Std_00013]):

常量对Werte定义含义
STD_HIGH / STD_LOW0x01u / 0x00u物理状态 5 V 或 3.3 V / 0 V
STD_ON / STD_OFF0x01u / 0x00u开/关,无其他注释
STD_ACTIVE / STD_IDLE0x01u / 0x00u逻辑状态激活 / 空闲

STD_HIGH/STD_LOW 的典型使用者是 DIO 驱动:其读取服务返回这两个电平中的恰好一个 SWS DIO 第37页。STD_ON/STD_OFF 用作预编译开关。一个示例是通用 BSW 规范中的 EEP_21_LDEXT_VERSION_INFO_API STD_ON SWS BSWGeneral 第76页,另一个示例是 GPT 驱动的可选 API 开关 SWS GPT 第48页。

通过 Std_VersionInfoType 进行版本查询

Std_VersionInfoType 是一个包含以下元素的结构体:vendorID 和 moduleID(各为 uint16)以及 sw_major_version、sw_minor_version 和 sw_patch_version(各为 uint8)。由此通过 <Module name>_GetVersionInfo() 查询 BSW 模块的版本 [SWS_Std_00015]。通用 BSW 规范针对此函数规定 SWS BSWGeneral 第76页:

  • 它以同步方式工作且可重入。
  • 它恰好有一个该类型的参数。
  • 其可用性在预编译期按模块通过 <Ma>VersionInfoApi 配置。

命名规则 GetVersionInfo 列出了 BSW 需求及示例 Eep_21_LDExt_GetVersionInfo SRS BSWGeneral 第60页。

许多模块中都存在具体实现。在启用开发错误检测时,Can_GetVersionInfo 会通过 CAN_E_PARAM_POINTER 拒绝空指针 SWS CANDriver 第57页。Adc_GetVersionInfo 相应地检查 ADC_E_PARAM_POINTER SWS ADCDriver 第80页。NVRAM 管理器将调用展示为用户与模块之间的简单同步交互 SWS NvM 第158页。

使用 Std_VersionInfoType 查询版本NutzerBSW-Modul <Ma>DetAPI 仅在以下情况存在:<Ma>VersionInfoApi = STD_ON (Pre-compile)<Ma>_GetVersionInfo(&versioninfo)altversioninfo == NULL 且开发错误检测处于激活状态Entwicklungsfehler melden(z. B. CAN_E_PARAM_POINTER)有效指针vendorID, moduleID,sw_major/minor/patch_version eintragen返回(void;同步,可重入)

时序图:用户同步查询模块的版本;在指针为空且开发错误检测处于激活状态时,模块报告错误,否则填充 Std_VersionInfoType。来源:[SWS_Std_00015]、SWS BSWGeneral 第76页、SWS CANDriver 第57页、SWS NvM 第158页

用于数据转换的 Transformer 和消息类型

std 为 Transformer 链提供了多种类型。在 R20-11 中,Std_TransformerError 是由 errorCode(uint8)和类型为 Std_TransformerClass 的 transformerClass 组成的结构体 [SWS_Std_00021]。Std_TransformerClass 派生自 uint8 并包含五个值 [SWS_Std_00024]:STD_TRANSFORMER_UNSPECIFIED (0x00)、STD_TRANSFORMER_SERIALIZER (0x01)、STD_TRANSFORMER_SAFETY (0x02)、STD_TRANSFORMER_SECURITY (0x03) 和 STD_TRANSFORMER_CUSTOM (0xFF)。

API 目录中的简短签名将 Std_TransformerError 列为 typedef uint8。但以需求中的结构体定义为准。后续版本将 errorCode 类型化为独立类型 Std_TransformerErrorCode,其含义按 Transformer 链进行规定 SWS StandardTypes 第17页。

RTE 将该类型作为可选 OUT 参数 transformerError 传递给其 API,例如在 Rte_Call SWS RTE 第731页、Rte_Read SWS RTE 第720页 和 Rte_Result SWS RTE 第750页 中。插件接口将其描述为在执行 Transformer 链时发生的错误 SWS RTE 第969页。

Std_TransformerForward 和 Std_TransformerForwardCode 在 R20-11 中被标记为草案(draft)。转发代码包含 E_OK、E_SAFETY_INVALID_REP、E_SAFETY_INVALID_SEQ 和 E_SAFETY_INVALID_CRC([SWS_Std_00027]、[SWS_Std_00029])。在后续版本中,Rte_Send 接收该类型的可选 forwardedCode SWS RTE 第704页。据推测,它用于在转发时重新映射接收到的安全错误,正如 E2E 转发函数所描述的那样 SWS E2ELibrary 第107页(推断)。根据变更历史,结构体 Std_TransformerForward 在 R22-11 中被移除 SWS StandardTypes 第1页。 问题 Q-f0d374b3b793c868 (未决)

通过 Std_TransformerError 报告 Transformer 错误SW-CRTETransformer-KettetransformerError 仅存在于errorHandling = transformerErrorHandlingRte_Call_<p>_<o>(…, OUT transformerError)执行 Transformer 链altTransformer meldet FehlerFehlercode (Interpretation)填充 Std_TransformerError:errorCode, transformerClass (z. B. STD_TRANSFORMER_SAFETY)Std_ReturnType + transformerErrorkein Transformer-Fehler结果无错误Std_ReturnType (z. B. E_OK)

时序图:Transformer 错误除 Std_ReturnType 外还作为带有错误代码和 Transformer 类别的 Std_TransformerError 传递到 SW-C。来源:[SWS_Std_00021]、[SWS_Std_00024]、SWS RTE 第731页、SwCluster Guideline 第245页、SWS RTE 第774页

对于客户端-服务器通信,存在两种编码类型,其中 0x02–0x3F 分别保留供未来取值使用:

  • Std_MessageTypeType 区分请求(STD_MESSAGETYPE_REQUEST,0x00)与响应(STD_MESSAGETYPE_RESPONSE,0x01)([SWS_Std_91001]、[SWS_Std_00017])。
  • Std_MessageResultType 对响应结果进行编码:STD_MESSAGERESULT_OK (0x00) 或 STD_MESSAGERESULT_ERROR (0x01)([SWS_Std_91002]、[SWS_Std_00019])。

函数指针类型 Std_ExtractProtocolHeaderFieldsType 描述了一个同步、可重入的函数。它从缓冲区中 Transformer 的协议头中提取这两个值,并返回一个 Std_ReturnType [SWS_Std_91003]。Transformer 可选地接收此类指针作为其逆函数的参数 ASWS TransformerGeneral 第40页。SOME/IP Transformer 通过 SomeIpXf_ExtractProtocolHeaderFields 提供了相应的实现 SWS SOMEIPTransformer 第61页。E2E Profile 4m、7m、8m 和 44m 在其校验函数中对这两个值进行求值 SWS E2ELibrary 第108页。

Protokoll-Header-Felder extrahieren (E2E, Profil PXXm)RTEE2EXf (inverse Funktion)SomeIpXfE2E-BibliothekE2EXf_Inv_<transformerId>(extractProtocolHeaderFields,buffer, bufferLength, …)optProfile == PXXmextractProtocolHeaderFields(buffer, bufferLength,&messageType, &messageResult)= SomeIpXf_ExtractProtocolHeaderFields (Beispiel)Std_ReturnType ok,Std_MessageTypeType, Std_MessageResultTypealtok == E_OKsourceID = config->sourceIDE2E_P04mSourceCheck(…, SourceID,MessageType, MessageResult, …) (Beispiel)Std_ReturnTypeok == E_NOT_OK (z. B. falsche Protokollversion, Puffer zu kurz)以错误状态终止处理uint8(逆转换的结果)

时序图:对于 PXXm Profile,E2E Transformer 通过传入的函数指针提取消息类型和消息结果,且仅在 E_OK 时继续校验。来源:[SWS_Std_91003]、ASWS TransformerGeneral 第40页、SWS E2ETransformer 第45页、SWS SOMEIPTransformer 第61页、SWS E2ELibrary 第108页

发生错误时的行为

该模块本身不检测也不报告错误。R23-11 及更高版本指出,标准类型未提供错误处理,也不支持安全事件 SWS StandardTypes 第27页;对于 R20-11 应该同样适用(推断)。 问题 (未决)因此错误行为仅在使用这些类型的模块中产生。基本信号是 E_NOT_OK [SWS_Std_00006];其具体含义由各 API 规定。在 Adc_ReadGroup 中表示“无可用结果或存在开发错误” SWS ADCDriver 第61页,在 CanIf_Transmit 中表示“发送请求未接受” SWS CANInterface 第87页。

更精细的错误特征通过 0x02–0x3F 范围内的模块特定值进行报告 [SWS_Std_00011],例如 CAN_BUSY SWS CANDriver 第54页。因此调用者必须考虑到 Std_ReturnType 会取两个以上的值。一种特殊情况是通过 RTE 路由为 AUTOSAR 服务的回调:调用者虽然可以假定 E_OK,但在分区系统等环境中此类回调可能会失败 SWS BSWGeneral 第69页。

在 Transformer 链中,除返回值外,还会通过带有错误代码和 Transformer 类别的 Std_TransformerError 报告错误 [SWS_Std_00021]。仅当为端口配置了错误处理 transformerErrorHandling 时,RTE 才会生成可选参数 transformerError SWS RTE 第774页。如果提取头字段失败,SomeIpXf_ExtractProtocolHeaderFields 将返回 E_NOT_OK,例如在协议版本错误或缓冲区过短的情况下 SWS SOMEIPTransformer 第61页。E2E Transformer 逻辑仅在 E_OK 时继续检查 SWS E2ETransformer 第45页。

进一步详细证据

AI 生成的 std 模块指南(Classic,R20-11),仅基于 autodocs 有效负载生成。许多文档出处来自其他版本;规范以 R20-11 需求为准。在具有约束力地使用之前,请与规范进行比对。

Standard Types (Std_Types)

Standard types, return codes (Std_ReturnType, E_OK, E_NOT_OK), version info structures, and error codes shared across the entire AUTOSAR architecture.

Typen — Übersicht

Typen — Detailansicht

类型 Std_ReturnType [SWS_Std_00005] 📄 PDF

typedef uint8 Std_ReturnType;

This type can be used as standard API return type which is shared between the RTE and the BSW modules. It shall be defined as follows: typedef uint8 Std_ Return Type;

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 6f8f9add55f9 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

类型 Std_ReturnType 用作 API 函数的标准化返回类型,由 RTE 和 BSW 模块共同使用([SWS_Std_00005])。它可通过头文件 Std_Types.h 获取,并定义为 uint8([SWS_Std_00005])。

默认情况下,Std_ReturnType 被赋予值 E_OK(值 0)或 E_NOT_OK(值 1)([SWS_Std_00005]、[SWS_Std_00011])。如果这两个标准返回值不够用,标准允许定义特定于模块的错误值:

  • 用户错误的值范围:对于用户自定义错误码,可以使用 0x02 到 0x3F 的范围([SWS_Std_00005])。此处使用了六个最低有效位([SWS_Std_00011])。
  • 命名规范:在命名特定于用户的错误值时,根据 BSW 规范必须强制加上相应的前缀([SWS_Std_00011])。
  • RTE 保留:位 7 和位 8 保留并由 RTE 规范指定,返回类型的通用布局亦遵循该规范([SWS_Std_00011])。Interpretation:这可能是 8 位表示形式中的两个最高有效位,它们将六个低有效位补全为一个字节。 问题 Q-d97256956c510f58 (未决)

源材料中未对基本类型本身定义特定的错误处理机制(如 DET 或 DEM)以及重入性规范,而是由使用该类型作为返回值的各个 API 负责。

此使用说明由 AI 创建,基于 AUTOSAR Classic Release R20-11 的规范。

实现者指南即将推出(复杂度 I1)

类型 Std_TransformerError [SWS_Std_00021] 📄 PDF

typedef uint8 Std_TransformerError;

-

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 534a10ed1c56 来源 未决问题(2)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

根据需求 [SWS_Std_00021],数据类型 Std_TransformerError 作为标准化类型通过头文件 Std_Types.h 为 AUTOSAR Classic 平台提供。在结构上,该元素在规范中定义为结构体(Structure),由两个组件组成:具有基本类型 uint8 的元素 errorCode 以及具有类型 Std_TransformerClass 的元素 transformerClass [SWS_Std_00021]。

关于实际使用,规范中不包含具体的函数签名、参数描述或返回值。该结构体类型可能用作统一定义的数据容器,用于结构化传输数据转换期间发生的错误(Interpretation)。 问题 Q-6e0938f276d60fd3 (未决)其中字段 errorCode 可能会承载实际的数值错误键,而 transformerClass 则识别导致错误的或关联的 Transformer 类(Interpretation)。 问题 Q-d8806698683ec00e (未决)

[SWS_Std_00021] 中未定义诸如 DET 或 DEM 消息等特定的错误处理机制。源材料中也缺少关于并发性、可重入性或同步/异步语义的规范。由于这只是 Std_Types.h 中的纯类型定义,因此该类型本身不受任何运行时限制约束;这些限制仅由应用模块各自的上下文产生。

本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。

类型 Std_MessageType [SWS_Std_91001] 📄 PDF

This type is used to encode the different type of messages. - Currently this encoding is limited to the distinction between requests and responses in C/ S c ommunication.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 3a61d74dd0cf 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

根据 [SWS_Std_91001],标准类型 Std_MessageType 用于对各种报文类型进行编码。在本规范中,此编码仅限于在客户端/服务器通信框架内区分请求(Request)与响应(Response)([SWS_Std_91001])。

该数据类型派生自基本类型 uint8,并通过头文件 Std_Types.h 提供给软件组件以及基础软件模块([SWS_Std_91001])。针对赋值和评估,指定了以下值和常量:

  • STD_MESSAGETYPE_REQUEST(值 0x00):标识请求报文([SWS_Std_91001])。
  • STD_MESSAGETYPE_RESPONSE(值 0x01):标识响应报文([SWS_Std_91001])。
  • 值范围 0x02 至 0x3F:该范围保留用于未来的报文类型([SWS_Std_91001])。

关于应用和约束条件,实现模块应仅使用已定义的标识符。由于从 0x02 到 0x3F 的值保留用于未来的 AUTOSAR 扩展,因此不得擅自占用作其他用途([SWS_Std_91001])。规范中未为此数据类型定义特定的错误码、返回值、异步流程或向 DET 或 DEM 的报告([SWS_Std_91001])。

该文本由 AI 管理助手生成,基于 AUTOSAR R20-11 的规范。

类型 Std_MessageResultType [SWS_Std_91002] 📄 PDF

typedef uint8 Std_MessageResultType;

This type is used to encode different types of results for response messages. - Currently this encoding is limited to the distinction between OK and ERROR responses.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 48b18d78d865 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

基础数据类型 Std_MessageResultType 在 AUTOSAR Classic 平台中用于对响应消息(Response Messages)的各种结果类型进行编码 [SWS_Std_00019]。该类型通过标准头文件 Std_Types.h 提供,并定义为基于 uint8 的标量类型 [SWS_Std_91002]。

使用与取值范围

该规范要求使用 Std_MessageResultType 对响应消息进行统一标识 [SWS_Std_00019]。目前,该编码的预期功能范围仅限于成功响应和错误响应之间的基本区分 [SWS_Std_91002]。为此定义了以下固定结果值:

  • STD_MESSAGERESULT_OK(值 0x00):标识响应消息的常规、无错误结果 [SWS_Std_91002]。
  • STD_MESSAGERESULT_ERROR(值 0x01):指示错误响应消息(Error Response)的结果 [SWS_Std_91002]。

限制与未来扩展

从 0x02 到 0x3F 的取值范围显式保留用于未来的消息结果 [SWS_Std_91002]。解释:由于规范当前未规定其他有效返回值,解析模块可能必须进行防御性编程,以安全捕获该范围内意外或尚未分配的值 [SWS_Std_00019]。 问题 Q-5f652f73800b7d94 (未决)

本文档由 AI 创建,为开发人员总结了 AUTOSAR 规范的各项规定。

类型 Std_ExtractProtocolHeaderFieldsType [SWS_Std_91003] 📄 PDF

typedef Std_ReturnType (* Std_ExtractProtocolHeaderFieldsType)(const uint8* buffer, uint32 bufferLength, Std_MessageTypeType* messageType, Std_MessageResultType* messageResult);

Type for the function pointer to extract the relevant protocol header fields of the message and the type of the message result of a transformer. - At the time being, this is limited to the types used for C/ S communication (i.e., REQUE ST and RESPONSE and OK and ERROR).

类型 E_OK / E_NOT_OK [SWS_Std_00006] 📄 PDF

#define E_OK 0x00u #define E_NOT_OK 0x01u

Because E_ OK is already defined within OSEK, the symbol E_ OK has to be shared. To avoid name clashes and redefinition problems, the symbols have to be defined in the following way (approved within implementation): #ifndef STATUSTYPEDEFINED #define STATUSTYPEDEFINED #define E_ OK 0x00u typedef unsigned char Status Type; /* OSEK compliance */ #endif #define E_ NOT_ OK 0x01u

类型 STD_HIGH / STD_LOW [SWS_Std_00007] 📄 PDF

#define STD_HIGH 0x01u #define STD_LOW 0x00u

The symbols STD_ HIGH and STD_ LOW shall be defined as follows: #define STD_ HIGH 0x01u /* Physical state 5V or 3.3V */ #define STD_ LOW 0x00u /* Physical state 0V */

类型 STD_ACTIVE / STD_IDLE [SWS_Std_00013] 📄 PDF

#define STD_ACTIVE 0x01u #define STD_IDLE 0x00u

The symbols STD_ ACTIVE and STD_ IDLE shall be defined as follows: #define STD_ ACTIVE 0x01u /* Logical state active */ #define STD_ IDLE 0x00u /* Logical state idle */

类型 STD_ON / STD_OFF [SWS_Std_00010] 📄 PDF

#define STD_ON 0x01u #define STD_OFF 0x00u

The symbols STD_ ON and STD_ OFF shall be defined as follows: #define STD_ ON 0x01u #define STD_ OFF 0x00u

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Std
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Std@rel:R20-11#2235715d
Content hash
2235715d
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_StandardTypes.pdf#nameddest=SWS_Std_00005

类型

Because E_ OK is already defined within OSEK, the symbol E_ OK has to be shared. To avoid name clashes and redefinition problems, the symbols have to be defined in the following way (approved within implementation): #ifndef STATUSTYPEDEFINED #define STATUSTYPEDEFINED #define E_ OK 0x00u typedef unsigned char Status Type; /* OSEK compliance */ #endif #define E_ NOT_ OK 0x01u

#define E_OK 0x00u #define E_NOT_OK 0x01u

The symbols STD_ ACTIVE and STD_ IDLE shall be defined as follows: #define STD_ ACTIVE 0x01u /* Logical state active */ #define STD_ IDLE 0x00u /* Logical state idle */

#define STD_ACTIVE 0x01u #define STD_IDLE 0x00u

Type for the function pointer to extract the relevant protocol header fields of the message and the type of the message result of a transformer. - At the time being, this is limited to the types used for C/ S communication (i.e., REQUE ST and RESPONSE and OK and ERROR).

typedef Std_ReturnType (* Std_ExtractProtocolHeaderFieldsType)(const uint8* buffer, uint32 bufferLength, Std_MessageTypeType* messageType, Std_MessageResultType* messageResult);

The symbols STD_ HIGH and STD_ LOW shall be defined as follows: #define STD_ HIGH 0x01u /* Physical state 5V or 3.3V */ #define STD_ LOW 0x00u /* Physical state 0V */

#define STD_HIGH 0x01u #define STD_LOW 0x00u

This type is used to encode different types of results for response messages. - Currently this encoding is limited to the distinction between OK and ERROR responses.

This type is used to encode the different type of messages. - Currently this encoding is limited to the distinction between requests and responses in C/ S c ommunication.

The symbols STD_ ON and STD_ OFF shall be defined as follows: #define STD_ ON 0x01u #define STD_ OFF 0x00u

#define STD_ON 0x01u #define STD_OFF 0x00u

This type can be used as standard API return type which is shared between the RTE and the BSW modules. It shall be defined as follows: typedef uint8 Std_ Return Type;

- Tags: atp.Status=draft

- Tags: atp.Status=draft

This type shall be used to request the version of a BSW module using the _ Get Version Info() function.

typedef struct { uint16 vendorID; uint16 moduleID; uint8 sw_major_version; uint8 sw_minor_version; uint8 sw_patch_version; } Std_VersionInfoType;