AutoSar AP CM服务接口用途的总结

以下是对上述内容的总结:

一、教程概述

本教程展示了关于如何使用ara::com的基础和特性的最小示例。

二、服务接口用途

1. 清单分为多个部分,包括 Machine Manifest、SI Manifest、Execution Manifest 和 RPortPrototypes 与 PPortPrototypes,涵盖了与设计和部署相关的ara::com模型元素。

2. 服务接口部署描述服务接口通过网络通信的方式,需提供网络绑定引用、服务接口 ID 和事件、方法、字段的部署信息。

   <AR-PACKAGE>
       <SHORT-NAME>ServiceInterfaceDeployments</SHORT-NAME>
       <ELEMENTS>
           <SOMEIP-SERVICE-INTERFACE-DEPLOYMENT>
               <SHORT-NAME>MyInterface_SOMEIP</SHORT-NAME>
               <EVENT-DEPLOYMENTS>
                   <SOMEIP-EVENT-DEPLOYMENT>
                       <SHORT-NAME>Counter_SOMEIP</SHORT-NAME>
                       <EVENT-REF DEST="VARIABLE-DATA-PROTOTYPE">/myExample/ServiceInterfaces/myInterface/Counter</EVENT-REF>
                       <EVENT-ID>1</EVENT-ID>
                       <TRANSPORT-PROTOCOL>UDP</TRANSPORT-PROTOCOL>
                   </SOMEIP-EVENT-DEPLOYMENT>
               </EVENT-DEPLOYMENTS>
               <SERVICE-INTERFACE-REF DEST="SERVICE-INTERFACE">/myExample/ServiceInterfaces/myInterface</SERVICE-INTERFACE-REF>
               <SERVICE-INTERFACE-ID>99</SERVICE-INTERFACE-ID>
               <SERVICE-INTERFACE-VERSION>
                   <MAJOR-VERSION>1</MAJOR-VERSION>
                   <MINOR-VERSION>0</MINOR-VERSION>
               </SERVICE-INTERFACE-VERSION>
           </SOMEIP-SERVICE-INTERFACE-DEPLOYMENT>
       </ELEMENTS>
   </AR-PACKAGE>

