модуль ara::rds — Raw Data Streams
Diese Seite wurde vollständig KI-generiert auf Basis von SWS Raw Data Stream (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.
Руководство по модулюСОЗДАНО ИИ
Обеспечивает высокопроизводительную передачу неструктурированных потоков сырых данных IP и IEEE 1722 без сериализации.
Обеспечивает высокопроизводительную передачу неструктурированных потоков сырых данных IP и IEEE 1722 без сериализации.
Адаптивный кластер Raw Data Stream (RDS) служит для оптимизированной по задержке и пропускной способности передачи неструктурированных потоков данных, а также критичных ко времени данных датчиков и мультимедиа в обход накладных расходов сервис-ориентированной сериализации AUTOSAR_AP_EXP_SWArchitecture с. 74. Он предоставляет C++-API для IP-ориентированных потоков байтов типа «точка-точка» (TCP/UDP), а также для потоковой передачи Layer 2 в соответствии со стандартом AVTP IEEE 1722 [SWS_RDS_10482], [SWS_RDS_90312]. Обе формы коммуникации функционируют строго через статические фабричные методы и экономно по отношению к ресурсам сообщают об ошибках через общеплатформенную конструкцию Result [SWS_RDS_12367].
Функциональный кластер Raw Data Stream (RDS) предоставляет высокопроизводительные интерфейсы для передачи неформатированных потоков байтов и критичных ко времени данных датчиков для AUTOSAR Adaptive Platform AUTOSAR_AP_EXP_SWArchitecture с. 73. Благодаря прямой абстракции сетевых сокетов POSIX, а также интерфейсов Ethernet Layer 2 кластер RDS обходит ресурсоёмкую сериализацию стандартной сервис-ориентированной коммуникации (ara::com) AUTOSAR_AP_EXP_SWArchitecture с. 74.
Для потоков байтов на базе IP через TCP или UDP приложения используют классы RawDataStreamClient и RawDataStreamServer, которые привязываются к смоделированным портам через статические методы Create [SWS_RDS_10482], [SWS_RDS_11312]. После установления соединения через Connect или WaitForConnection объёмы данных передаются без лишних операций копирования в памяти с помощью std::unique_ptr<ara::core::Byte[]> через ReadData и WriteData [SWS_RDS_10486], [SWS_RDS_10487], [SWS_RDS_11301].
Диаграмма последовательности: установление соединения, обмен данными и завершение для Raw Data Stream на базе IP. Источники: [SWS_RDS_10482], [SWS_RDS_10484], [SWS_RDS_10486], [SWS_RDS_11312], [SWS_RDS_11318], [SWS_RDS_11322].
Для детерминированных потоков данных реального времени от камер или аудиоисточников RDS реализует классы согласно IEEE 1722 (AVTP), такие как IEEE1722RawDataStreamProducer и IEEE1722RawDataStreamConsumer [SWS_RDS_90312], [SWS_RDS_90323]. Специфические классы подтипов, такие как RVF (видео), AAF (аудио) и CRF (тактовая синхронизация), инкапсулируют при этом соответствующие стандарту заголовки кадров и полезную нагрузку [SWS_RDS_90262], [SWS_RDS_90276], [SWS_RDS_90295].
Ошибки сигнализируются в соответствии с соглашениями платформы без исключений C++ через ara::core::Result и домен ошибок RdsErrorDomain со специфическими кодами ошибок (RdsErrc) [SWS_RDS_11298], [SWS_RDS_12367]. В манифесте AUTOSAR определение интерфейса бесшовно связывается с конечными точками Ethernet через RawDataStreamClientMapping и RawDataStreamServerMapping AUTOSAR_AP_TPS_ManifestSpecification с. 851.
Архитектурная классификация и границы системы
Функциональный кластер Raw Data Stream (RDS) платформы AUTOSAR Adaptive Platform предоставляет стандартизированные интерфейсы прикладного программирования (API) для высокопроизводительной передачи неструктурированных или критичных ко времени выполнения потоков данных AUTOSAR_AP_EXP_SWArchitecture с. 73. В отличие от строго типизированной сервис-ориентированной коммуникации через ServiceInterfaces (такой как SOME/IP или DDS), RDS полностью исключает накладные расходы на сериализацию и протоколы ara::com AUTOSAR_AP_EXP_SWArchitecture с. 74. Это обеспечивает поддержку работы в реальном времени и оптимизированное по пропускной способности подключение широкополосных сенсорных систем, таких как видеокамеры, радары, LiDAR-датчики или аудиосистемы, напрямую к Adaptive Applications AUTOSAR_AP_EXP_SWArchitecture с. 61.
Архитектурно модуль делится на два фундаментальных коммуникационных направления: с одной стороны, передача потоков байтов на базе IP через транспортные протоколы, такие как TCP или UDP, с инкапсуляцией сокетов POSIX и опциональной защитой TLS/IPsec AUTOSAR_SWS_CommunicationManagement с. 58. С другой стороны, модуль предлагает специализированную подсистему для потоковой передачи Layer 2 согласно IEEE 1722 (Audio Video Transport Protocol, AVTP) через сети Ethernet и Time-Sensitive Networking (TSN) AUTOSAR_AP_EXP_SWArchitecture с. 74. Обе формы коммуникации абстрагируют специфические для системы сетевые структуры и структуры буферов за едиными классами C++ в пространстве имён ara::rds AUTOSAR_AP_SWS_RawDataStream с. 39.
Инстанцирование и управление соединениями
Создание коммуникационных конечных точек в RDS выполняется строго через статические фабричные методы, привязанные к смоделированным экземплярам портов [SWS_RDS_10482]. Для потоков байтов на базе IP классы ara::rds::RawDataStreamClient и ara::rds::RawDataStreamServer инкапсулируют роли инициатора (Initiator) и слушателя (Listener) AUTOSAR_AP_EXP_SWArchitecture с. 73. Фабрика RawDataStreamClient::Create потокобезопасно инстанцирует клиентскую конечную точку для порта, определённого в манифесте, через ara::core::InstanceSpecifier [SWS_RDS_10482]. Аналогично RawDataStreamServer::Create создаёт соответствующий экземпляр серверной конечной точки [SWS_RDS_11312]. Оба класса запрещают конструкторы копирования и операторы присваивания с копированием, однако явно поддерживают семантику перемещения для однозначного владения ресурсами [SWS_RDS_11303], [SWS_RDS_11305], [SWS_RDS_11316], [SWS_RDS_11314].
После успешной инициализации сервер ожидает входящие соединения через WaitForConnection в блокирующем режиме или с заданным таймаутом [SWS_RDS_11318], [SWS_RDS_11319]. Клиент, со своей стороны, активно устанавливает соединение с помощью Connect, либо без ограничения по времени, либо в течение интервала в миллисекундах [SWS_RDS_10484], [SWS_RDS_11307]. Завершение активного сеанса происходит либо детерминированно путем вызова Shutdown [SWS_RDS_10485], [SWS_RDS_11320], либо неявно в рамках вызова деструктора, который автоматически закрывает и освобождает все еще открытое соединение [SWS_RDS_10483], [SWS_RDS_11313].
Диаграмма последовательности: установление соединения, двунаправленный обмен данными и завершение между RawDataStreamClient и RawDataStreamServer. Источники: [SWS_RDS_10482], [SWS_RDS_10484], [SWS_RDS_10486], [SWS_RDS_10487], [SWS_RDS_11312], [SWS_RDS_11318], [SWS_RDS_11322], [SWS_RDS_11324], AUTOSAR_AP_SWS_RawDataStream с. 10, AUTOSAR_AP_EXP_SWArchitecture с. 204, AUTOSAR_AP_EXP_SWArchitecture с. 222
Диаграмма состояний: жизненный цикл соединения потока необработанных данных (Raw Data Stream). Источники: [SWS_RDS_10482], [SWS_RDS_10484], [SWS_RDS_10485], [SWS_RDS_10486], [SWS_RDS_10487], [SWS_RDS_11318], [SWS_RDS_11320]
Неструктурированный обмен IP-данными через сокеты
Передача данных для IP-соединений спроектирована двунаправленной и осуществляется посредством синхронно выполняемых операций с опциональным контролем по таймауту [SWS_RDS_10486], [SWS_RDS_11309]. На стороне получателя операция ReadData возвращает структуру данных типа ara::rds::ReadDataResult [SWS_RDS_10486], [SWS_RDS_11322]. Эта структура инкапсулирует прочитанные бинарные данные в виде умного указателя data (std::unique_ptr<ara::core::Byte[]>) и указывает фактическое количество принятых байтов через поле numberOfBytes [SWS_RDS_11301], [SWS_RDS_11302]. За счет такой передачи владения буфером удается избежать ненужного копирования памяти.
Для отправки бинарных данных приложения также передают байтовый буфер с использованием семантики перемещения через std::unique_ptr<ara::core::Byte[]> и указывают максимальную длину maxLength в WriteData [SWS_RDS_10487], [SWS_RDS_11324]. Для сетевых трактов, критичных к задержкам или подверженных блокировкам, доступны перегруженные варианты ReadData и WriteData с явным указанием таймаута в миллисекундах [SWS_RDS_11310], [SWS_RDS_11323], [SWS_RDS_11325]. Это позволяет детерминированно перехватывать ситуации отсутствия ответа от противоположной стороны или застопоривания сетевых буферов AUTOSAR_AP_EXP_InterfacesGuidelines с. 41.
Потоковая передача в близком к реальному времени режиме с использованием IEEE 1722 (AVTP)
Для детерминированных изохронных потоков мультимедиа и датчиков RDS предоставляет специализированные шаблонные классы для потребителей и производителей согласно IEEE 1722 [SWS_RDS_90312], [SWS_RDS_90323]. Класс ara::rds::IEEE1722RawDataStreamConsumer<T> выступает в роли приемника данных и инстанцируется через Create [SWS_RDS_90312]. С помощью Connect он привязывается к назначенному потоку (с фильтрацией по multicast-MAC, VLAN и ID потока) AUTOSAR_AP_EXP_SWArchitecture с. 203, чтобы затем считывать до maxNumberOfDatagrams структурированных датаграмм в виде std::vector<T> через ReadData [SWS_RDS_90319], [SWS_RDS_90321]. Аналогично ara::rds::IEEE1722RawDataStreamProducer<T> берет на себя формирование и отправку AVTP-фреймов через WriteData(std::vector<T>) [SWS_RDS_90323], [SWS_RDS_90330], [SWS_RDS_90332].
Типы датаграмм образуют стандартизированную объектно-ориентированную иерархию наследования AUTOSAR_AP_SWS_RawDataStream с. 39. Базовым элементом всех фреймов является IEEE1722Datagram с полем полезной нагрузки data и указанием длины stream_data_length [SWS_RDS_90226], [SWS_RDS_90227], [SWS_RDS_90228]. Производный от него IEEE1722DatagramAVTPDUCommonHeaderFields инкапсулирует общую информацию заголовка, такую как avtpStreamDataSubtype, headerSpecific и version протокола [SWS_RDS_90230], [SWS_RDS_90231], [SWS_RDS_90232], за которым следует IEEE1722DatagramAVTPDUCommonStreamHeaderFields с временными метками (avtp_timestamp), идентификацией потока (unique_id, mac_address) и порядковыми номерами пакетов (sequenceNum) [SWS_RDS_90235], [SWS_RDS_90237], [SWS_RDS_90240].
На этой общей базе строятся конкретные специализации подтипов:
IEEE1722DatagramRVF для необработанных видеоданных с параметрами пикселей, частотой кадров и информацией о строках (pixel_format, pixel_depth, frame_rate, colorspace, total_lines) [SWS_RDS_90276], [SWS_RDS_90278], [SWS_RDS_90285], [SWS_RDS_90286], [SWS_RDS_90287];
IEEE1722DatagramAAF для аудиоформатов, таких как PCM или AES3 (channels_per_frame, bit_depth, aes3_data_type_h) [SWS_RDS_90262], [SWS_RDS_90266], [SWS_RDS_90267], [SWS_RDS_90270];
IEEE1722DatagramCRF для тактовой синхронизации и передачи тактовых сигналов через TSN (base_frequency, timestamp_interval, pull) [SWS_RDS_90295], [SWS_RDS_90297], [SWS_RDS_90302], [SWS_RDS_90303];
а также IEEE1722Datagram61883_IIDC для передачи данных промышленных камер [SWS_RDS_90245], [SWS_RDS_90260] и IEEE1722DatagramNTSCF для некритичных ко времени форматов управления [SWS_RDS_90306], [SWS_RDS_90310].
Диаграмма последовательности: цикл взаимодействия при потоковой передаче аудио/видео по IEEE 1722 (производитель и потребитель). Источники: [SWS_RDS_90312], [SWS_RDS_90319], [SWS_RDS_90320], [SWS_RDS_90321], [SWS_RDS_90323], [SWS_RDS_90330], [SWS_RDS_90331], [SWS_RDS_90332], AUTOSAR_AP_EXP_SWArchitecture с. 203, AUTOSAR_AP_EXP_SWArchitecture с. 221
Диаграмма классов: иерархия наследования датаграмм IEEE 1722 в подсистеме ara::rds. Источники: [SWS_RDS_90226], [SWS_RDS_90230], [SWS_RDS_90235], [SWS_RDS_90245], [SWS_RDS_90262], [SWS_RDS_90276], [SWS_RDS_90295], [SWS_RDS_90306], AUTOSAR_AP_SWS_RawDataStream с. 39
Метамоделирование и развертывание манифеста
В метамодели манифеста AUTOSAR соблюдается разделение проектирования приложения и платформозависимого развертывания AUTOSAR_AP_TPS_ManifestSpecification с. 254. Абстрактный базовый элемент AbstractRawDataStreamInterface специализирует PortInterface и разветвляется на конкретные интерфейсы RawDataStreamClientInterface и RawDataStreamServerInterface AUTOSAR_AP_TPS_ManifestSpecification с. 254. На уровне развертывания EthernetRawDataStreamClientMapping или EthernetRawDataStreamServerMapping связывает программные порты с физическими коммуникационными конечными точками, такими как ApApplicationEndpoint, IP-адреса и номера портов AUTOSAR_AP_TPS_ManifestSpecification с. 851, TPS_ManifestSpecification с. 850.
Манифест допускает гибкие сценарии интеграции для топологии системы: как полностью формализованные модели AUTOSAR, в которых клиент и сервер связаны в рамках одного и того же проекта ARXML AUTOSAR_TPS_ManifestSpecification с. 656, так и асимметричные конфигурации. В таких асимметричных сценариях в модели представлен либо только клиент, либо только сервер, тогда как соответствующая противоположная сторона подключается через статические учетные данные, такие как remoteServerConfig или remoteClientConfig AUTOSAR_TPS_ManifestSpecification с. 660, AUTOSAR_TPS_ManifestSpecification с. 661. Для потоков AVTP EthernetMacRawDataStreamMapping связывает порты и процессы напрямую с конечными точками MAC и приоритетами VLAN AUTOSAR_AP_TPS_ManifestSpecification с. 854, что соответствует определениям системного шаблона IEEE1722TpConnection, IEEE1722TpAvConnection, IEEE1722TpAafConnection и IEEE1722TpRvfConnection AUTOSAR_CP_TPS_SystemTemplate с. 705, AUTOSAR_CP_TPS_SystemTemplate с. 708, AUTOSAR_CP_TPS_SystemTemplate с. 716.
Контекстная диаграмма: связи метамодели AUTOSAR между интерфейсом порта, сопоставлением и развертыванием транспорта. Источники: [SWS_RDS_10482], [SWS_RDS_11312], AUTOSAR_AP_TPS_ManifestSpecification с. 254, AUTOSAR_AP_TPS_ManifestSpecification с. 851, TPS_ManifestSpecification с. 850
Поведение при ошибке
Обработка ошибок в RDS следует подходу вычисления ошибок AUTOSAR Adaptive Platform через ara::core::Result и ara::core::ErrorCode [SWS_RDS_10484], [SWS_RDS_11299]. Все потенциально сбойные методы API — среди которых Create, Connect, WaitForConnection, ReadData и WriteData — объявлены как noexcept и возвращают коды ошибок через тип возвращаемого значения ara::core::Result [SWS_RDS_10482], [SWS_RDS_10484], [SWS_RDS_11318]. Специфичные для модуля состояния ошибок управляются в перечислении ara::rds::RdsErrc [SWS_RDS_12367], на которое можно ссылаться через псевдоним типа ara::rds::RdsErrorDomain::Errc [SWS_RDS_11326].
Модуль определяет для этого домен ошибок RdsErrorDomain, экземпляр которого запрашивается через GetRdsErrorDomain() [SWS_RDS_11298]. Стандартное конструирование RdsErrorDomain явно удалено [SWS_RDS_11294]. Описания ошибок и имя домена можно считывать через виртуальные методы Message(CodeType) и Name() [SWS_RDS_11295], [SWS_RDS_11296]. Фабричная функция MakeErrorCode позволяет создавать типизированные объекты ошибок из кода RdsErrc и дополнительных данных [SWS_RDS_11299]. Для сред, в которых включены исключения C++, модуль предоставляет исключение ara::rds::RdsException [SWS_RDS_11292], [SWS_RDS_11327], которое может быть сгенерировано через RdsErrorDomain::ThrowAsException [SWS_RDS_11297].
Дальнейшие подробные доказательства
Архитектура и интерфейсы RDS закреплены в центральных документах спецификации AUTOSAR. Функциональное определение интерфейсов C++ для потоков на базе IP и механизмов ошибок опирается на AUTOSAR_AP_SWS_RawDataStream [SWS_RDS_10482], [SWS_RDS_11312], [SWS_RDS_12367]. Архитектурные модели, проекты классов и сценарии последовательностей для потоковой передачи IEEE 1722 задокументированы в AUTOSAR_AP_EXP_SWArchitecture AUTOSAR_AP_EXP_SWArchitecture с. 74, AUTOSAR_AP_EXP_SWArchitecture с. 203, AUTOSAR_AP_EXP_SWArchitecture с. 221. Формальное моделирование интерфейсов и развертывания выполняется через AUTOSAR_AP_TPS_ManifestSpecification AUTOSAR_AP_TPS_ManifestSpecification с. 254, AUTOSAR_AP_TPS_ManifestSpecification с. 851, а также через лежащие в их основе системные шаблоны для транспортных соединений Ethernet в AUTOSAR_CP_TPS_SystemTemplate AUTOSAR_CP_TPS_SystemTemplate с. 705.
Данное руководство по модулю было сформировано автоматически на основе спецификаций AUTOSAR для релиза R25-11.
16 Klassen/Structs1 NamespaceIP- und IEEE-1722-Streams
Классы
IEEE1722DatagramIEEE1722Datagram61883_IIDCIEEE1722DatagramAAFIEEE1722DatagramAVTPDUCommonHeaderFieldsIEEE1722DatagramAVTPDUCommonStreamHeaderFieldsIEEE1722DatagramCRFIEEE1722DatagramNTSCFIEEE1722DatagramRVFIEEE1722DatagramTSCFIEEE1722RawDataStreamConsumerIEEE1722RawDataStreamProducerRawDataStreamClientRawDataStreamServerRdsErrorDomainRdsExceptionReadDataResultФункции
GetRdsErrorDomainMakeErrorCodeПеречисления
RdsErrcКарта тем
ara::rds
19Для этого релиза нет данных об элементах
ara::rds
IEEE 1722 datagram representation: IEEE1722Datagram.
IEEE 1722 datagram representation: IEEE1722Datagram61883_IIDC.
IEEE 1722 datagram representation: IEEE1722DatagramAAF.
IEEE 1722 datagram representation: IEEE1722DatagramAVTPDUCommonHeaderFields.
IEEE 1722 datagram representation: IEEE1722DatagramAVTPDUCommonStreamHeaderFields.
IEEE 1722 datagram representation: IEEE1722DatagramCRF.
IEEE 1722 datagram representation: IEEE1722DatagramNTSCF.
IEEE 1722 datagram representation: IEEE1722DatagramRVF.
IEEE 1722 datagram representation: IEEE1722DatagramTSCF.
Consumer for typed IEEE 1722 stream datagrams.
Producer for typed IEEE 1722 stream datagrams.
Object for reading and writing binary data streams over a network connection.
Object for accepting a connection and reading or writing binary data streams.
Error domain of Raw Data Stream.
Exception type for Raw Data Stream.
Result of a RawDataStream read operation.
Returns a reference to the RDS error domain.
constexpr const ara::core::ErrorDomain &GetRdsErrorDomain() noexcept;Creates an RDS ErrorCode.
constexpr ara::core::ErrorCode MakeErrorCode(RdsErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;Enumeration of Raw Data Stream error codes.
enum class RdsErrc : ara::core::ErrorDomain::CodeType {...};Пространство имён
Классы и структуры
- RawDataStreamClient
- RawDataStreamServer
- ReadDataResult
- IEEE1722Datagram
- IEEE1722Datagram61883_IIDC
- IEEE1722DatagramAAF
- IEEE1722DatagramAVTPDUCommonHeaderFields
- IEEE1722DatagramAVTPDUCommonStreamHeaderFields
- IEEE1722DatagramCRF
- IEEE1722DatagramNTSCF
- IEEE1722DatagramRVF
- IEEE1722DatagramTSCF
- IEEE1722RawDataStreamConsumer
- IEEE1722RawDataStreamProducer
- RdsErrorDomain
- RdsException
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал