同步和异步实现
Dcm 可以使用需要同步或异步 ClientServertInterface DataServices_{Data} 的 R-Port 访问数据。在 Dcm SWS 中,参数 DcmDspDataUsePort 设置为 USE_DATA_SYNCH_CLIENT_SERVER 或 USE_DATA_ASYNCH_CLIENT_SERVER 或 USE_DATA_ASYNCH_CLIENT_SERVER_ERROR。在 USE_DATA_SYNCH_CLIENT_SERVER 的情况下,接口应与 Dem 接口“DataServices_”兼容(无 OpStatus 参数)。
参数 OpStatus 和返回参数 DCM_E_PENDING 应仅在 USE_DATA_ASYNCH_CLIENT_SERVER 或 USE_DATA_ASYNCH_CLIENT_SERVER_ERROR 的情况下可用。
注意:调用服务处理器时使用 AsynchronousServerCallPoint 或 SynchronousServerCallPoint 的 Dcm 实现完全是一个实现决策。这仅表明该操作使用该操作的状态来允许 SW-C 进行异步处理(发起请求、检查请求是否仍处于挂起状态或取消挂起的请求,参见 [SWS_Dcm_00686])。
与需要使用 AsynchronousServerCallPoint 或 SynchronousServerCallPoint 的操作签名(即存在 OpStatus 参数和 DCM_E_PENDING 返回码)没有关联。
-
[SWS_Dcm_01187] 如果使用异步接口,Dcm 应认为输出数据(OUT)仅在最后一次调用返回 E_OK 的接口后才有效。
-
[SWS_Dcm_01188] 如果使用异步接口,Dcm 应认为 OUT 参数 ErrorCode 仅在最后一次调用返回 E_NOT_OK 的接口后才有效
-
注意:对接口的“最后一次调用”是调用返回一个指示处理已完成的值,即 E_OK 或 E_NOT_OK。
-
注意:INOUT 参数是上述要求的组合,即每次调用接口时,参数都应具有有效的 in-value,并且 Dcm 仅在最后一次调用接口后才认为 out-value 有效。
-
[SWS_Dcm_01189] 如果使用异步接口,Dcm 应在每次调用接口时提供源自对输入数据 (IN) 的请求的值。
-
注意:要求 [SWS_Dcm_01187]、[SWS_Dcm_01188] 和 [SWS_Dcm_01189] 不适用于明确指定异常行为的函数。