3. 服务实例部署包括将服务实例映射到 ApplicationEndpoints 和 Machine:

  • 映射到 ApplicationEndpoints 将 ServiceInstance 连接到 PortPrototype 和进程。
     <AR-PACKAGE>
         <SHORT-NAME>ServiceInstanceToPortPrototypeMappings</SHORT-NAME>
         <ELEMENTS>
             <SERVICE-INSTANCE-TO-PORT-PROTOTYPE-MAPPING>
                 <SHORT-NAME>ProvidedServiceInstance_toPort</SHORT-NAME>
                 <PORT-PROTOTYPE-IREF>
                     <CONTEXT-ROOT-SW-COMPONENT-PROTOTYPE-REF DEST="ROOT-SW-COMPONENT-PROTOTYPE">/myExample/Executables/myExecutable/mySwComponentPrototype</CONTEXT-ROOT-SW-COMPONENT-PROTOTYPE-REF>
                     <TARGET-PORT-PROTOTYPE-REF DEST="P-PORT-PROTOTYPE">/apd/AdaptiveApplicationSwComponentTypes/Publisher/myInterface_PPort</TARGET-PORT-PROTOTYPE-REF>
                 </PORT-PROTOTYPE-IREF>
                 <PROCESS-REF DEST="PROCESS">/apd/Machines/PublisherMachine/Processes/myProcess</PROCESS-REF>
                 <SERVICE-INSTANCE-REF DEST="PROVIDED-SOMEIP-SERVICE-INSTANCE">/myExample/Machines/myMachine/ServiceInstances/ProvidedSomeipServiceInstance</SERVICE-INSTANCE-REF>
             </SERVICE-INSTANCE-TO-PORT-PROTOTYPE-MAPPING>
         </ELEMENTS>
     </AR-PACKAGE>
  • 映射到机器将服务实例连接到通信连接器,通信连接器引用包含地址、网络掩码和网关的网络端点。
     <AR-PACKAGE>
         <SHORT-NAME>ServiceInstanceToMachineMappings</SHORT-NAME>
         <ELEMENTS>
             <SOMEIP-SERVICE-INSTANCE-TO-MACHINE-MAPPING>
                 <SHORT-NAME>ProvidedServiceInstance_toMachine</SHORT-NAME>
                 <COMMUNICATION-CONNECTOR-REF DEST="ETHERNET-COMMUNICATION-CONNECTOR">/myExample/MachineDesigns/myMachineDesign/myConnector</COMMUNICATION-CONNECTOR-REF>
                 <SERVICE-INSTANCE-REFS>
                     <SERVICE-INSTANCE-REF DEST="PROVIDED-SOMEIP-SERVICE-INSTANCE">/myExample/Machines/myMachine/ServiceInstances/ProvidedSomeipServiceInstance</SERVICE-INSTANCE-REF>
                 </SERVICE-INSTANCE-REFS>
                 <UDP-PORT>33222</UDP-PORT>
             </SOMEIP-SERVICE-INSTANCE-TO-MACHINE-MAPPING>
         </ELEMENTS>
     </AR-PACKAGE>
     <AR-PACKAGE>
         <SHORT-NAME>CommunicationClusters</SHORT-NAME>
         <ELEMENTS>
             <ETHERNET-CLUSTER>
                 <SHORT-NAME>myNet</SHORT-NAME>
                 <ETHERNET-CLUSTER-VARIANTS>
                     <ETHERNET-CLUSTER-CONDITIONAL>
                         <PHYSICAL-CHANNELS>
                             <ETHERNET-PHYSICAL-CHANNEL>
                                 <SHORT-NAME>myChannel</SHORT-NAME>
                                 <COMM-CONNECTORS>
                                     <COMMUNICATION-CONNECTOR-REF-CONDITIONAL>
                                         <COMMUNICATION-CONNECTOR-REF DEST="ETHERNET-COMMUNICATION-CONNECTOR">/myExample/MachineDesigns/myMachineDesign/myConnector</COMMUNICATION-CONNECTOR-REF>
                                     </COMMUNICATION-CONNECTOR-REF-CONDITIONAL>
                                 </COMM-CONNECTORS>
                                 <NETWORK-ENDPOINTS>
                                     <NETWORK-ENDPOINT>
                                         <SHORT-NAME>myMachineEndpoint</SHORT-NAME>
                                         <FULLY-QUALIFIED-DOMAIN-NAME/>
                                         <NETWORK-ENDPOINT-ADDRESSES>
                                             <IPV-4-CONFIGURATION>
                                                 <DEFAULT-GATEWAY>192.168.7.1</DEFAULT-GATEWAY>
                                                 <IPV-4-ADDRESS>192.168.7.2</IPV-4-ADDRESS>
                                                 <NETWORK-MASK>255.255.255.0</NETWORK-MASK>
                                             </IPV-4-CONFIGURATION>
                                         </NETWORK-ENDPOINT-ADDRESSES>
                                     </NETWORK-ENDPOINT>
                                     <NETWORK-ENDPOINT>
                                         <SHORT-NAME>mySDEndpoint</SHORT-NAME>
                                         <FULLY-QUALIFIED-DOMAIN-NAME/>
                                         <NETWORK-ENDPOINT-ADDRESSES>
                                             <IPV-4-CONFIGURATION>
                                                 <IPV-4-ADDRESS>224.244.224.245</IPV-4-ADDRESS>
                                             </IPV-4-CONFIGURATION>
                                         </NETWORK-ENDPOINT-ADDRESSES>
                                     </NETWORK-ENDPOINT>
                                 </NETWORK-ENDPOINTS>
                             </ETHERNET-PHYSICAL-CHANNEL>
                         </PHYSICAL-CHANNELS>
                     </ETHERNET-CLUSTER-CONDITIONAL>
                 </ETHERNET-CLUSTER-VARIANTS>
             </ETHERNET-CLUSTER>
         </ELEMENTS>
     </AR-PACKAGE>

4. 服务实现在应用层进行,使用服务发现协议实现两个应用程序之间的通信。服务骨架类提供OfferService()方法来提供服务。

   ara::core::Result<void> OfferService();

服务代理类提供根据实例标识符或实例说明符查找服务的方法。

   static ara::core::Result<ara::com::ServiceHandleContainer<<ProxyClassName>::HandleType>> FindService(ara::com::InstanceIdentifier instance);
   static ara::core::Result<ara::com::ServiceHandleContainer<<ProxyClassName>::HandleType>> FindService(ara::com::InstanceSpecifier instance);

对于事件,应用程序使用Event::Subscribe(size_t maxSampleCount)方法订阅事件并设置缓存大小,使用Event::Unsubscribe()方法取消订阅。

   ara::core:Result<void> Event::Subscribe(size_t maxSampleCount);
   void Event::Unsubscribe();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青草地溪水旁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值