Для отправки данных о событиях обслуживания адаптивная платформа AUTOSAR поддерживает следующие методы:
По ссылке - функция отправки использует память в адресном пространстве приложения. После возвратов отправки приложение может изменять данные о событиях.
По ara::com выделенная память - Запросы приложения ara::com промежуточное программное обеспечение для выделения памяти для данных. Этот метод избегает копий данных путем ara::com промежуточное программное обеспечение и может быть более эффективным для частых отправок или больших объемов данных. Но приложение теряет доступ к памяти после возвратов отправки.
Чтобы настроить выделение памяти для отправки событий, откройте редактор Отображения. Выберите вкладку Outports и исследуйте каждый выход. Когда вы выбираете выходной порт, редактор отображает атрибут кода 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));
}