このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
AUTOSAR Adaptive サービス データのメモリ割り当ての構成
サービス イベント データを送信するため、AUTOSAR Adaptive Platform はこれらの方法をサポートします。
参照による — 関数 send はアプリケーションのアドレス空間内のメモリを使用します。send からの戻りの後、アプリケーションはイベント データを変更できます。
ara::comで割り当てられたメモリ — データへのメモリの割り当てに、アプリケーションはara::comミドルウェアを必要とします。この方法では、ara::comミドルウェアによるデータのコピーが行われず、頻繁な送信や大量のデータの場合により効率的である可能性があります。ただし、アプリケーションは send からの戻りの後はメモリにアクセスできなくなります。
イベントの送信のためのメモリ割り当てを構成するには、コード マッピング エディターを開きます。[出力端子] タブを選択して各出力端子を調べます。出力端子を選択すると、エディターにはコード属性 AllocateMemory が表示されます。イベント データを ara::com 割り当てメモリで送信するには値 true を選択します。イベント データを参照によって送信するには false を選択します。

AllocateMemory を true に設定すると、生成された C++ モデル コードでは、対応するイベントの送信は ara::com 割り当てバッファーを使用します。
void autosar_LaneGuidanceModelClass::step()
{
...
ara::com::SampleAllocateePtr<company::chassis::provided::skeleton::events::
rightHazardIndicator::SampleType> *rightHazardIndicatorAllocateePtrRawPtr;
std::shared_ptr< ara::com::SampleAllocateePtr<company::chassis::provided::
skeleton::events::rightHazardIndicator::SampleType> >
rightHazardIndicatorAllocateePtrSharedPtr;
...
rightHazardIndicatorAllocateePtrSharedPtr = std::make_shared< ara::com::
SampleAllocateePtr<company::chassis::provided::skeleton::events::
rightHazardIndicator::SampleType> >
(ProvidedPort->rightHazardIndicator.Allocate());
rightHazardIndicatorAllocateePtrRawPtr =
rightHazardIndicatorAllocateePtrSharedPtr.get();
// Send: '<S8>/Message Send'
*rightHazardIndicatorAllocateePtrRawPtr->get() = rtb_Merge1;
// Send event
ProvidedPort->rightHazardIndicator.Send(std::move
(*rightHazardIndicatorAllocateePtrRawPtr));
}