AUTOSAR_EXP_ARAComAPI的6章笔记(5)
☞返回总目录
相关总结:AUTOSAR 通信组的使用方法总结
6.5 通信组的使用方法
6.5.1. 设置
本节描述了使用 Communication Group Template(类别为 COMMUNICATION_GROUP)定义通信组的配置步骤。定义一个通信组需要指定三个项目:
- 通信组的名称 = SHORT-NAME。
- 发送给客户端的消息的数据类型。
- 客户端发送的响应消息的数据类型。
下图展示了 Communication Group Template,
6.5.1.1 服务接口描述的生成
为了创建通信组服务器和客户端 ServiceInterface 描述文件,需要设置 Communication Group Template(见前面的章节)。基于通信组模板,可以生成通信组服务器和客户端的 ServiceInterface 描述文件。
注意:Communication Group Template 是一个 ServiceInterface,它仅用于生成通信组服务接口,除此之外没有其他用途。
6.5.1.2 代理和骨架生成
使用通信组服务器和客户端的 ServiceInterface 描述,可以生成相应的代理和骨架服务类(提示:标准的 ara::com ServiceInterface 生成流程)。
6.5.2 示例
以下章节概述了定义和创建通信组 “PowerMode” 的步骤。
1. 定义通信组名称,并将此名称作为 “SHORT-NAME” 添加到 Communication Group Template 的 ServiceInterface 描述中。
- “SHORT-NAME = PowerMode”。
2. 根据 [SWS_CM_99001]、[SWS_CM_99002]、[SWS_CM_99008] 定义对等和广播消息的数据类型,并将其编辑到 Communication Group Template 的 ServiceInterface 描述中。
- 消息定义
<typename T>
,“PowerModeMsg = [On, Off, Suspend]”(根据 [SWS_SM_91011])。
背景信息:
[SWS_CM_99001] 的示例通信组代码:
template <typename T>
ara::core::Future<void> broadcast(const T& msg);
[SWS_CM_99002] 的示例通信组代码:
template <typename T>
ara::core::Future<void> message(uint32_t clientID, const T& msg);
[SWS_CM_99008] 的示例通信组代码:
template <typename T>
ara::core::Future<void> message(const T& msg);
3. 根据 [SWS_CM_99014]、[SWS_CM_99009] 定义响应消息的数据类型,并将其编辑到 Communication Group Template 的 ServiceInterface 描述中。
- 响应消息定义
<typename R>
,“PowerModeRspMsg = [Done, Failed, Busy, NotSupported]”(根据 [SWS_SM_91012])。
背景信息:
[SWS_CM_99014] 的示例通信组代码:
template <typename R>
struct Response
{uint32_t clientID;const R& responseMsg;
};
[SWS_CM_99009] 的示例通信组代码:
template <typename R>
const R& responseMsg;
4. 从设置好的 Communication Group Template 生成服务器和客户端服务接口描述。
5. 生成服务器和客户端服务接口的代理和骨架服务类模板。
6. 将通信组服务器和客户端的代理和骨架服务类实例化到应用程序代码中。