Отправить сервисные данные о событиях, Адаптивная Поддержка платформ 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)); }